
/* WARNING: Removing unreachable block (ram,0x0003b798) */

void png_write_zTXt(png_structrp png_ptr,png_const_charp key,png_const_charp text,int compression)

{
  __jmp_buf_tag *p_Var1;
  png_uint_32 pVar2;
  int iVar3;
  compression_state *pcVar4;
  png_const_bytep ppVar5;
  jmp_buf *data;
  png_error_ptr p_Var6;
  png_alloc_size_t pVar7;
  png_compression_bufferp ppVar8;
  png_bytep ppVar9;
  int iVar10;
  compression_state *pcVar11;
  png_structrp ppVar12;
  undefined4 uVar13;
  png_structrp ppVar14;
  png_structp png_ptr_00;
  char *pcVar15;
  png_const_charp key_00;
  png_structrp ppVar16;
  Bytef *pBVar17;
  jmp_buf *pa_Var18;
  jmp_buf *pa_Var19;
  png_structrp ppVar20;
  compression_state *pcVar21;
  png_error_ptr p_Var22;
  png_uint_32 pVar23;
  compression_state *unaff_s0;
  png_error_ptr length;
  png_structrp ppVar24;
  png_structrp unaff_s1;
  png_structrp ppVar25;
  png_size_t pVar26;
  uint uVar27;
  png_const_charp unaff_s2;
  ulong *puVar28;
  ulong *puVar29;
  png_byte pVar30;
  png_structrp ppVar31;
  png_byte *ppVar32;
  compression_state *unaff_s4;
  uint uVar33;
  compression_state *unaff_s5;
  undefined4 unaff_s6;
  compression_state *new_key_00;
  int *piVar34;
  undefined *puVar35;
  code *pcVar36;
  code *pcVar37;
  undefined *puVar38;
  png_error_ptr p_Var39;
  compression_state *unaff_s8;
  undefined4 *puVar40;
  code *pcVar41;
  undefined1 auStackY_c38 [4];
  png_structrp ppStackY_c34;
  png_structp ppStackY_c30;
  png_structrp ppStackY_c2c;
  png_const_bytep ppStackY_c28;
  png_uint_32 pStackY_c24;
  uint uStackY_c20;
  code *pcStackY_c1c;
  undefined1 auStack_be0 [56];
  jmp_buf *pa_Stack_ba8;
  compression_state *pcStack_ba4;
  undefined4 *puStack_ba0;
  code *pcStack_b9c;
  code *pcStack_b88;
  png_uint_16 pStack_b82;
  ushort uStack_b7e;
  png_byte apStack_b7c [3];
  png_byte pStack_b79;
  undefined1 auStack_b78 [3];
  png_byte pStack_b75;
  ulong uStack_b74;
  png_structrp ppStack_b6c;
  ulong *puStack_b68;
  png_structrp ppStack_b64;
  png_structrp ppStack_b60;
  code *pcStack_b5c;
  code *pcStack_b48;
  undefined1 auStack_b3c [60];
  undefined1 auStack_b00 [68];
  undefined1 auStack_abc [64];
  ulong uStack_a7c;
  png_structrp ppStack_a74;
  png_structrp ppStack_a70;
  png_alloc_size_t *ppStack_a6c;
  png_structrp ppStack_a68;
  compression_state *pcStack_a64;
  compression_state *pcStack_a60;
  compression_state *pcStack_a5c;
  int *piStack_a58;
  code *pcStack_a54;
  png_error_ptr p_Stack_a40;
  png_rw_ptr p_Stack_a34;
  png_rw_ptr p_Stack_a30;
  png_voidp pvStack_a2c;
  jmp_buf *pa_Stack_a28;
  png_user_transform_ptr p_Stack_a24;
  png_voidp pvStack_a20;
  jmp_buf *pa_Stack_a1c;
  undefined1 auStack_a18 [100];
  png_structrp ppStack_9b4;
  compression_state *pcStack_9b0;
  png_structrp ppStack_9ac;
  compression_state *pcStack_9a8;
  compression_state *pcStack_9a4;
  compression_state *pcStack_9a0;
  int *piStack_99c;
  compression_state *pcStack_998;
  png_compression_bufferp ppStack_994;
  jmp_buf *pa_Stack_988;
  png_error_ptr p_Stack_984;
  png_alloc_size_t *ppStack_980;
  png_structrp ppStack_97c;
  undefined1 auStack_978 [68];
  compression_state *pcStack_934;
  compression_state cStack_92c;
  png_byte apStack_51f [83];
  int iStack_4cc;
  compression_state *pcStack_4c8;
  png_structrp ppStack_4c4;
  png_const_charp pcStack_4c0;
  undefined *puStack_4bc;
  compression_state *pcStack_4b8;
  compression_state *pcStack_4b4;
  png_byte apStack_4b0 [4];
  compression_state *pcStack_48c;
  compression_state comp;
  png_byte new_key [81];
  
  puVar38 = PTR___stack_chk_guard_000534bc;
  iVar10 = *(int *)PTR___stack_chk_guard_000534bc;
  if (compression == -1) {
    compression = 0;
    png_write_tEXt(png_ptr,key,text,0);
    ppVar12 = png_ptr;
    pcVar11 = (compression_state *)text;
LAB_0003b4a4:
    if (iVar10 == *(int *)puVar38) {
      return;
    }
  }
  else {
    ppVar12 = png_ptr;
    pcVar11 = (compression_state *)text;
    if (compression == 0) {
      unaff_s4 = (compression_state *)new_key;
      pcVar11 = unaff_s4;
      pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4);
      unaff_s1 = png_ptr;
      unaff_s2 = text;
      if (pVar2 != 0) {
        unaff_s0 = (compression_state *)(pVar2 + 2);
        new_key[pVar2 + 1] = '\0';
        if (text == (png_const_charp)0x0) {
          comp.input_len = 0;
        }
        else {
          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);
        }
        unaff_s6._0_1_ = 'z';
        unaff_s6._1_1_ = 'T';
        unaff_s6._2_1_ = '\0';
        unaff_s6._3_1_ = '\0';
        unaff_s5 = &comp;
        comp.output_len = 0;
        pcVar11 = unaff_s5;
        compression = (int)unaff_s0;
        comp.input = (png_const_bytep)text;
        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);
        if (iVar3 == 0) {
          if (png_ptr != (png_structrp)0x0) {
            png_write_chunk_header
                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))
            ;
          }
          pcVar11 = unaff_s0;
          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);
          key = (png_const_charp)unaff_s5;
          png_write_compressed_data_out(png_ptr,unaff_s5);
          (*(code *)PTR_png_write_chunk_end_00053408)();
          goto LAB_0003b4a4;
        }
        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);
      }
      (*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604);
    }
    key = PTR_s_nt_0005301c + 0x25e4;
    (*(code *)PTR_png_error_0005340c)();
  }
  puVar35 = PTR___stack_chk_fail_00053484;
  (*(code *)PTR___stack_chk_fail_00053484)();
  auStack_978._56_4_ = puVar35 + 0x1fac0;
  piVar34 = *(int **)(puVar35 + 0x17f8c);
  new_key_00 = (compression_state *)&stack0xfffffae0;
  puStack_4bc = puVar38;
  iStack_4cc = *piVar34;
  pcVar4 = new_key_00;
  pcVar21 = (compression_state *)compression;
  pcStack_4c8 = unaff_s0;
  ppStack_4c4 = unaff_s1;
  pcStack_4c0 = unaff_s2;
  pcStack_4b8 = unaff_s4;
  pcStack_4b4 = unaff_s5;
  apStack_4b0 = (png_byte  [4])unaff_s6;
  pVar2 = png_check_keyword(ppVar12,(png_const_charp)pcVar11,(png_bytep)new_key_00);
  puVar38 = (undefined *)auStack_978._56_4_;
  if (pVar2 == 0) {
LAB_0003b954:
    iVar10 = *(int *)(puVar38 + -0x7fd4) + 0x261c;
    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10);
LAB_0003b968:
    pcVar11 = pcVar21;
    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10 + 0x2650);
  }
  else {
    if ((compression_state *)key != (compression_state *)0x0) {
      if (0 < (int)key) {
        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;
        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);
        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;
        goto LAB_0003b5d0;
      }
      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);
      if ((compression_state *)key == (compression_state *)&DAT_ffffffff) {
LAB_0003b768:
        pcStack_934 = (compression_state *)0x0;
        apStack_51f[pVar2] = '\0';
        apStack_51f[pVar2 + 1] = '\0';
        goto joined_r0x0003b780;
      }
LAB_0003b938:
      (**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);
LAB_0003b948:
      (**(code **)(puVar38 + -0x7b6c))();
      goto LAB_0003b954;
    }
LAB_0003b5d0:
    pcStack_934 = (compression_state *)&DAT_00000001;
    apStack_51f[pVar2] = '\x01';
    apStack_51f[pVar2 + 1] = '\0';
joined_r0x0003b780:
    if ((compression_state *)compression == (compression_state *)0x0) {
      key = &DAT_00000001;
      compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;
    }
    else {
      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);
      key = (png_const_charp)(iVar10 + 1);
    }
    iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(&_gp);
    unaff_s8 = (compression_state *)(iVar10 + 1);
    if (pcStack_48c != (compression_state *)0x0) {
      cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c);
      if (key <= (compression_state *)(0x7fffffff - (pVar2 + 3))) goto LAB_0003b648;
LAB_0003b7c8:
      pcVar11 = (compression_state *)0x7fffffff;
      cStack_92c.input = (png_const_bytep)pcStack_48c;
      if (pcStack_934 != (compression_state *)0x0) goto LAB_0003b7e0;
LAB_0003b670:
      cStack_92c.output_len = 0;
      unaff_s0 = (compression_state *)(pVar2 + 3);
      pcVar21 = (compression_state *)0x7fffffff;
      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);
      puVar38 = (undefined *)auStack_978._56_4_;
      cStack_92c.input = (png_const_bytep)pcStack_48c;
      if (cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)) {
        cStack_92c.output_len = cStack_92c.input_len;
        if (ppVar12 == (png_structrp)0x0) {
          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);
          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);
          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);
        }
        else {
          png_write_chunk_header
                    (ppVar12,0x69545874,
                     (png_uint_32)
                     (((compression_state *)cStack_92c.input_len)->output +
                     (int)(pcVar11->output + -0x18)));
          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);
          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);
          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);
        }
        pcVar4 = (compression_state *)cStack_92c.output_len;
        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);
        goto LAB_0003b710;
      }
      goto LAB_0003b968;
    }
    cStack_92c.input_len = 0;
    pcStack_48c = (compression_state *)(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84);
    if ((compression_state *)(0x7fffffff - (pVar2 + 3)) < key) goto LAB_0003b7c8;
LAB_0003b648:
    if ((compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))
        < unaff_s8) goto LAB_0003b7c8;
    pcVar11 = (compression_state *)
              (((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8);
    cStack_92c.input = (png_const_bytep)pcStack_48c;
    if (pcStack_934 == (compression_state *)0x0) goto LAB_0003b670;
LAB_0003b7e0:
    cStack_92c.output_len = 0;
    unaff_s0 = (compression_state *)(pVar2 + 3);
    pcStack_48c = &cStack_92c;
    pcVar4 = pcStack_48c;
    pcStack_934 = pcVar11;
    iVar10 = png_text_compress(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11);
    puVar38 = (undefined *)auStack_978._56_4_;
    if (iVar10 == 0) {
      pcVar4 = unaff_s8;
      if (ppVar12 == (png_structrp)0x0) {
        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);
        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);
        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);
        pcVar21 = pcVar11;
      }
      else {
        png_write_chunk_header
                  (ppVar12,0x69545874,
                   (png_uint_32)
                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))
        ;
        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);
        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);
        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);
        pcVar21 = pcVar11;
      }
      png_write_compressed_data_out(ppVar12,pcStack_48c);
LAB_0003b710:
      unaff_s0 = (compression_state *)(pVar2 + 3);
      (**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12);
      puVar38 = (undefined *)auStack_978._56_4_;
      if (iStack_4cc == *piVar34) {
        return;
      }
      goto LAB_0003b948;
    }
  }
  pcVar15 = (ppVar12->zstream).msg;
  pcVar36 = *(code **)(puVar38 + -0x7be4);
  pcVar41 = png_write_oFFs;
  ppVar31 = ppVar12;
  (*pcVar36)(ppVar12,pcVar15);
  ppStack_980 = (png_alloc_size_t *)(pcVar36 + 0x1f668);
  ppVar25 = *(png_structrp *)(pcVar36 + 0x17b34);
  auStack_978._12_4_ = ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc;
  pcVar37 = *(code **)(pcVar36 + 0x17a50);
  auStack_978._16_4_ = unaff_s0;
  auStack_978._20_4_ = ppVar12;
  auStack_978._24_4_ = pcStack_48c;
  auStack_978._28_4_ = &_gp;
  auStack_978._32_4_ = compression;
  auStack_978._36_4_ = pcVar41;
  if (1 < (int)pcVar11) {
    (**(code **)(pcVar36 + 0x17ab8))();
    pcVar37 = (code *)ppStack_980[-0x1f06];
  }
  (*pcVar37)((jmp_buf *)auStack_978,pcVar15);
  (*(code *)ppStack_980[-0x1f06])(auStack_978 + 4,pcVar4);
  p_Var22 = (png_error_ptr)0x9;
  key_00 = &DAT_6f464673;
  auStack_978[8] = SUB41(pcVar11,0);
  ppVar12 = ppVar31;
  pa_Var18 = (jmp_buf *)auStack_978;
  png_write_complete_chunk(ppVar31,0x6f464673,(png_const_bytep)auStack_978,9);
  if ((void *)auStack_978._12_4_ == ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc) {
    return;
  }
  pcVar36 = (code *)ppStack_980[-0x1edb];
  pcVar37 = png_write_pCAL;
  (*pcVar36)();
  pcVar21 = (compression_state *)ppStack_980;
  p_Var39 = pcVar36 + 0x1f574;
  p_Stack_a30 = *(png_rw_ptr *)(pcVar36 + 0x17a40);
  p_Stack_a34 = (png_rw_ptr)auStack_978._0_4_;
  auStack_a18._92_4_ = *(undefined4 *)p_Stack_a30;
  ppStack_a70 = ppVar25;
  p_Stack_a40 = p_Var39;
  auStack_a18._96_4_ = (jmp_buf *)auStack_978;
  ppStack_9b4 = ppVar25;
  pcStack_9b0 = pcVar11;
  ppStack_9ac = ppVar31;
  pcStack_9a8 = pcVar4;
  pcStack_9a4 = (compression_state *)key;
  pcStack_9a0 = new_key_00;
  piStack_99c = piVar34;
  pcStack_998 = unaff_s8;
  ppStack_994 = (png_compression_bufferp)pcVar37;
  pa_Stack_988 = pa_Var18;
  p_Stack_984 = p_Var22;
  if ((int)ppStack_980 < 4) {
    pa_Var18 = (jmp_buf *)(auStack_a18 + 0xc);
    pa_Stack_a1c = pa_Var18;
    pVar2 = png_check_keyword(ppVar12,key_00,(png_bytep)pa_Var18);
    p_Var39 = p_Stack_a40;
    ppStack_a70 = ppVar12;
    if (pVar2 == 0) {
      (**(code **)(p_Stack_a40 + -0x7be4))(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8);
      pcVar4 = (compression_state *)0x0;
      goto LAB_0003bebc;
    }
    pvStack_a2c = (png_voidp)(pVar2 + 1);
    ppVar31 = (png_structrp)(uint)(ppStack_97c != (png_structrp)0x0);
    p_Stack_a24 = (png_user_transform_ptr)((uint)pcVar21 & 0xff);
    iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(p_Stack_a34);
    pa_Stack_a28 = (jmp_buf *)((int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8);
    piVar34 = (int *)((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3);
    pcVar4 = (compression_state *)
             (**(code **)(p_Stack_a40 + -0x7ce8))(ppVar12,(int)ppStack_97c << 2);
    pvStack_a20 = (png_voidp)((uint)ppStack_97c & 0xff);
    if ((int)ppStack_97c < 1) {
      if (ppVar12 == (png_structrp)0x0) {
        ppVar25 = (png_structrp)auStack_a18;
        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);
        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);
        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);
        auStack_a18[8] = SUB41(p_Stack_a24,0);
        auStack_a18[9] = SUB41(pvStack_a20,0);
        (**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);
        pa_Var18 = pa_Stack_a28;
        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);
      }
      else {
        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);
        ppVar25 = (png_structrp)auStack_a18;
        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);
        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);
        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);
        auStack_a18[8] = SUB41(p_Stack_a24,0);
        auStack_a18[9] = SUB41(pvStack_a20,0);
        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);
        pa_Var18 = pa_Stack_a28;
        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);
      }
    }
    else {
      ppVar31 = (png_structrp)0x0;
      key = (png_const_charp)auStack_978._4_4_;
      pcVar11 = pcVar4;
      do {
        uVar13 = *(undefined4 *)key;
        key = (png_const_charp)((int)key + 4);
        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);
        ppVar5 = (png_const_bytep)
                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);
        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);
        pcVar11->input = ppVar5;
        piVar34 = (int *)((int)piVar34 + (int)ppVar5);
        pcVar11 = (compression_state *)&pcVar11->input_len;
      } while (ppStack_97c != ppVar31);
      if (ppVar12 == (png_structrp)0x0) {
        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);
        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);
        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);
        auStack_a18[8] = SUB41(p_Stack_a24,0);
        auStack_a18[9] = SUB41(pvStack_a20,0);
        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);
        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);
      }
      else {
        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);
        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);
        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);
        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);
        auStack_a18[8] = SUB41(p_Stack_a24,0);
        auStack_a18[9] = SUB41(pvStack_a20,0);
        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);
        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);
      }
      new_key_00 = (compression_state *)0x0;
      pcVar21 = pcVar4;
      puVar40 = (undefined4 *)auStack_978._4_4_;
      do {
        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);
        pa_Var18 = (jmp_buf *)pcVar21->input;
        uVar13 = *puVar40;
        pcVar21 = (compression_state *)&pcVar21->input_len;
        puVar40 = puVar40 + 1;
        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);
        ppVar25 = ppStack_97c;
        auStack_978._4_4_ = puVar40;
      } while ((int)new_key_00 < (int)ppStack_97c);
    }
    pcVar11 = pcVar4;
    (**(code **)(p_Stack_a40 + -0x7ccc))(ppVar12);
    (**(code **)(p_Stack_a40 + -0x7be8))();
    ppStack_a74 = ppVar25;
    p_Var39 = p_Stack_a40;
    puVar40 = (undefined4 *)auStack_978._4_4_;
    if (auStack_a18._92_4_ == *(uInt *)p_Stack_a30) {
      return;
    }
  }
  else {
LAB_0003bebc:
    pcVar11 = (compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c);
    (**(code **)(p_Var39 + -0x7be4))();
    ppStack_a74 = ppStack_97c;
    puVar40 = (undefined4 *)auStack_978._4_4_;
  }
  pcVar36 = *(code **)(p_Var39 + -0x7b6c);
  pcVar37 = png_write_sCAL_s;
  (*pcVar36)();
  auStack_b00._56_4_ = pcVar36 + 0x1f118;
  puVar28 = *(ulong **)(pcVar36 + 0x175e4);
  uStack_a7c = *puVar28;
  pa_Var19 = pa_Var18;
  p_Var39 = p_Var22;
  ppStack_a6c = (png_alloc_size_t *)pcVar21;
  ppStack_a68 = ppVar31;
  pcStack_a64 = pcVar4;
  pcStack_a60 = (compression_state *)key;
  pcStack_a5c = new_key_00;
  piStack_a58 = piVar34;
  pcStack_a54 = pcVar37;
  data = (jmp_buf *)(**(code **)(pcVar36 + 0x174fc))(pa_Var18);
  p_Var6 = (png_error_ptr)(**(code **)(auStack_b00._56_4_ + -0x7c1c))(p_Var22);
  length = p_Var6 + (int)((int)&(*data)[0].__jmpbuf[0].__pc + 2);
  ppVar31 = ppVar12;
  if (&DAT_00000040 < length) {
    iVar10 = *(int *)(auStack_b00._56_4_ + -0x7fd4) + 0x26e0;
    (**(code **)(auStack_b00._56_4_ + -0x7bb0))(ppVar12,iVar10);
  }
  else {
    auStack_abc[0] = (png_byte)pcVar11;
    (**(code **)(auStack_b00._56_4_ + -0x7bf0))
              (auStack_abc + 1,pa_Var18,(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f);
    p_Var1 = *data;
    data = (jmp_buf *)auStack_abc;
    (**(code **)(auStack_b00._56_4_ + -0x7b2c))
              ((code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,p_Var6);
    iVar10 = 0x7343414c;
    pa_Var19 = data;
    p_Var39 = length;
    png_write_complete_chunk(ppVar12,0x7343414c,(png_const_bytep)data,(size_t)length);
  }
  if (uStack_a7c == *puVar28) {
    return;
  }
  pcVar36 = *(code **)(auStack_b00._56_4_ + -0x7b6c);
  pcVar41 = png_write_pHYs;
  (*pcVar36)();
  auStack_b3c._52_4_ = pcVar36 + 0x1efc4;
  piVar34 = *(int **)(pcVar36 + 0x17490);
  auStack_b00._12_4_ = *piVar34;
  pcVar37 = *(code **)(pcVar36 + 0x173b4);
  auStack_b00._16_4_ = length;
  auStack_b00._20_4_ = data;
  auStack_b00._24_4_ = puVar28;
  auStack_b00._28_4_ = p_Var22;
  auStack_b00._32_4_ = p_Var6;
  auStack_b00._36_4_ = pcVar41;
  if (1 < (int)p_Var39) {
    (**(code **)(pcVar36 + 0x17414))();
    pcVar37 = *(code **)(auStack_b3c._52_4_ + -0x7c10);
  }
  (*pcVar37)((png_structrp)auStack_b00,iVar10);
  (**(code **)(auStack_b3c._52_4_ + -0x7c10))(auStack_b00 + 4,pa_Var19);
  ppVar16 = (png_structrp)&DAT_70485973;
  auStack_b00[8] = SUB41(p_Var39,0);
  ppVar25 = ppVar31;
  ppVar20 = (png_structrp)auStack_b00;
  png_write_complete_chunk(ppVar31,0x70485973,(png_const_bytep)auStack_b00,9);
  if (auStack_b00._12_4_ == *piVar34) {
    return;
  }
  pcVar36 = *(code **)(auStack_b3c._52_4_ + -0x7b6c);
  pcVar37 = png_write_tIME;
  (*pcVar36)();
  pcStack_b48 = pcVar36 + 0x1eed0;
  puVar28 = *(ulong **)(pcVar36 + 0x1739c);
  auStack_b3c._8_4_ = *puVar28;
  ppVar24 = (png_structrp)auStack_b00;
  ppVar14 = ppVar25;
  auStack_b3c._16_4_ = (png_structrp)auStack_b00;
  auStack_b3c._20_4_ = piVar34;
  auStack_b3c._24_4_ = p_Var39;
  auStack_b3c._28_4_ = ppVar31;
  auStack_b3c._32_4_ = pcVar37;
  if ((((*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&
       (ppVar24 = ppVar16,
       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)) &&
      (*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18)) &&
     (*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2) < 0x3d)) {
    ppVar31 = (png_structrp)auStack_b3c;
    (**(code **)(pcVar36 + 0x17200))
              (ppVar31,*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc);
    auStack_b3c[6] = *(undefined1 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2);
    pVar2 = 0x74494d45;
    auStack_b3c._2_2_ = *(undefined2 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2);
    auStack_b3c._4_2_ = *(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp;
    ppVar20 = ppVar31;
    png_write_complete_chunk(ppVar25,0x74494d45,(png_const_bytep)ppVar31,7);
  }
  else {
    pVar2 = *(int *)(pcVar36 + 0x16efc) + 0x272c;
    (**(code **)(pcVar36 + 0x17320))();
    ppVar16 = ppVar24;
  }
  if (auStack_b3c._8_4_ == *puVar28) {
    return;
  }
  pcVar36 = *(code **)(pcStack_b48 + -0x7b6c);
  pcVar37 = png_write_acTL;
  (*pcVar36)();
  pcStack_b88 = pcVar36 + 0x1edb0;
  puVar29 = *(ulong **)(pcVar36 + 0x1727c);
  ppVar14->num_frames_to_write = pVar2;
  uStack_b74 = *puVar29;
  ppStack_b6c = ppVar16;
  puStack_b68 = puVar28;
  ppStack_b64 = ppVar25;
  ppStack_b60 = ppVar31;
  pcStack_b5c = pcVar37;
  (**(code **)(pcVar36 + 0x171a0))(apStack_b7c);
  (**(code **)(pcStack_b88 + -0x7c10))(auStack_b78,ppVar20);
  pVar23 = 8;
  pVar2 = 0x6163544c;
  ppVar31 = ppVar14;
  ppVar5 = apStack_b7c;
  png_write_complete_chunk(ppVar14,0x6163544c,apStack_b7c,8);
  if (uStack_b74 == *puVar29) {
    return;
  }
  pcVar36 = *(code **)(pcStack_b88 + -0x7b6c);
  pcVar37 = png_write_fcTL;
  (*pcVar36)();
  piVar34 = *(int **)(pcVar36 + 0x171ac);
  ppVar25 = (png_structrp)*piVar34;
  uVar33 = (uint)uStack_b7e;
  auStack_be0._28_4_ = ppVar25;
  auStack_be0._32_4_ = apStack_b7c;
  auStack_be0._36_4_ = ppVar14;
  auStack_be0._40_4_ = puVar29;
  auStack_be0._44_4_ = ppVar20;
  auStack_be0._48_4_ = pa_Var19;
  auStack_be0._52_4_ = ppVar12;
  pa_Stack_ba8 = pa_Var18;
  pcStack_ba4 = pcVar11;
  puStack_ba0 = puVar40;
  pcStack_b9c = pcVar37;
  if (ppVar31->num_frames_written == 0) {
    if (pVar23 == 0 && pcStack_b88 == (code *)0x0) {
      if ((ppVar31->first_frame_width == pVar2) &&
         ((png_const_bytep)ppVar31->first_frame_height == ppVar5)) goto LAB_0003c3a8;
    }
    else {
      (**(code **)(pcVar36 + 0x170fc))();
    }
    pBVar17 = (Bytef *)(*(int *)(pcVar36 + 0x16d0c) + 0x2784);
    png_ptr_00 = ppVar31;
    (**(code **)(pcVar36 + 0x170fc))();
  }
  else {
LAB_0003c3a8:
    png_ensure_fcTL_is_valid
              (ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,
               uStack_b7e,pStack_b79,pStack_b75);
    (**(code **)(pcVar36 + 0x170d0))((png_structrp)auStack_be0,ppVar31->next_seq_num);
    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 4,pVar2);
    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 8,ppVar5);
    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0xc,pVar23);
    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0x10,pcStack_b88);
    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x14,pStack_b82);
    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x16,uVar33);
    pVar23 = 0x1a;
    pBVar17 = (Bytef *)0x6663544c;
    auStack_be0[0x18] = pStack_b79;
    auStack_be0[0x19] = pStack_b75;
    ppVar25 = (png_structrp)auStack_be0;
    png_write_complete_chunk(ppVar31,0x6663544c,(png_const_bytep)auStack_be0,0x1a);
    ppVar12 = (png_structrp)*piVar34;
    ppVar31->next_seq_num = ppVar31->next_seq_num + 1;
    png_ptr_00 = (png_structp)auStack_be0._28_4_;
    ppVar14 = (png_structrp)auStack_be0;
    if ((png_structrp)auStack_be0._28_4_ == ppVar12) {
      return;
    }
  }
  pcVar36 = *(code **)(pcVar36 + 0x17174);
  pcVar37 = png_write_fdAT;
  (*pcVar36)();
  piVar34 = *(int **)(pcVar36 + 0x16fac);
  ppStackY_c34 = (png_structrp)*piVar34;
  ppStackY_c30 = ppVar31;
  ppStackY_c2c = ppVar14;
  ppStackY_c28 = ppVar5;
  pStackY_c24 = pVar2;
  uStackY_c20 = uVar33;
  pcStackY_c1c = pcVar37;
  if (png_ptr_00 != (png_structrp)0x0) {
    png_write_chunk_header
              (png_ptr_00,0x66644154,(png_uint_32)&ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp);
  }
  (**(code **)(pcVar36 + 0x16ed0))(auStackY_c38,png_ptr_00->next_seq_num);
  (**(code **)(pcVar36 + 0x16fec))(png_ptr_00,auStackY_c38,4);
  (**(code **)(pcVar36 + 0x16fec))(png_ptr_00);
  (**(code **)(pcVar36 + 0x16ef8))(png_ptr_00);
  ppVar12 = (png_structrp)*piVar34;
  png_ptr_00->next_seq_num = png_ptr_00->next_seq_num + 1;
  if (ppStackY_c34 == ppVar12) {
    return;
  }
  pcVar36 = *(code **)(pcVar36 + 0x16f74);
  ppVar12 = ppStackY_c34;
  (*pcVar36)();
  if (ppVar12->zowner == 0x49444154) goto LAB_0003c6d0;
  if (ppVar12->zbuffer_list == (png_compression_bufferp)0x0) goto LAB_0003c8fc;
  png_free_buffer_list(ppVar12,&ppVar12->zbuffer_list->next);
  while( true ) {
    pVar7 = png_image_size(ppVar12);
    iVar10 = png_deflate_claim(ppVar12,0x49444154,pVar7);
    if (iVar10 != 0) break;
    ppVar8 = ppVar12->zbuffer_list;
    (ppVar12->zstream).avail_out = ppVar12->zbuffer_size;
    (ppVar12->zstream).next_out = ppVar8->output;
LAB_0003c6d0:
    (ppVar12->zstream).next_in = pBVar17;
    do {
      pcVar37 = *(code **)(pcVar36 + 0x16e48);
      do {
        (ppVar12->zstream).avail_in = (uInt)ppVar25;
        pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);
        ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;
        (ppVar12->zstream).avail_in = 0;
        if ((ppVar12->zstream).avail_out != 0) {
          if (pBVar17 != (Bytef *)0x0) {
LAB_0003c7d4:
            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;
            pcVar37 = *(code **)(pcVar36 + 0x16bc8);
            if (pVar23 == 4) {
              ppVar32 = ppVar12->zbuffer_list->output;
              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;
              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&
                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {
                optimize_cmf(ppVar32,pVar7);
              }
              if (pVar26 == 0) {
                uVar33 = ppVar12->mode;
              }
              else if (ppVar12->num_frames_written == 0) {
                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);
                uVar33 = ppVar12->mode;
              }
              else {
                png_write_fdAT(ppVar12,ppVar32,pVar26);
                uVar33 = ppVar12->mode;
              }
              (ppVar12->zstream).avail_out = 0;
              (ppVar12->zstream).next_out = (Bytef *)0x0;
              ppVar12->zowner = 0;
              ppVar12->mode = uVar33 | 0xc;
              return;
            }
            goto LAB_0003c948;
          }
          break;
        }
        pVar26 = ppVar12->zbuffer_size;
        ppVar32 = ppVar12->zbuffer_list->output;
        if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&
           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {
          optimize_cmf(ppVar32,pVar7);
        }
        if (pVar26 != 0) {
          if (ppVar12->num_frames_written == 0) {
            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);
          }
          else {
            png_write_fdAT(ppVar12,ppVar32,pVar26);
          }
        }
        uVar33 = ppVar12->mode;
        (ppVar12->zstream).next_out = ppVar32;
        (ppVar12->zstream).avail_out = pVar26;
        ppVar12->mode = uVar33 | 4;
        if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;
        pcVar37 = *(code **)(pcVar36 + 0x16e48);
      } while (pVar23 != 0);
    } while (ppVar25 != (png_structrp)0x0);
    if (pVar23 != 4) {
      return;
    }
    (**(code **)(pcVar36 + 0x16dfc))(ppVar12,*(int *)(pcVar36 + 0x16a0c) + 0x27d0);
LAB_0003c8fc:
    ppVar8 = (png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))();
    ppVar12->zbuffer_list = ppVar8;
    ppVar8->next = (png_compression_buffer *)0x0;
  }
  (**(code **)(pcVar36 + 0x16dfc))(ppVar12,(ppVar12->zstream).msg);
LAB_0003c944:
  pcVar37 = *(code **)(pcVar36 + 0x16bc8);
LAB_0003c948:
  (*pcVar37)(ppVar12,pBVar17);
  pcVar36 = *(code **)(pcVar36 + 0x16dfc);
  (*pcVar36)(ppVar12,(ppVar12->zstream).msg);
  uVar33 = (uint)ppVar12->usr_channels * (uint)ppVar12->usr_bit_depth;
  if (uVar33 < 8) {
    uVar27 = ppVar12->width * uVar33 + 7 >> 3;
  }
  else {
    uVar27 = (uVar33 >> 3) * ppVar12->width;
  }
  iVar10 = uVar27 + 1;
  pcVar37 = *(code **)(pcVar36 + 0x169a0);
  ppVar12->maximum_pixel_depth = (png_byte)uVar33;
  ppVar12->transformed_pixel_depth = ppVar12->pixel_depth;
  ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);
  pVar2 = ppVar12->height;
  uVar33 = (uint)ppVar12->do_filter;
  ppVar12->row_buf = ppVar9;
  *ppVar9 = '\0';
  if (pVar2 == 1) {
    uVar33 = uVar33 & 0x1f;
  }
  pVar23 = ppVar12->width;
  if (pVar23 == 1) {
    uVar33 = uVar33 & 0x2f;
  }
  if (uVar33 == 0) {
    ppVar12->do_filter = '\b';
    goto LAB_0003ca48;
  }
  pVar30 = (png_byte)uVar33;
  ppVar12->do_filter = pVar30;
  if (((uVar33 & 0xf0) == 0) || (ppVar12->try_row != (png_bytep)0x0)) {
LAB_0003ca24:
    pcVar37 = *(code **)(pcVar36 + 0x169c0);
    if ((uVar33 & 0xe0) == 0) {
      pVar2 = ppVar12->height;
      pVar23 = ppVar12->width;
      goto LAB_0003ca48;
    }
  }
  else {
    ppVar9 = (png_bytep)(**(code **)(pcVar36 + 0x169a0))(ppVar12,iVar10);
    ppVar12->try_row = ppVar9;
    iVar3 = -((int)(uVar33 << 0x1b) >> 0x1f);
    if ((uVar33 & 0x20) != 0) {
      iVar3 = iVar3 + 1;
    }
    if ((uVar33 & 0x40) != 0) {
      iVar3 = iVar3 + 1;
      if (-1 < (char)pVar30) goto LAB_0003cb38;
LAB_0003cb08:
      pcVar37 = *(code **)(pcVar36 + 0x169a0);
LAB_0003cb10:
      ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);
      ppVar12->tst_row = ppVar9;
      goto LAB_0003ca24;
    }
    if (-1 < (char)pVar30) {
LAB_0003cb38:
      pcVar37 = *(code **)(pcVar36 + 0x169a0);
      if (iVar3 < 2) goto LAB_0003ca24;
      goto LAB_0003cb10;
    }
    pcVar37 = *(code **)(pcVar36 + 0x169c0);
    if (iVar3 != 0) goto LAB_0003cb08;
  }
  ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);
  pVar2 = ppVar12->height;
  pVar23 = ppVar12->width;
  ppVar12->prev_row = ppVar9;
LAB_0003ca48:
  if ((ppVar12->interlaced != '\0') && ((ppVar12->transformations & 2) == 0)) {
    ppVar12->num_rows = pVar2 + 7 >> 3;
    ppVar12->usr_width = pVar23 + 7 >> 3;
    return;
  }
  ppVar12->num_rows = pVar2;
  ppVar12->usr_width = pVar23;
  return;
}



/* WARNING: Removing unreachable block (ram,0x0003b798) */
/* WARNING: Type propagation algorithm not settling */

void FUN_0003b374(int *param_1,int *param_2,int param_3,undefined *param_4)

{
  int iVar1;
  code *******pppppppcVar2;
  int iVar3;
  undefined *puVar4;
  int *piVar5;
  undefined1 *puVar6;
  int *piVar7;
  int iVar8;
  code *******pppppppcVar9;
  code ****ppppcVar10;
  int *piVar11;
  code **ppcVar12;
  int iVar13;
  code ******ppppppcVar14;
  int *piVar15;
  undefined *puVar16;
  undefined1 *puVar17;
  undefined *unaff_s0;
  undefined1 *puVar18;
  int *piVar19;
  int *unaff_s1;
  int *piVar20;
  code ***pppcVar21;
  code **ppcVar22;
  uint uVar23;
  int unaff_s2;
  code *******pppppppcVar24;
  code ****ppppcVar25;
  char cVar26;
  int *piVar27;
  undefined1 *unaff_s4;
  uint uVar28;
  int *unaff_s5;
  undefined4 unaff_s6;
  code *******pppppppcVar29;
  undefined4 *puVar30;
  int *piVar31;
  code *pcVar32;
  code ******ppppppcVar33;
  code ******ppppppcVar34;
  code *****pppppcVar35;
  code ****ppppcVar36;
  code ***pppcVar37;
  code **ppcVar38;
  code *pcVar39;
  undefined *puVar40;
  code *******unaff_s8;
  int iVar41;
  code *pcVar42;
  undefined4 uVar43;
  undefined1 auStack_c38 [4];
  int iStack_c34;
  int *piStack_c30;
  int *piStack_c2c;
  undefined1 *puStack_c28;
  int iStack_c24;
  uint uStack_c20;
  code *pcStack_c1c;
  code **ppcStack_c08;
  uint uStack_c04;
  uint uStack_c00;
  uint uStack_bfc;
  uint uStack_bf8;
  code *pcStack_bf0;
  uint uStack_be4;
  int iStack_be0;
  undefined1 auStack_bdc [4];
  undefined1 auStack_bd8 [4];
  undefined1 auStack_bd4 [4];
  undefined1 auStack_bd0 [4];
  undefined1 auStack_bcc [2];
  undefined1 auStack_bca [2];
  byte bStack_bc8;
  byte bStack_bc7;
  int *piStack_bc4;
  undefined1 *puStack_bc0;
  int *piStack_bbc;
  code *pcStack_bb8;
  int *piStack_bb4;
  code ******ppppppcStack_bb0;
  int *piStack_bac;
  code ******ppppppcStack_ba8;
  code *******pppppppcStack_ba4;
  int *piStack_ba0;
  undefined4 uStack_b9c;
  code **ppcStack_b88;
  ushort uStack_b82;
  ushort uStack_b7e;
  undefined1 auStack_b7c [3];
  byte bStack_b79;
  undefined1 auStack_b78 [3];
  byte bStack_b75;
  int iStack_b74;
  int *piStack_b6c;
  code **ppcStack_b68;
  int *piStack_b64;
  int *piStack_b60;
  code *pcStack_b5c;
  code ***pppcStack_b48;
  undefined4 uStack_b3c;
  undefined2 uStack_b38;
  undefined1 uStack_b36;
  code *pcStack_b34;
  int *piStack_b2c;
  code ***pppcStack_b28;
  undefined1 *puStack_b24;
  int *piStack_b20;
  code *pcStack_b1c;
  code ****ppppcStack_b08;
  int iStack_b00;
  undefined1 auStack_afc [4];
  undefined1 uStack_af8;
  code **ppcStack_af4;
  undefined1 *puStack_af0;
  code ******ppppppcStack_aec;
  code ****ppppcStack_ae8;
  undefined1 *puStack_ae4;
  int iStack_ae0;
  code *pcStack_adc;
  code *****pppppcStack_ac8;
  undefined1 uStack_abc;
  undefined1 uStack_abb;
  undefined1 auStack_aba [62];
  code ***pppcStack_a7c;
  int *piStack_a74;
  int *piStack_a70;
  code *******pppppppcStack_a6c;
  int *piStack_a68;
  code *******pppppppcStack_a64;
  int *piStack_a60;
  code *******pppppppcStack_a5c;
  int *piStack_a58;
  code *pcStack_a54;
  code ******ppppppcStack_a40;
  code *****pppppcStack_a34;
  code *****pppppcStack_a30;
  int iStack_a2c;
  code ******ppppppcStack_a28;
  uint uStack_a24;
  uint uStack_a20;
  code ******ppppppcStack_a1c;
  int iStack_a18;
  undefined1 auStack_a14 [4];
  undefined1 uStack_a10;
  undefined1 uStack_a0f;
  code *****apppppcStack_a0c [20];
  code ****ppppcStack_9bc;
  code ******ppppppcStack_9b8;
  int *piStack_9b4;
  undefined *puStack_9b0;
  int *piStack_9ac;
  code *******pppppppcStack_9a8;
  int *piStack_9a4;
  code *******pppppppcStack_9a0;
  int *piStack_99c;
  code *******pppppppcStack_998;
  code *pcStack_994;
  code ******ppppppcStack_988;
  undefined1 *puStack_984;
  code *******pppppppcStack_980;
  int *piStack_97c;
  code *****pppppcStack_978;
  int *piStack_974;
  undefined1 uStack_970;
  int iStack_96c;
  undefined *puStack_968;
  int *piStack_964;
  code *******pppppppcStack_960;
  undefined1 *puStack_95c;
  undefined *puStack_958;
  code *pcStack_954;
  undefined *puStack_940;
  undefined *puStack_934;
  code *******pppppppcStack_92c;
  code *******pppppppcStack_928;
  code *******pppppppcStack_924;
  undefined4 uStack_520;
  int iStack_4cc;
  undefined *puStack_4c8;
  int *piStack_4c4;
  int iStack_4c0;
  undefined *puStack_4bc;
  undefined1 *puStack_4b8;
  int *piStack_4b4;
  undefined4 uStack_4b0;
  code *******pppppppcStack_48c;
  int local_484;
  undefined4 local_480;
  int local_47c;
  undefined1 uStack_78;
  undefined1 auStack_77 [83];
  int local_24;
  
  puVar40 = PTR___stack_chk_guard_000534bc;
  local_24 = *(int *)PTR___stack_chk_guard_000534bc;
  if (param_4 == (undefined *)0xffffffff) {
    param_4 = (undefined *)0x0;
    FUN_0003b1e0();
LAB_0003b4a4:
    if (local_24 == *(int *)puVar40) {
      return;
    }
  }
  else {
    if (param_4 == (undefined *)0x0) {
      unaff_s4 = &uStack_78;
      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);
      unaff_s1 = param_1;
      unaff_s2 = param_3;
      if (iVar1 != 0) {
        unaff_s0 = (undefined *)(iVar1 + 2);
        auStack_77[iVar1] = 0;
        if (param_3 == 0) {
          local_480 = 0;
        }
        else {
          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);
        }
        unaff_s6 = 0x7a540000;
        unaff_s5 = &local_484;
        local_47c = 0;
        param_4 = unaff_s0;
        local_484 = param_3;
        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);
        if (iVar1 == 0) {
          if (param_1 != (int *)0x0) {
            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);
          }
          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);
          param_2 = unaff_s5;
          FUN_00039bc4(param_1);
          (*(code *)PTR_png_write_chunk_end_00053408)();
          goto LAB_0003b4a4;
        }
        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);
      }
      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);
    }
    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);
    (*(code *)PTR_png_error_0005340c)();
  }
  puVar16 = PTR___stack_chk_fail_00053484;
  (*(code *)PTR___stack_chk_fail_00053484)();
  puStack_940 = puVar16 + 0x1fac0;
  piVar31 = *(int **)(puVar16 + 0x17f8c);
  pppppppcVar29 = (code *******)&uStack_520;
  puStack_4bc = puVar40;
  iStack_4cc = *piVar31;
  pppppppcVar2 = pppppppcVar29;
  puVar16 = param_4;
  puStack_4c8 = unaff_s0;
  piStack_4c4 = unaff_s1;
  iStack_4c0 = unaff_s2;
  puStack_4b8 = unaff_s4;
  piStack_4b4 = unaff_s5;
  uStack_4b0 = unaff_s6;
  iVar1 = FUN_0003449c();
  puVar40 = puStack_940;
  if (iVar1 == 0) {
LAB_0003b954:
    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;
    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);
LAB_0003b968:
    puVar4 = puVar16;
    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);
  }
  else {
    if (param_2 != (int *)0x0) {
      if (0 < (int)param_2) {
        if (param_2 == (int *)0x1) goto LAB_0003b768;
        iVar8 = *(int *)(puStack_940 + -0x7fd4);
        if (param_2 != (int *)0x2) goto LAB_0003b938;
        goto LAB_0003b5d0;
      }
      iVar8 = *(int *)(puStack_940 + -0x7fd4);
      if (param_2 == (int *)0xffffffff) {
LAB_0003b768:
        puStack_934 = (undefined *)0x0;
        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;
        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;
        goto joined_r0x0003b780;
      }
LAB_0003b938:
      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);
LAB_0003b948:
      (**(code **)(puVar40 + -0x7b6c))();
      goto LAB_0003b954;
    }
LAB_0003b5d0:
    puStack_934 = (undefined *)0x1;
    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;
    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;
joined_r0x0003b780:
    if (param_4 == (undefined *)0x0) {
      param_2 = (int *)0x1;
      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);
    }
    else {
      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);
      param_2 = (int *)(iVar8 + 1);
    }
    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);
    unaff_s8 = (code *******)(iVar8 + 1);
    if (pppppppcStack_48c != (code *******)0x0) {
      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);
      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;
LAB_0003b7c8:
      puVar4 = (undefined *)0x7fffffff;
      pppppppcStack_92c = pppppppcStack_48c;
      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;
LAB_0003b670:
      pppppppcStack_924 = (code *******)0x0;
      unaff_s0 = (undefined *)(iVar1 + 3);
      puVar16 = (undefined *)0x7fffffff;
      iVar8 = *(int *)(puStack_940 + -0x7fd4);
      puVar40 = puStack_940;
      pppppppcStack_92c = pppppppcStack_48c;
      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {
        pppppppcStack_924 = pppppppcStack_928;
        if (param_1 == (int *)0x0) {
          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);
          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);
          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);
        }
        else {
          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);
          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);
          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);
          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);
        }
        pppppppcVar2 = pppppppcStack_924;
        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);
        goto LAB_0003b710;
      }
      goto LAB_0003b968;
    }
    pppppppcStack_928 = (code *******)0x0;
    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);
    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;
LAB_0003b648:
    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);
    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;
    puVar4 = puVar4 + (int)unaff_s8;
    pppppppcStack_92c = pppppppcStack_48c;
    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;
LAB_0003b7e0:
    pppppppcStack_924 = (code *******)0x0;
    unaff_s0 = (undefined *)(iVar1 + 3);
    pppppppcStack_48c = (code *******)&pppppppcStack_92c;
    pppppppcVar2 = pppppppcStack_48c;
    puStack_934 = puVar4;
    iVar8 = FUN_00039670(param_1,0x69545874);
    puVar40 = puStack_940;
    if (iVar8 == 0) {
      pppppppcVar2 = unaff_s8;
      if (param_1 == (int *)0x0) {
        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);
        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);
        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);
        puVar16 = puVar4;
      }
      else {
        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);
        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);
        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);
        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);
        puVar16 = puVar4;
      }
      FUN_00039bc4(param_1,pppppppcStack_48c);
LAB_0003b710:
      unaff_s0 = (undefined *)(iVar1 + 3);
      (**(code **)(puStack_940 + -0x7be8))(param_1);
      puVar40 = puStack_940;
      if (iStack_4cc == *piVar31) {
        return;
      }
      goto LAB_0003b948;
    }
  }
  iVar1 = param_1[0x53];
  pcVar32 = *(code **)(puVar40 + -0x7be4);
  pcVar42 = FUN_0003b988;
  piVar27 = param_1;
  (*pcVar32)(param_1,iVar1);
  pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);
  piVar20 = *(int **)(pcVar32 + 0x17b34);
  iStack_96c = *piVar20;
  ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);
  puStack_968 = unaff_s0;
  piStack_964 = param_1;
  pppppppcStack_960 = pppppppcStack_48c;
  puStack_95c = &_gp_1;
  puStack_958 = param_4;
  pcStack_954 = pcVar42;
  if (1 < (int)puVar4) {
    (**(code **)(pcVar32 + 0x17ab8))();
    ppppppcVar33 = pppppppcStack_980[-0x1f06];
  }
  (*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);
  (*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);
  puVar17 = (undefined1 *)0x9;
  uStack_970 = SUB41(puVar4,0);
  piVar5 = piVar27;
  ppppppcVar33 = &pppppcStack_978;
  FUN_00039d28(piVar27,0x6f464673);
  if (iStack_96c == *piVar20) {
    return;
  }
  ppppppcVar34 = pppppppcStack_980[-0x1edb];
  pcVar32 = FUN_0003ba7c;
  (*(code *)ppppppcVar34)();
  pppppppcVar24 = pppppppcStack_980;
  ppppppcVar14 = ppppppcVar34 + 0x7d5d;
  pppppcStack_a30 = ppppppcVar34[0x5e90];
  pppppcStack_a34 = pppppcStack_978;
  ppppcStack_9bc = *pppppcStack_a30;
  piStack_a70 = piVar20;
  ppppppcStack_a40 = ppppppcVar14;
  ppppppcStack_9b8 = &pppppcStack_978;
  piStack_9b4 = piVar20;
  puStack_9b0 = puVar4;
  piStack_9ac = piVar27;
  pppppppcStack_9a8 = pppppppcVar2;
  piStack_9a4 = param_2;
  pppppppcStack_9a0 = pppppppcVar29;
  piStack_99c = piVar31;
  pppppppcStack_998 = unaff_s8;
  pcStack_994 = pcVar32;
  ppppppcStack_988 = ppppppcVar33;
  puStack_984 = puVar17;
  if ((int)pppppppcStack_980 < 4) {
    ppppppcVar33 = apppppcStack_a0c;
    ppppppcStack_a1c = ppppppcVar33;
    iVar1 = FUN_0003449c();
    ppppppcVar14 = ppppppcStack_a40;
    piStack_a70 = piVar5;
    if (iVar1 == 0) {
      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);
      pppppppcVar2 = (code *******)0x0;
      goto LAB_0003bebc;
    }
    iStack_a2c = iVar1 + 1;
    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);
    uStack_a24 = (uint)pppppppcVar24 & 0xff;
    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);
    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);
    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);
    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);
    uStack_a20 = (uint)piStack_97c & 0xff;
    if ((int)piStack_97c < 1) {
      if (piVar5 == (int *)0x0) {
        piVar20 = &iStack_a18;
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);
        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);
        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);
        uStack_a10 = (undefined1)uStack_a24;
        uStack_a0f = (undefined1)uStack_a20;
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);
        ppppppcVar33 = ppppppcStack_a28;
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);
      }
      else {
        FUN_00039938(piVar5,0x7043414c,piVar31);
        piVar20 = &iStack_a18;
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);
        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);
        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);
        uStack_a10 = (undefined1)uStack_a24;
        uStack_a0f = (undefined1)uStack_a20;
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);
        ppppppcVar33 = ppppppcStack_a28;
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);
      }
    }
    else {
      piVar27 = (int *)0x0;
      param_2 = piStack_974;
      pppppppcVar29 = pppppppcVar2;
      do {
        iVar1 = *param_2;
        param_2 = param_2 + 1;
        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);
        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);
        piVar27 = (int *)((int)piVar27 + 1);
        *pppppppcVar29 = ppppppcVar33;
        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);
        pppppppcVar29 = pppppppcVar29 + 1;
      } while (piStack_97c != piVar27);
      if (piVar5 == (int *)0x0) {
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);
        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);
        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);
        uStack_a10 = (undefined1)uStack_a24;
        uStack_a0f = (undefined1)uStack_a20;
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);
      }
      else {
        FUN_00039938(piVar5,0x7043414c,piVar31);
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);
        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);
        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);
        uStack_a10 = (undefined1)uStack_a24;
        uStack_a0f = (undefined1)uStack_a20;
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);
      }
      pppppppcVar29 = (code *******)0x0;
      pppppppcVar24 = pppppppcVar2;
      piVar15 = piStack_974;
      do {
        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);
        ppppppcVar33 = *pppppppcVar24;
        iVar1 = *piVar15;
        pppppppcVar24 = pppppppcVar24 + 1;
        piVar15 = piVar15 + 1;
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);
        piVar20 = piStack_97c;
        piStack_974 = piVar15;
      } while ((int)pppppppcVar29 < (int)piStack_97c);
    }
    pppppppcVar9 = pppppppcVar2;
    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);
    (*(code *)ppppppcStack_a40[-0x1efa])();
    piStack_a74 = piVar20;
    ppppppcVar14 = ppppppcStack_a40;
    piVar20 = piStack_974;
    if (ppppcStack_9bc == *pppppcStack_a30) {
      return;
    }
  }
  else {
LAB_0003bebc:
    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);
    (*(code *)ppppppcVar14[-0x1ef9])();
    piStack_a74 = piStack_97c;
    piVar20 = piStack_974;
  }
  pppppcVar35 = ppppppcVar14[-0x1edb];
  pcVar32 = FUN_0003bed8;
  (*(code *)pppppcVar35)();
  pppppcStack_ac8 = pppppcVar35 + 0x7c46;
  ppppcVar25 = pppppcVar35[0x5d79];
  pppcStack_a7c = *ppppcVar25;
  ppppppcVar14 = ppppppcVar33;
  puVar6 = puVar17;
  pppppppcStack_a6c = pppppppcVar24;
  piStack_a68 = piVar27;
  pppppppcStack_a64 = pppppppcVar2;
  piStack_a60 = param_2;
  pppppppcStack_a5c = pppppppcVar29;
  piStack_a58 = piVar31;
  pcStack_a54 = pcVar32;
  ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);
  iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);
  puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);
  piVar31 = piVar5;
  if (puVar18 < (undefined1 *)0x41) {
    uStack_abc = SUB41(pppppppcVar9,0);
    (*(code *)pppppcStack_ac8[-0x1efc])
              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);
    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);
    ppppppcVar34 = (code ******)&uStack_abc;
    (*(code *)pppppcStack_ac8[-0x1ecb])
              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);
    ppppcVar10 = (code ****)0x7343414c;
    ppppppcVar14 = ppppppcVar34;
    puVar6 = puVar18;
    FUN_00039d28(piVar5,0x7343414c);
  }
  else {
    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;
    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);
  }
  if (pppcStack_a7c == *ppppcVar25) {
    return;
  }
  ppppcVar36 = pppppcStack_ac8[-0x1edb];
  pcVar32 = FUN_0003c02c;
  (*(code *)ppppcVar36)();
  ppppcStack_b08 = ppppcVar36 + 0x7bf1;
  pppcVar21 = ppppcVar36[0x5d24];
  ppcStack_af4 = *pppcVar21;
  pppcVar37 = ppppcVar36[0x5ced];
  puStack_af0 = puVar18;
  ppppppcStack_aec = ppppppcVar34;
  ppppcStack_ae8 = ppppcVar25;
  puStack_ae4 = puVar17;
  iStack_ae0 = iVar1;
  pcStack_adc = pcVar32;
  if (1 < (int)puVar6) {
    (*(code *)ppppcVar36[0x5d05])();
    pppcVar37 = ppppcStack_b08[-0x1f04];
  }
  (*(code *)pppcVar37)(&iStack_b00,ppppcVar10);
  (*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);
  piVar11 = (int *)&DAT_70485973;
  uStack_af8 = SUB41(puVar6,0);
  piVar27 = piVar31;
  piVar15 = &iStack_b00;
  FUN_00039d28();
  if (ppcStack_af4 == *pppcVar21) {
    return;
  }
  pppcVar37 = ppppcStack_b08[-0x1edb];
  pcVar32 = FUN_0003c120;
  (*(code *)pppcVar37)();
  pppcStack_b48 = pppcVar37 + 0x7bb4;
  ppcVar22 = pppcVar37[0x5ce7];
  pcStack_b34 = *ppcVar22;
  piVar19 = &iStack_b00;
  piVar7 = piVar27;
  piStack_b2c = &iStack_b00;
  pppcStack_b28 = pppcVar21;
  puStack_b24 = puVar6;
  piStack_b20 = piVar31;
  pcStack_b1c = pcVar32;
  if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))
      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {
    piVar31 = &uStack_b3c;
    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);
    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);
    ppcVar12 = (code **)0x74494d45;
    uStack_b3c._2_2_ = (undefined2)*piVar11;
    uStack_b38 = *(undefined2 *)(piVar11 + 1);
    piVar15 = piVar31;
    FUN_00039d28();
  }
  else {
    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;
    (*(code *)pppcVar37[0x5cc8])();
    piVar11 = piVar19;
  }
  if (pcStack_b34 == *ppcVar22) {
    return;
  }
  ppcVar38 = pppcStack_b48[-0x1edb];
  pcVar42 = FUN_0003c240;
  (*(code *)ppcVar38)();
  ppcStack_b88 = ppcVar38 + 0x7b6c;
  pcVar32 = ppcVar38[0x5c9f];
  piVar7[0xc9] = (int)ppcVar12;
  iStack_b74 = *(int *)pcVar32;
  piStack_b6c = piVar11;
  ppcStack_b68 = ppcVar22;
  piStack_b64 = piVar27;
  piStack_b60 = piVar31;
  pcStack_b5c = pcVar42;
  (*ppcVar38[0x5c68])(auStack_b7c);
  (*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);
  iVar8 = 8;
  iVar1 = 0x6163544c;
  piVar31 = piVar7;
  puVar17 = auStack_b7c;
  FUN_00039d28();
  if (iStack_b74 == *(int *)pcVar32) {
    return;
  }
  pcVar39 = ppcStack_b88[0xffffe125];
  uVar43 = 0x3c310;
  (*pcVar39)();
  pcVar42 = pcVar39 + 0x1ece0;
  puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);
  piVar27 = (int *)*puVar30;
  uVar28 = (uint)uStack_b7e;
  pcStack_bf0 = pcVar42;
  piStack_bc4 = piVar27;
  puStack_bc0 = auStack_b7c;
  piStack_bbc = piVar7;
  pcStack_bb8 = pcVar32;
  piStack_bb4 = piVar15;
  ppppppcStack_bb0 = ppppppcVar14;
  piStack_bac = piVar5;
  ppppppcStack_ba8 = ppppppcVar33;
  pppppppcStack_ba4 = pppppppcVar9;
  piStack_ba0 = piVar20;
  uStack_b9c = uVar43;
  if (piVar31[0xca] == 0) {
    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {
      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;
    }
    else {
      (**(code **)(pcVar39 + 0x170fc))();
    }
    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;
    piVar20 = piVar31;
    (**(code **)(pcVar39 + 0x170fc))();
  }
  else {
LAB_0003c3a8:
    ppcStack_c08 = ppcStack_b88;
    uStack_c04 = (uint)uStack_b82;
    uStack_c00 = uVar28;
    uStack_bfc = (uint)bStack_b79;
    uStack_bf8 = (uint)bStack_b75;
    uStack_be4 = (uint)uStack_b82;
    FUN_00033984(piVar31,iVar1,puVar17,iVar8);
    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);
    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);
    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);
    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);
    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);
    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);
    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);
    iVar8 = 0x1a;
    iVar13 = 0x6663544c;
    bStack_bc8 = bStack_b79;
    bStack_bc7 = bStack_b75;
    piVar27 = &iStack_be0;
    FUN_00039d28(piVar31);
    piVar5 = (int *)*puVar30;
    piVar31[0xc3] = piVar31[0xc3] + 1;
    piVar20 = piStack_bc4;
    piVar7 = &iStack_be0;
    pcVar42 = pcStack_bf0;
    if (piStack_bc4 == piVar5) {
      return;
    }
  }
  pcVar32 = *(code **)(pcVar42 + -0x7b6c);
  pcVar42 = FUN_0003c510;
  (*pcVar32)();
  piVar5 = *(int **)(pcVar32 + 0x16fac);
  iStack_c34 = *piVar5;
  piStack_c30 = piVar31;
  piStack_c2c = piVar7;
  puStack_c28 = puVar17;
  iStack_c24 = iVar1;
  uStack_c20 = uVar28;
  pcStack_c1c = pcVar42;
  if (piVar20 != (int *)0x0) {
    FUN_00039938();
  }
  (**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);
  (**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);
  (**(code **)(pcVar32 + 0x16fec))(piVar20);
  (**(code **)(pcVar32 + 0x16ef8))(piVar20);
  iVar1 = *piVar5;
  piVar20[0xc3] = piVar20[0xc3] + 1;
  if (iStack_c34 == iVar1) {
    return;
  }
  pcVar32 = *(code **)(pcVar32 + 0x16f74);
  iVar1 = iStack_c34;
  (*pcVar32)();
  if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;
  if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;
  FUN_00039dec();
  while( true ) {
    uVar43 = FUN_00039150(iVar1);
    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);
    if (iVar3 != 0) break;
    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);
    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;
LAB_0003c6d0:
    *(int *)(iVar1 + 0x134) = iVar13;
    do {
      pcVar42 = *(code **)(pcVar32 + 0x16e48);
      do {
        *(int **)(iVar1 + 0x138) = piVar27;
        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);
        piVar27 = *(int **)(iVar1 + 0x138);
        *(undefined4 *)(iVar1 + 0x138) = 0;
        if (*(int *)(iVar1 + 0x144) != 0) {
          if (iVar13 != 0) {
LAB_0003c7d4:
            if (iVar13 != 1) goto LAB_0003c944;
            pcVar42 = *(code **)(pcVar32 + 0x16bc8);
            if (iVar8 == 4) {
              iVar13 = *(int *)(iVar1 + 0x16c) + 4;
              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);
              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&
                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {
                FUN_000395ac(iVar13,uVar28);
              }
              if (iVar8 == 0) {
                uVar28 = *(uint *)(iVar1 + 0x124);
              }
              else if (*(int *)(iVar1 + 0x328) == 0) {
                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);
                uVar28 = *(uint *)(iVar1 + 0x124);
              }
              else {
                FUN_0003c510(iVar1,iVar13,iVar8);
                uVar28 = *(uint *)(iVar1 + 0x124);
              }
              *(undefined4 *)(iVar1 + 0x144) = 0;
              *(undefined4 *)(iVar1 + 0x140) = 0;
              *(undefined4 *)(iVar1 + 0x130) = 0;
              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;
              return;
            }
            goto LAB_0003c948;
          }
          break;
        }
        iVar41 = *(int *)(iVar1 + 0x170);
        iVar3 = *(int *)(iVar1 + 0x16c) + 4;
        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&
           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {
          FUN_000395ac(iVar3,uVar28);
        }
        if (iVar41 != 0) {
          if (*(int *)(iVar1 + 0x328) == 0) {
            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);
          }
          else {
            FUN_0003c510(iVar1,iVar3,iVar41);
          }
        }
        *(int *)(iVar1 + 0x140) = iVar3;
        *(int *)(iVar1 + 0x144) = iVar41;
        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;
        if (iVar13 != 0) goto LAB_0003c7d4;
        pcVar42 = *(code **)(pcVar32 + 0x16e48);
      } while (iVar8 != 0);
    } while (piVar27 != (int *)0x0);
    if (iVar8 != 4) {
      return;
    }
    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);
LAB_0003c8fc:
    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();
    *(undefined4 **)(iVar1 + 0x16c) = puVar30;
    *puVar30 = 0;
  }
  (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));
LAB_0003c944:
  pcVar42 = *(code **)(pcVar32 + 0x16bc8);
LAB_0003c948:
  (*pcVar42)(iVar1,iVar13);
  pcVar32 = *(code **)(pcVar32 + 0x16dfc);
  (*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));
  uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);
  if (uVar28 < 8) {
    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;
  }
  else {
    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);
  }
  iVar13 = uVar23 + 1;
  pcVar42 = *(code **)(pcVar32 + 0x169a0);
  *(char *)(iVar1 + 0x206) = (char)uVar28;
  *(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);
  puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);
  iVar8 = *(int *)(iVar1 + 0x1b4);
  uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);
  *(undefined1 **)(iVar1 + 0x1d4) = puVar17;
  *puVar17 = 0;
  if (iVar8 == 1) {
    uVar28 = uVar28 & 0x1f;
  }
  iVar3 = *(int *)(iVar1 + 0x1b0);
  if (iVar3 == 1) {
    uVar28 = uVar28 & 0x2f;
  }
  if (uVar28 == 0) {
    *(undefined1 *)(iVar1 + 0x1fe) = 8;
    goto LAB_0003ca48;
  }
  cVar26 = (char)uVar28;
  *(char *)(iVar1 + 0x1fe) = cVar26;
  if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {
LAB_0003ca24:
    pcVar42 = *(code **)(pcVar32 + 0x169c0);
    if ((uVar28 & 0xe0) == 0) {
      iVar8 = *(int *)(iVar1 + 0x1b4);
      iVar3 = *(int *)(iVar1 + 0x1b0);
      goto LAB_0003ca48;
    }
  }
  else {
    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);
    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;
    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);
    if ((uVar28 & 0x20) != 0) {
      iVar8 = iVar8 + 1;
    }
    if ((uVar28 & 0x40) != 0) {
      iVar8 = iVar8 + 1;
      if (-1 < cVar26) goto LAB_0003cb38;
LAB_0003cb08:
      pcVar42 = *(code **)(pcVar32 + 0x169a0);
LAB_0003cb10:
      uVar43 = (*pcVar42)(iVar1,iVar13);
      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;
      goto LAB_0003ca24;
    }
    if (-1 < cVar26) {
LAB_0003cb38:
      pcVar42 = *(code **)(pcVar32 + 0x169a0);
      if (iVar8 < 2) goto LAB_0003ca24;
      goto LAB_0003cb10;
    }
    pcVar42 = *(code **)(pcVar32 + 0x169c0);
    if (iVar8 != 0) goto LAB_0003cb08;
  }
  uVar43 = (*pcVar42)(iVar1,iVar13);
  iVar8 = *(int *)(iVar1 + 0x1b4);
  iVar3 = *(int *)(iVar1 + 0x1b0);
  *(undefined4 *)(iVar1 + 0x1d0) = uVar43;
LAB_0003ca48:
  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {
    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;
    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;
    return;
  }
  *(int *)(iVar1 + 0x1b8) = iVar8;
  *(int *)(iVar1 + 0x1bc) = iVar3;
  return;
}


lui gp,0x2
addiu gp,gp,-0x384
addu gp,gp,t9
addiu sp,sp,-0x4a0
li v0,-0x1
sw s3,0x48c(sp)
lw s3,-0x7b34(gp)
sw gp,0x10(sp)
sw ra,0x49c(sp)
sw s6,0x498(sp)
sw s5,0x494(sp)
sw s4,0x490(sp)
sw s2,0x488(sp)
sw s1,0x484(sp)
sw s0,0x480(sp)
lw v1,0x0(s3)
sw v1,0x47c(sp)
beq a3,v0,0x0003b4e0
_lw t9,-0x7d78(gp)
bne a3,zero,0x0003b514
_lw t9,-0x7d38(gp)
addiu s4,sp,0x428
or s2,a2,zero
or a2,s4,zero
bal 0x0003449c
_or s1,a0,zero
beq v0,zero,0x0003b500
_lw gp,0x10(sp)
addiu v1,sp,0x480
addiu s0,v0,0x2
addu v1,v1,v0
beq s2,zero,0x0003b4d8
_sb zero,-0x57(v1)
lw t9,-0x7c1c(gp)
jalr t9
_or a0,s2,zero
lw gp,0x10(sp)
lw t9,-0x7fd4(gp)
lui s6,0x7a54
addiu s5,sp,0x1c
sw s2,0x1c(sp)
addiu a1,s6,0x5874
sw v0,0x20(sp)
addiu t9,t9,-0x6990
sw zero,0x24(sp)
or a3,s0,zero
or a2,s5,zero
bal 0x00039670
_or a0,s1,zero
bne v0,zero,0x0003b4f0
_lw gp,0x10(sp)
beq s1,zero,0x0003b464
_lw t9,-0x7fd4(gp)
ori a1,s6,0x5874
lw a2,0x24(sp)
or a0,s1,zero
addiu t9,t9,-0x66c8
bal 0x00039938
_addu a2,s0,a2
lw gp,0x10(sp)
lw t9,-0x7af4(gp)
or a2,s0,zero
or a1,s4,zero
jalr t9
_or a0,s1,zero
or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x7fd4(gp)
addiu t9,t9,-0x643c
bal 0x00039bc4
_or a1,s5,zero
lw gp,0x10(sp)
lw t9,-0x7be8(gp)
jalr t9
_or a0,s1,zero
lw gp,0x10(sp)
lw v1,0x47c(sp)
lw v0,0x0(s3)
bne v1,v0,0x0003b524
_lw ra,0x49c(sp)
lw s6,0x498(sp)
lw s5,0x494(sp)
lw s4,0x490(sp)
lw s3,0x48c(sp)
lw s2,0x488(sp)
lw s1,0x484(sp)
lw s0,0x480(sp)
jr ra
_addiu sp,sp,0x4a0
b 0x0003b408
_or v0,zero,zero
bal 0x0003b1e0
_or a3,zero,zero
b 0x0003b4a4
_lw gp,0x10(sp)
lw a1,0x14c(s1)
lw t9,-0x7be4(gp)
jalr t9
_or a0,s1,zero
lw a1,-0x7fd4(gp)
or a0,s1,zero
lw t9,-0x7be4(gp)
jalr t9
_addiu a1,a1,0x2604
lw a1,-0x7fd4(gp)
lw t9,-0x7be4(gp)
jalr t9
_addiu a1,a1,0x25e4
lw t9,-0x7b6c(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0003b798) */\n/* WARNING: Type propagation algorithm not settling */\n\nvoid FUN_0003b374(int *param_1,int *param_2,int param_3,undefined *param_4)\n\n{\n  int iVar1;\n  code *******pppppppcVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  int *piVar7;\n  int iVar8;\n  code *******pppppppcVar9;\n  code ****ppppcVar10;\n  int *piVar11;\n  code **ppcVar12;\n  int iVar13;\n  code ******ppppppcVar14;\n  int *piVar15;\n  undefined *puVar16;\n  undefined1 *puVar17;\n  undefined *unaff_s0;\n  undefined1 *puVar18;\n  int *piVar19;\n  int *unaff_s1;\n  int *piVar20;\n  code ***pppcVar21;\n  code **ppcVar22;\n  uint uVar23;\n  int unaff_s2;\n  code *******pppppppcVar24;\n  code ****ppppcVar25;\n  char cVar26;\n  int *piVar27;\n  undefined1 *unaff_s4;\n  uint uVar28;\n  int *unaff_s5;\n  undefined4 unaff_s6;\n  code *******pppppppcVar29;\n  undefined4 *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  code ******ppppppcVar33;\n  code ******ppppppcVar34;\n  code *****pppppcVar35;\n  code ****ppppcVar36;\n  code ***pppcVar37;\n  code **ppcVar38;\n  code *pcVar39;\n  undefined *puVar40;\n  code *******unaff_s8;\n  int iVar41;\n  code *pcVar42;\n  undefined4 uVar43;\n  undefined1 auStack_c38 [4];\n  int iStack_c34;\n  int *piStack_c30;\n  int *piStack_c2c;\n  undefined1 *puStack_c28;\n  int iStack_c24;\n  uint uStack_c20;\n  code *pcStack_c1c;\n  code **ppcStack_c08;\n  uint uStack_c04;\n  uint uStack_c00;\n  uint uStack_bfc;\n  uint uStack_bf8;\n  code *pcStack_bf0;\n  uint uStack_be4;\n  int iStack_be0;\n  undefined1 auStack_bdc [4];\n  undefined1 auStack_bd8 [4];\n  undefined1 auStack_bd4 [4];\n  undefined1 auStack_bd0 [4];\n  undefined1 auStack_bcc [2];\n  undefined1 auStack_bca [2];\n  byte bStack_bc8;\n  byte bStack_bc7;\n  int *piStack_bc4;\n  undefined1 *puStack_bc0;\n  int *piStack_bbc;\n  code *pcStack_bb8;\n  int *piStack_bb4;\n  code ******ppppppcStack_bb0;\n  int *piStack_bac;\n  code ******ppppppcStack_ba8;\n  code *******pppppppcStack_ba4;\n  int *piStack_ba0;\n  undefined4 uStack_b9c;\n  code **ppcStack_b88;\n  ushort uStack_b82;\n  ushort uStack_b7e;\n  undefined1 auStack_b7c [3];\n  byte bStack_b79;\n  undefined1 auStack_b78 [3];\n  byte bStack_b75;\n  int iStack_b74;\n  int *piStack_b6c;\n  code **ppcStack_b68;\n  int *piStack_b64;\n  int *piStack_b60;\n  code *pcStack_b5c;\n  code ***pppcStack_b48;\n  undefined4 uStack_b3c;\n  undefined2 uStack_b38;\n  undefined1 uStack_b36;\n  code *pcStack_b34;\n  int *piStack_b2c;\n  code ***pppcStack_b28;\n  undefined1 *puStack_b24;\n  int *piStack_b20;\n  code *pcStack_b1c;\n  code ****ppppcStack_b08;\n  int iStack_b00;\n  undefined1 auStack_afc [4];\n  undefined1 uStack_af8;\n  code **ppcStack_af4;\n  undefined1 *puStack_af0;\n  code ******ppppppcStack_aec;\n  code ****ppppcStack_ae8;\n  undefined1 *puStack_ae4;\n  int iStack_ae0;\n  code *pcStack_adc;\n  code *****pppppcStack_ac8;\n  undefined1 uStack_abc;\n  undefined1 uStack_abb;\n  undefined1 auStack_aba [62];\n  code ***pppcStack_a7c;\n  int *piStack_a74;\n  int *piStack_a70;\n  code *******pppppppcStack_a6c;\n  int *piStack_a68;\n  code *******pppppppcStack_a64;\n  int *piStack_a60;\n  code *******pppppppcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  code ******ppppppcStack_a40;\n  code *****pppppcStack_a34;\n  code *****pppppcStack_a30;\n  int iStack_a2c;\n  code ******ppppppcStack_a28;\n  uint uStack_a24;\n  uint uStack_a20;\n  code ******ppppppcStack_a1c;\n  int iStack_a18;\n  undefined1 auStack_a14 [4];\n  undefined1 uStack_a10;\n  undefined1 uStack_a0f;\n  code *****apppppcStack_a0c [20];\n  code ****ppppcStack_9bc;\n  code ******ppppppcStack_9b8;\n  int *piStack_9b4;\n  undefined *puStack_9b0;\n  int *piStack_9ac;\n  code *******pppppppcStack_9a8;\n  int *piStack_9a4;\n  code *******pppppppcStack_9a0;\n  int *piStack_99c;\n  code *******pppppppcStack_998;\n  code *pcStack_994;\n  code ******ppppppcStack_988;\n  undefined1 *puStack_984;\n  code *******pppppppcStack_980;\n  int *piStack_97c;\n  code *****pppppcStack_978;\n  int *piStack_974;\n  undefined1 uStack_970;\n  int iStack_96c;\n  undefined *puStack_968;\n  int *piStack_964;\n  code *******pppppppcStack_960;\n  undefined1 *puStack_95c;\n  undefined *puStack_958;\n  code *pcStack_954;\n  undefined *puStack_940;\n  undefined *puStack_934;\n  code *******pppppppcStack_92c;\n  code *******pppppppcStack_928;\n  code *******pppppppcStack_924;\n  undefined4 uStack_520;\n  int iStack_4cc;\n  undefined *puStack_4c8;\n  int *piStack_4c4;\n  int iStack_4c0;\n  undefined *puStack_4bc;\n  undefined1 *puStack_4b8;\n  int *piStack_4b4;\n  undefined4 uStack_4b0;\n  code *******pppppppcStack_48c;\n  int local_484;\n  undefined4 local_480;\n  int local_47c;\n  undefined1 uStack_78;\n  undefined1 auStack_77 [83];\n  int local_24;\n  \n  puVar40 = PTR___stack_chk_guard_000534bc;\n  local_24 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar16 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  puStack_940 = puVar16 + 0x1fac0;\n  piVar31 = *(int **)(puVar16 + 0x17f8c);\n  pppppppcVar29 = (code *******)&uStack_520;\n  puStack_4bc = puVar40;\n  iStack_4cc = *piVar31;\n  pppppppcVar2 = pppppppcVar29;\n  puVar16 = param_4;\n  puStack_4c8 = unaff_s0;\n  piStack_4c4 = unaff_s1;\n  iStack_4c0 = unaff_s2;\n  puStack_4b8 = unaff_s4;\n  piStack_4b4 = unaff_s5;\n  uStack_4b0 = unaff_s6;\n  iVar1 = FUN_0003449c();\n  puVar40 = puStack_940;\n  if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  iVar1 = param_1[0x53];\n  pcVar32 = *(code **)(puVar40 + -0x7be4);\n  pcVar42 = FUN_0003b988;\n  piVar27 = param_1;\n  (*pcVar32)(param_1,iVar1);\n  pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);\n  piVar20 = *(int **)(pcVar32 + 0x17b34);\n  iStack_96c = *piVar20;\n  ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);\n  puStack_968 = unaff_s0;\n  piStack_964 = param_1;\n  pppppppcStack_960 = pppppppcStack_48c;\n  puStack_95c = &_gp_1;\n  puStack_958 = param_4;\n  pcStack_954 = pcVar42;\n  if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }\n  (*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);\n  (*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);\n  puVar17 = (undefined1 *)0x9;\n  uStack_970 = SUB41(puVar4,0);\n  piVar5 = piVar27;\n  ppppppcVar33 = &pppppcStack_978;\n  FUN_00039d28(piVar27,0x6f464673);\n  if (iStack_96c == *piVar20) {\n    return;\n  }\n  ppppppcVar34 = pppppppcStack_980[-0x1edb];\n  pcVar32 = FUN_0003ba7c;\n  (*(code *)ppppppcVar34)();\n  pppppppcVar24 = pppppppcStack_980;\n  ppppppcVar14 = ppppppcVar34 + 0x7d5d;\n  pppppcStack_a30 = ppppppcVar34[0x5e90];\n  pppppcStack_a34 = pppppcStack_978;\n  ppppcStack_9bc = *pppppcStack_a30;\n  piStack_a70 = piVar20;\n  ppppppcStack_a40 = ppppppcVar14;\n  ppppppcStack_9b8 = &pppppcStack_978;\n  piStack_9b4 = piVar20;\n  puStack_9b0 = puVar4;\n  piStack_9ac = piVar27;\n  pppppppcStack_9a8 = pppppppcVar2;\n  piStack_9a4 = param_2;\n  pppppppcStack_9a0 = pppppppcVar29;\n  piStack_99c = piVar31;\n  pppppppcStack_998 = unaff_s8;\n  pcStack_994 = pcVar32;\n  ppppppcStack_988 = ppppppcVar33;\n  puStack_984 = puVar17;\n  if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }\n  pppppcVar35 = ppppppcVar14[-0x1edb];\n  pcVar32 = FUN_0003bed8;\n  (*(code *)pppppcVar35)();\n  pppppcStack_ac8 = pppppcVar35 + 0x7c46;\n  ppppcVar25 = pppppcVar35[0x5d79];\n  pppcStack_a7c = *ppppcVar25;\n  ppppppcVar14 = ppppppcVar33;\n  puVar6 = puVar17;\n  pppppppcStack_a6c = pppppppcVar24;\n  piStack_a68 = piVar27;\n  pppppppcStack_a64 = pppppppcVar2;\n  piStack_a60 = param_2;\n  pppppppcStack_a5c = pppppppcVar29;\n  piStack_a58 = piVar31;\n  pcStack_a54 = pcVar32;\n  ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);\n  iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);\n  puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);\n  piVar31 = piVar5;\n  if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }\n  if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }\n  ppppcVar36 = pppppcStack_ac8[-0x1edb];\n  pcVar32 = FUN_0003c02c;\n  (*(code *)ppppcVar36)();\n  ppppcStack_b08 = ppppcVar36 + 0x7bf1;\n  pppcVar21 = ppppcVar36[0x5d24];\n  ppcStack_af4 = *pppcVar21;\n  pppcVar37 = ppppcVar36[0x5ced];\n  puStack_af0 = puVar18;\n  ppppppcStack_aec = ppppppcVar34;\n  ppppcStack_ae8 = ppppcVar25;\n  puStack_ae4 = puVar17;\n  iStack_ae0 = iVar1;\n  pcStack_adc = pcVar32;\n  if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }\n  (*(code *)pppcVar37)(&iStack_b00,ppppcVar10);\n  (*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);\n  piVar11 = (int *)&DAT_70485973;\n  uStack_af8 = SUB41(puVar6,0);\n  piVar27 = piVar31;\n  piVar15 = &iStack_b00;\n  FUN_00039d28();\n  if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }\n  pppcVar37 = ppppcStack_b08[-0x1edb];\n  pcVar32 = FUN_0003c120;\n  (*(code *)pppcVar37)();\n  pppcStack_b48 = pppcVar37 + 0x7bb4;\n  ppcVar22 = pppcVar37[0x5ce7];\n  pcStack_b34 = *ppcVar22;\n  piVar19 = &iStack_b00;\n  piVar7 = piVar27;\n  piStack_b2c = &iStack_b00;\n  pppcStack_b28 = pppcVar21;\n  puStack_b24 = puVar6;\n  piStack_b20 = piVar31;\n  pcStack_b1c = pcVar32;\n  if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }\n  if (pcStack_b34 == *ppcVar22) {\n    return;\n  }\n  ppcVar38 = pppcStack_b48[-0x1edb];\n  pcVar42 = FUN_0003c240;\n  (*(code *)ppcVar38)();\n  ppcStack_b88 = ppcVar38 + 0x7b6c;\n  pcVar32 = ppcVar38[0x5c9f];\n  piVar7[0xc9] = (int)ppcVar12;\n  iStack_b74 = *(int *)pcVar32;\n  piStack_b6c = piVar11;\n  ppcStack_b68 = ppcVar22;\n  piStack_b64 = piVar27;\n  piStack_b60 = piVar31;\n  pcStack_b5c = pcVar42;\n  (*ppcVar38[0x5c68])(auStack_b7c);\n  (*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);\n  iVar8 = 8;\n  iVar1 = 0x6163544c;\n  piVar31 = piVar7;\n  puVar17 = auStack_b7c;\n  FUN_00039d28();\n  if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }\n  pcVar39 = ppcStack_b88[0xffffe125];\n  uVar43 = 0x3c310;\n  (*pcVar39)();\n  pcVar42 = pcVar39 + 0x1ece0;\n  puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);\n  piVar27 = (int *)*puVar30;\n  uVar28 = (uint)uStack_b7e;\n  pcStack_bf0 = pcVar42;\n  piStack_bc4 = piVar27;\n  puStack_bc0 = auStack_b7c;\n  piStack_bbc = piVar7;\n  pcStack_bb8 = pcVar32;\n  piStack_bb4 = piVar15;\n  ppppppcStack_bb0 = ppppppcVar14;\n  piStack_bac = piVar5;\n  ppppppcStack_ba8 = ppppppcVar33;\n  pppppppcStack_ba4 = pppppppcVar9;\n  piStack_ba0 = piVar20;\n  uStack_b9c = uVar43;\n  if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }\n  pcVar32 = *(code **)(pcVar42 + -0x7b6c);\n  pcVar42 = FUN_0003c510;\n  (*pcVar32)();\n  piVar5 = *(int **)(pcVar32 + 0x16fac);\n  iStack_c34 = *piVar5;\n  piStack_c30 = piVar31;\n  piStack_c2c = piVar7;\n  puStack_c28 = puVar17;\n  iStack_c24 = iVar1;\n  uStack_c20 = uVar28;\n  pcStack_c1c = pcVar42;\n  if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }\n  (**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20);\n  (**(code **)(pcVar32 + 0x16ef8))(piVar20);\n  iVar1 = *piVar5;\n  piVar20[0xc3] = piVar20[0xc3] + 1;\n  if (iStack_c34 == iVar1) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x16f74);\n  iVar1 = iStack_c34;\n  (*pcVar32)();\n  if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;\n  if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;\n  FUN_00039dec();\n  while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }\n  (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));\nLAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);\n  pcVar32 = *(code **)(pcVar32 + 0x16dfc);\n  (*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));\n  uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);\n  if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }\n  iVar13 = uVar23 + 1;\n  pcVar42 = *(code **)(pcVar32 + 0x169a0);\n  *(char *)(iVar1 + 0x206) = (char)uVar28;\n  *(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);\n  puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);\n  *(undefined1 **)(iVar1 + 0x1d4) = puVar17;\n  *puVar17 = 0;\n  if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }\n  if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }\n  cVar26 = (char)uVar28;\n  *(char *)(iVar1 + 0x1fe) = cVar26;\n  if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }\n  uVar43 = (*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  *(undefined4 *)(iVar1 + 0x1d0) = uVar43;\nLAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }\n  *(int *)(iVar1 + 0x1b8) = iVar8;\n  *(int *)(iVar1 + 0x1bc) = iVar3;\n  return;\n}\n\n" comment comment (function_definition "void FUN_0003b374(int *param_1,int *param_2,int param_3,undefined *param_4)\n\n{\n  int iVar1;\n  code *******pppppppcVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  int *piVar7;\n  int iVar8;\n  code *******pppppppcVar9;\n  code ****ppppcVar10;\n  int *piVar11;\n  code **ppcVar12;\n  int iVar13;\n  code ******ppppppcVar14;\n  int *piVar15;\n  undefined *puVar16;\n  undefined1 *puVar17;\n  undefined *unaff_s0;\n  undefined1 *puVar18;\n  int *piVar19;\n  int *unaff_s1;\n  int *piVar20;\n  code ***pppcVar21;\n  code **ppcVar22;\n  uint uVar23;\n  int unaff_s2;\n  code *******pppppppcVar24;\n  code ****ppppcVar25;\n  char cVar26;\n  int *piVar27;\n  undefined1 *unaff_s4;\n  uint uVar28;\n  int *unaff_s5;\n  undefined4 unaff_s6;\n  code *******pppppppcVar29;\n  undefined4 *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  code ******ppppppcVar33;\n  code ******ppppppcVar34;\n  code *****pppppcVar35;\n  code ****ppppcVar36;\n  code ***pppcVar37;\n  code **ppcVar38;\n  code *pcVar39;\n  undefined *puVar40;\n  code *******unaff_s8;\n  int iVar41;\n  code *pcVar42;\n  undefined4 uVar43;\n  undefined1 auStack_c38 [4];\n  int iStack_c34;\n  int *piStack_c30;\n  int *piStack_c2c;\n  undefined1 *puStack_c28;\n  int iStack_c24;\n  uint uStack_c20;\n  code *pcStack_c1c;\n  code **ppcStack_c08;\n  uint uStack_c04;\n  uint uStack_c00;\n  uint uStack_bfc;\n  uint uStack_bf8;\n  code *pcStack_bf0;\n  uint uStack_be4;\n  int iStack_be0;\n  undefined1 auStack_bdc [4];\n  undefined1 auStack_bd8 [4];\n  undefined1 auStack_bd4 [4];\n  undefined1 auStack_bd0 [4];\n  undefined1 auStack_bcc [2];\n  undefined1 auStack_bca [2];\n  byte bStack_bc8;\n  byte bStack_bc7;\n  int *piStack_bc4;\n  undefined1 *puStack_bc0;\n  int *piStack_bbc;\n  code *pcStack_bb8;\n  int *piStack_bb4;\n  code ******ppppppcStack_bb0;\n  int *piStack_bac;\n  code ******ppppppcStack_ba8;\n  code *******pppppppcStack_ba4;\n  int *piStack_ba0;\n  undefined4 uStack_b9c;\n  code **ppcStack_b88;\n  ushort uStack_b82;\n  ushort uStack_b7e;\n  undefined1 auStack_b7c [3];\n  byte bStack_b79;\n  undefined1 auStack_b78 [3];\n  byte bStack_b75;\n  int iStack_b74;\n  int *piStack_b6c;\n  code **ppcStack_b68;\n  int *piStack_b64;\n  int *piStack_b60;\n  code *pcStack_b5c;\n  code ***pppcStack_b48;\n  undefined4 uStack_b3c;\n  undefined2 uStack_b38;\n  undefined1 uStack_b36;\n  code *pcStack_b34;\n  int *piStack_b2c;\n  code ***pppcStack_b28;\n  undefined1 *puStack_b24;\n  int *piStack_b20;\n  code *pcStack_b1c;\n  code ****ppppcStack_b08;\n  int iStack_b00;\n  undefined1 auStack_afc [4];\n  undefined1 uStack_af8;\n  code **ppcStack_af4;\n  undefined1 *puStack_af0;\n  code ******ppppppcStack_aec;\n  code ****ppppcStack_ae8;\n  undefined1 *puStack_ae4;\n  int iStack_ae0;\n  code *pcStack_adc;\n  code *****pppppcStack_ac8;\n  undefined1 uStack_abc;\n  undefined1 uStack_abb;\n  undefined1 auStack_aba [62];\n  code ***pppcStack_a7c;\n  int *piStack_a74;\n  int *piStack_a70;\n  code *******pppppppcStack_a6c;\n  int *piStack_a68;\n  code *******pppppppcStack_a64;\n  int *piStack_a60;\n  code *******pppppppcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  code ******ppppppcStack_a40;\n  code *****pppppcStack_a34;\n  code *****pppppcStack_a30;\n  int iStack_a2c;\n  code ******ppppppcStack_a28;\n  uint uStack_a24;\n  uint uStack_a20;\n  code ******ppppppcStack_a1c;\n  int iStack_a18;\n  undefined1 auStack_a14 [4];\n  undefined1 uStack_a10;\n  undefined1 uStack_a0f;\n  code *****apppppcStack_a0c [20];\n  code ****ppppcStack_9bc;\n  code ******ppppppcStack_9b8;\n  int *piStack_9b4;\n  undefined *puStack_9b0;\n  int *piStack_9ac;\n  code *******pppppppcStack_9a8;\n  int *piStack_9a4;\n  code *******pppppppcStack_9a0;\n  int *piStack_99c;\n  code *******pppppppcStack_998;\n  code *pcStack_994;\n  code ******ppppppcStack_988;\n  undefined1 *puStack_984;\n  code *******pppppppcStack_980;\n  int *piStack_97c;\n  code *****pppppcStack_978;\n  int *piStack_974;\n  undefined1 uStack_970;\n  int iStack_96c;\n  undefined *puStack_968;\n  int *piStack_964;\n  code *******pppppppcStack_960;\n  undefined1 *puStack_95c;\n  undefined *puStack_958;\n  code *pcStack_954;\n  undefined *puStack_940;\n  undefined *puStack_934;\n  code *******pppppppcStack_92c;\n  code *******pppppppcStack_928;\n  code *******pppppppcStack_924;\n  undefined4 uStack_520;\n  int iStack_4cc;\n  undefined *puStack_4c8;\n  int *piStack_4c4;\n  int iStack_4c0;\n  undefined *puStack_4bc;\n  undefined1 *puStack_4b8;\n  int *piStack_4b4;\n  undefined4 uStack_4b0;\n  code *******pppppppcStack_48c;\n  int local_484;\n  undefined4 local_480;\n  int local_47c;\n  undefined1 uStack_78;\n  undefined1 auStack_77 [83];\n  int local_24;\n  \n  puVar40 = PTR___stack_chk_guard_000534bc;\n  local_24 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar16 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  puStack_940 = puVar16 + 0x1fac0;\n  piVar31 = *(int **)(puVar16 + 0x17f8c);\n  pppppppcVar29 = (code *******)&uStack_520;\n  puStack_4bc = puVar40;\n  iStack_4cc = *piVar31;\n  pppppppcVar2 = pppppppcVar29;\n  puVar16 = param_4;\n  puStack_4c8 = unaff_s0;\n  piStack_4c4 = unaff_s1;\n  iStack_4c0 = unaff_s2;\n  puStack_4b8 = unaff_s4;\n  piStack_4b4 = unaff_s5;\n  uStack_4b0 = unaff_s6;\n  iVar1 = FUN_0003449c();\n  puVar40 = puStack_940;\n  if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  iVar1 = param_1[0x53];\n  pcVar32 = *(code **)(puVar40 + -0x7be4);\n  pcVar42 = FUN_0003b988;\n  piVar27 = param_1;\n  (*pcVar32)(param_1,iVar1);\n  pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);\n  piVar20 = *(int **)(pcVar32 + 0x17b34);\n  iStack_96c = *piVar20;\n  ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);\n  puStack_968 = unaff_s0;\n  piStack_964 = param_1;\n  pppppppcStack_960 = pppppppcStack_48c;\n  puStack_95c = &_gp_1;\n  puStack_958 = param_4;\n  pcStack_954 = pcVar42;\n  if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }\n  (*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);\n  (*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);\n  puVar17 = (undefined1 *)0x9;\n  uStack_970 = SUB41(puVar4,0);\n  piVar5 = piVar27;\n  ppppppcVar33 = &pppppcStack_978;\n  FUN_00039d28(piVar27,0x6f464673);\n  if (iStack_96c == *piVar20) {\n    return;\n  }\n  ppppppcVar34 = pppppppcStack_980[-0x1edb];\n  pcVar32 = FUN_0003ba7c;\n  (*(code *)ppppppcVar34)();\n  pppppppcVar24 = pppppppcStack_980;\n  ppppppcVar14 = ppppppcVar34 + 0x7d5d;\n  pppppcStack_a30 = ppppppcVar34[0x5e90];\n  pppppcStack_a34 = pppppcStack_978;\n  ppppcStack_9bc = *pppppcStack_a30;\n  piStack_a70 = piVar20;\n  ppppppcStack_a40 = ppppppcVar14;\n  ppppppcStack_9b8 = &pppppcStack_978;\n  piStack_9b4 = piVar20;\n  puStack_9b0 = puVar4;\n  piStack_9ac = piVar27;\n  pppppppcStack_9a8 = pppppppcVar2;\n  piStack_9a4 = param_2;\n  pppppppcStack_9a0 = pppppppcVar29;\n  piStack_99c = piVar31;\n  pppppppcStack_998 = unaff_s8;\n  pcStack_994 = pcVar32;\n  ppppppcStack_988 = ppppppcVar33;\n  puStack_984 = puVar17;\n  if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }\n  pppppcVar35 = ppppppcVar14[-0x1edb];\n  pcVar32 = FUN_0003bed8;\n  (*(code *)pppppcVar35)();\n  pppppcStack_ac8 = pppppcVar35 + 0x7c46;\n  ppppcVar25 = pppppcVar35[0x5d79];\n  pppcStack_a7c = *ppppcVar25;\n  ppppppcVar14 = ppppppcVar33;\n  puVar6 = puVar17;\n  pppppppcStack_a6c = pppppppcVar24;\n  piStack_a68 = piVar27;\n  pppppppcStack_a64 = pppppppcVar2;\n  piStack_a60 = param_2;\n  pppppppcStack_a5c = pppppppcVar29;\n  piStack_a58 = piVar31;\n  pcStack_a54 = pcVar32;\n  ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);\n  iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);\n  puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);\n  piVar31 = piVar5;\n  if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }\n  if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }\n  ppppcVar36 = pppppcStack_ac8[-0x1edb];\n  pcVar32 = FUN_0003c02c;\n  (*(code *)ppppcVar36)();\n  ppppcStack_b08 = ppppcVar36 + 0x7bf1;\n  pppcVar21 = ppppcVar36[0x5d24];\n  ppcStack_af4 = *pppcVar21;\n  pppcVar37 = ppppcVar36[0x5ced];\n  puStack_af0 = puVar18;\n  ppppppcStack_aec = ppppppcVar34;\n  ppppcStack_ae8 = ppppcVar25;\n  puStack_ae4 = puVar17;\n  iStack_ae0 = iVar1;\n  pcStack_adc = pcVar32;\n  if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }\n  (*(code *)pppcVar37)(&iStack_b00,ppppcVar10);\n  (*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);\n  piVar11 = (int *)&DAT_70485973;\n  uStack_af8 = SUB41(puVar6,0);\n  piVar27 = piVar31;\n  piVar15 = &iStack_b00;\n  FUN_00039d28();\n  if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }\n  pppcVar37 = ppppcStack_b08[-0x1edb];\n  pcVar32 = FUN_0003c120;\n  (*(code *)pppcVar37)();\n  pppcStack_b48 = pppcVar37 + 0x7bb4;\n  ppcVar22 = pppcVar37[0x5ce7];\n  pcStack_b34 = *ppcVar22;\n  piVar19 = &iStack_b00;\n  piVar7 = piVar27;\n  piStack_b2c = &iStack_b00;\n  pppcStack_b28 = pppcVar21;\n  puStack_b24 = puVar6;\n  piStack_b20 = piVar31;\n  pcStack_b1c = pcVar32;\n  if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }\n  if (pcStack_b34 == *ppcVar22) {\n    return;\n  }\n  ppcVar38 = pppcStack_b48[-0x1edb];\n  pcVar42 = FUN_0003c240;\n  (*(code *)ppcVar38)();\n  ppcStack_b88 = ppcVar38 + 0x7b6c;\n  pcVar32 = ppcVar38[0x5c9f];\n  piVar7[0xc9] = (int)ppcVar12;\n  iStack_b74 = *(int *)pcVar32;\n  piStack_b6c = piVar11;\n  ppcStack_b68 = ppcVar22;\n  piStack_b64 = piVar27;\n  piStack_b60 = piVar31;\n  pcStack_b5c = pcVar42;\n  (*ppcVar38[0x5c68])(auStack_b7c);\n  (*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);\n  iVar8 = 8;\n  iVar1 = 0x6163544c;\n  piVar31 = piVar7;\n  puVar17 = auStack_b7c;\n  FUN_00039d28();\n  if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }\n  pcVar39 = ppcStack_b88[0xffffe125];\n  uVar43 = 0x3c310;\n  (*pcVar39)();\n  pcVar42 = pcVar39 + 0x1ece0;\n  puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);\n  piVar27 = (int *)*puVar30;\n  uVar28 = (uint)uStack_b7e;\n  pcStack_bf0 = pcVar42;\n  piStack_bc4 = piVar27;\n  puStack_bc0 = auStack_b7c;\n  piStack_bbc = piVar7;\n  pcStack_bb8 = pcVar32;\n  piStack_bb4 = piVar15;\n  ppppppcStack_bb0 = ppppppcVar14;\n  piStack_bac = piVar5;\n  ppppppcStack_ba8 = ppppppcVar33;\n  pppppppcStack_ba4 = pppppppcVar9;\n  piStack_ba0 = piVar20;\n  uStack_b9c = uVar43;\n  if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }\n  pcVar32 = *(code **)(pcVar42 + -0x7b6c);\n  pcVar42 = FUN_0003c510;\n  (*pcVar32)();\n  piVar5 = *(int **)(pcVar32 + 0x16fac);\n  iStack_c34 = *piVar5;\n  piStack_c30 = piVar31;\n  piStack_c2c = piVar7;\n  puStack_c28 = puVar17;\n  iStack_c24 = iVar1;\n  uStack_c20 = uVar28;\n  pcStack_c1c = pcVar42;\n  if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }\n  (**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20);\n  (**(code **)(pcVar32 + 0x16ef8))(piVar20);\n  iVar1 = *piVar5;\n  piVar20[0xc3] = piVar20[0xc3] + 1;\n  if (iStack_c34 == iVar1) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x16f74);\n  iVar1 = iStack_c34;\n  (*pcVar32)();\n  if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;\n  if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;\n  FUN_00039dec();\n  while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }\n  (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));\nLAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);\n  pcVar32 = *(code **)(pcVar32 + 0x16dfc);\n  (*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));\n  uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);\n  if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }\n  iVar13 = uVar23 + 1;\n  pcVar42 = *(code **)(pcVar32 + 0x169a0);\n  *(char *)(iVar1 + 0x206) = (char)uVar28;\n  *(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);\n  puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);\n  *(undefined1 **)(iVar1 + 0x1d4) = puVar17;\n  *puVar17 = 0;\n  if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }\n  if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }\n  cVar26 = (char)uVar28;\n  *(char *)(iVar1 + 0x1fe) = cVar26;\n  if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }\n  uVar43 = (*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  *(undefined4 *)(iVar1 + 0x1d0) = uVar43;\nLAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }\n  *(int *)(iVar1 + 0x1b8) = iVar8;\n  *(int *)(iVar1 + 0x1bc) = iVar3;\n  return;\n}" primitive_type (function_declarator "FUN_0003b374(int *param_1,int *param_2,int param_3,undefined *param_4)" identifier (parameter_list "(int *param_1,int *param_2,int param_3,undefined *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  code *******pppppppcVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  int *piVar7;\n  int iVar8;\n  code *******pppppppcVar9;\n  code ****ppppcVar10;\n  int *piVar11;\n  code **ppcVar12;\n  int iVar13;\n  code ******ppppppcVar14;\n  int *piVar15;\n  undefined *puVar16;\n  undefined1 *puVar17;\n  undefined *unaff_s0;\n  undefined1 *puVar18;\n  int *piVar19;\n  int *unaff_s1;\n  int *piVar20;\n  code ***pppcVar21;\n  code **ppcVar22;\n  uint uVar23;\n  int unaff_s2;\n  code *******pppppppcVar24;\n  code ****ppppcVar25;\n  char cVar26;\n  int *piVar27;\n  undefined1 *unaff_s4;\n  uint uVar28;\n  int *unaff_s5;\n  undefined4 unaff_s6;\n  code *******pppppppcVar29;\n  undefined4 *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  code ******ppppppcVar33;\n  code ******ppppppcVar34;\n  code *****pppppcVar35;\n  code ****ppppcVar36;\n  code ***pppcVar37;\n  code **ppcVar38;\n  code *pcVar39;\n  undefined *puVar40;\n  code *******unaff_s8;\n  int iVar41;\n  code *pcVar42;\n  undefined4 uVar43;\n  undefined1 auStack_c38 [4];\n  int iStack_c34;\n  int *piStack_c30;\n  int *piStack_c2c;\n  undefined1 *puStack_c28;\n  int iStack_c24;\n  uint uStack_c20;\n  code *pcStack_c1c;\n  code **ppcStack_c08;\n  uint uStack_c04;\n  uint uStack_c00;\n  uint uStack_bfc;\n  uint uStack_bf8;\n  code *pcStack_bf0;\n  uint uStack_be4;\n  int iStack_be0;\n  undefined1 auStack_bdc [4];\n  undefined1 auStack_bd8 [4];\n  undefined1 auStack_bd4 [4];\n  undefined1 auStack_bd0 [4];\n  undefined1 auStack_bcc [2];\n  undefined1 auStack_bca [2];\n  byte bStack_bc8;\n  byte bStack_bc7;\n  int *piStack_bc4;\n  undefined1 *puStack_bc0;\n  int *piStack_bbc;\n  code *pcStack_bb8;\n  int *piStack_bb4;\n  code ******ppppppcStack_bb0;\n  int *piStack_bac;\n  code ******ppppppcStack_ba8;\n  code *******pppppppcStack_ba4;\n  int *piStack_ba0;\n  undefined4 uStack_b9c;\n  code **ppcStack_b88;\n  ushort uStack_b82;\n  ushort uStack_b7e;\n  undefined1 auStack_b7c [3];\n  byte bStack_b79;\n  undefined1 auStack_b78 [3];\n  byte bStack_b75;\n  int iStack_b74;\n  int *piStack_b6c;\n  code **ppcStack_b68;\n  int *piStack_b64;\n  int *piStack_b60;\n  code *pcStack_b5c;\n  code ***pppcStack_b48;\n  undefined4 uStack_b3c;\n  undefined2 uStack_b38;\n  undefined1 uStack_b36;\n  code *pcStack_b34;\n  int *piStack_b2c;\n  code ***pppcStack_b28;\n  undefined1 *puStack_b24;\n  int *piStack_b20;\n  code *pcStack_b1c;\n  code ****ppppcStack_b08;\n  int iStack_b00;\n  undefined1 auStack_afc [4];\n  undefined1 uStack_af8;\n  code **ppcStack_af4;\n  undefined1 *puStack_af0;\n  code ******ppppppcStack_aec;\n  code ****ppppcStack_ae8;\n  undefined1 *puStack_ae4;\n  int iStack_ae0;\n  code *pcStack_adc;\n  code *****pppppcStack_ac8;\n  undefined1 uStack_abc;\n  undefined1 uStack_abb;\n  undefined1 auStack_aba [62];\n  code ***pppcStack_a7c;\n  int *piStack_a74;\n  int *piStack_a70;\n  code *******pppppppcStack_a6c;\n  int *piStack_a68;\n  code *******pppppppcStack_a64;\n  int *piStack_a60;\n  code *******pppppppcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  code ******ppppppcStack_a40;\n  code *****pppppcStack_a34;\n  code *****pppppcStack_a30;\n  int iStack_a2c;\n  code ******ppppppcStack_a28;\n  uint uStack_a24;\n  uint uStack_a20;\n  code ******ppppppcStack_a1c;\n  int iStack_a18;\n  undefined1 auStack_a14 [4];\n  undefined1 uStack_a10;\n  undefined1 uStack_a0f;\n  code *****apppppcStack_a0c [20];\n  code ****ppppcStack_9bc;\n  code ******ppppppcStack_9b8;\n  int *piStack_9b4;\n  undefined *puStack_9b0;\n  int *piStack_9ac;\n  code *******pppppppcStack_9a8;\n  int *piStack_9a4;\n  code *******pppppppcStack_9a0;\n  int *piStack_99c;\n  code *******pppppppcStack_998;\n  code *pcStack_994;\n  code ******ppppppcStack_988;\n  undefined1 *puStack_984;\n  code *******pppppppcStack_980;\n  int *piStack_97c;\n  code *****pppppcStack_978;\n  int *piStack_974;\n  undefined1 uStack_970;\n  int iStack_96c;\n  undefined *puStack_968;\n  int *piStack_964;\n  code *******pppppppcStack_960;\n  undefined1 *puStack_95c;\n  undefined *puStack_958;\n  code *pcStack_954;\n  undefined *puStack_940;\n  undefined *puStack_934;\n  code *******pppppppcStack_92c;\n  code *******pppppppcStack_928;\n  code *******pppppppcStack_924;\n  undefined4 uStack_520;\n  int iStack_4cc;\n  undefined *puStack_4c8;\n  int *piStack_4c4;\n  int iStack_4c0;\n  undefined *puStack_4bc;\n  undefined1 *puStack_4b8;\n  int *piStack_4b4;\n  undefined4 uStack_4b0;\n  code *******pppppppcStack_48c;\n  int local_484;\n  undefined4 local_480;\n  int local_47c;\n  undefined1 uStack_78;\n  undefined1 auStack_77 [83];\n  int local_24;\n  \n  puVar40 = PTR___stack_chk_guard_000534bc;\n  local_24 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar16 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  puStack_940 = puVar16 + 0x1fac0;\n  piVar31 = *(int **)(puVar16 + 0x17f8c);\n  pppppppcVar29 = (code *******)&uStack_520;\n  puStack_4bc = puVar40;\n  iStack_4cc = *piVar31;\n  pppppppcVar2 = pppppppcVar29;\n  puVar16 = param_4;\n  puStack_4c8 = unaff_s0;\n  piStack_4c4 = unaff_s1;\n  iStack_4c0 = unaff_s2;\n  puStack_4b8 = unaff_s4;\n  piStack_4b4 = unaff_s5;\n  uStack_4b0 = unaff_s6;\n  iVar1 = FUN_0003449c();\n  puVar40 = puStack_940;\n  if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  iVar1 = param_1[0x53];\n  pcVar32 = *(code **)(puVar40 + -0x7be4);\n  pcVar42 = FUN_0003b988;\n  piVar27 = param_1;\n  (*pcVar32)(param_1,iVar1);\n  pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);\n  piVar20 = *(int **)(pcVar32 + 0x17b34);\n  iStack_96c = *piVar20;\n  ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);\n  puStack_968 = unaff_s0;\n  piStack_964 = param_1;\n  pppppppcStack_960 = pppppppcStack_48c;\n  puStack_95c = &_gp_1;\n  puStack_958 = param_4;\n  pcStack_954 = pcVar42;\n  if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }\n  (*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);\n  (*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);\n  puVar17 = (undefined1 *)0x9;\n  uStack_970 = SUB41(puVar4,0);\n  piVar5 = piVar27;\n  ppppppcVar33 = &pppppcStack_978;\n  FUN_00039d28(piVar27,0x6f464673);\n  if (iStack_96c == *piVar20) {\n    return;\n  }\n  ppppppcVar34 = pppppppcStack_980[-0x1edb];\n  pcVar32 = FUN_0003ba7c;\n  (*(code *)ppppppcVar34)();\n  pppppppcVar24 = pppppppcStack_980;\n  ppppppcVar14 = ppppppcVar34 + 0x7d5d;\n  pppppcStack_a30 = ppppppcVar34[0x5e90];\n  pppppcStack_a34 = pppppcStack_978;\n  ppppcStack_9bc = *pppppcStack_a30;\n  piStack_a70 = piVar20;\n  ppppppcStack_a40 = ppppppcVar14;\n  ppppppcStack_9b8 = &pppppcStack_978;\n  piStack_9b4 = piVar20;\n  puStack_9b0 = puVar4;\n  piStack_9ac = piVar27;\n  pppppppcStack_9a8 = pppppppcVar2;\n  piStack_9a4 = param_2;\n  pppppppcStack_9a0 = pppppppcVar29;\n  piStack_99c = piVar31;\n  pppppppcStack_998 = unaff_s8;\n  pcStack_994 = pcVar32;\n  ppppppcStack_988 = ppppppcVar33;\n  puStack_984 = puVar17;\n  if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }\n  pppppcVar35 = ppppppcVar14[-0x1edb];\n  pcVar32 = FUN_0003bed8;\n  (*(code *)pppppcVar35)();\n  pppppcStack_ac8 = pppppcVar35 + 0x7c46;\n  ppppcVar25 = pppppcVar35[0x5d79];\n  pppcStack_a7c = *ppppcVar25;\n  ppppppcVar14 = ppppppcVar33;\n  puVar6 = puVar17;\n  pppppppcStack_a6c = pppppppcVar24;\n  piStack_a68 = piVar27;\n  pppppppcStack_a64 = pppppppcVar2;\n  piStack_a60 = param_2;\n  pppppppcStack_a5c = pppppppcVar29;\n  piStack_a58 = piVar31;\n  pcStack_a54 = pcVar32;\n  ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);\n  iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);\n  puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);\n  piVar31 = piVar5;\n  if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }\n  if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }\n  ppppcVar36 = pppppcStack_ac8[-0x1edb];\n  pcVar32 = FUN_0003c02c;\n  (*(code *)ppppcVar36)();\n  ppppcStack_b08 = ppppcVar36 + 0x7bf1;\n  pppcVar21 = ppppcVar36[0x5d24];\n  ppcStack_af4 = *pppcVar21;\n  pppcVar37 = ppppcVar36[0x5ced];\n  puStack_af0 = puVar18;\n  ppppppcStack_aec = ppppppcVar34;\n  ppppcStack_ae8 = ppppcVar25;\n  puStack_ae4 = puVar17;\n  iStack_ae0 = iVar1;\n  pcStack_adc = pcVar32;\n  if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }\n  (*(code *)pppcVar37)(&iStack_b00,ppppcVar10);\n  (*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);\n  piVar11 = (int *)&DAT_70485973;\n  uStack_af8 = SUB41(puVar6,0);\n  piVar27 = piVar31;\n  piVar15 = &iStack_b00;\n  FUN_00039d28();\n  if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }\n  pppcVar37 = ppppcStack_b08[-0x1edb];\n  pcVar32 = FUN_0003c120;\n  (*(code *)pppcVar37)();\n  pppcStack_b48 = pppcVar37 + 0x7bb4;\n  ppcVar22 = pppcVar37[0x5ce7];\n  pcStack_b34 = *ppcVar22;\n  piVar19 = &iStack_b00;\n  piVar7 = piVar27;\n  piStack_b2c = &iStack_b00;\n  pppcStack_b28 = pppcVar21;\n  puStack_b24 = puVar6;\n  piStack_b20 = piVar31;\n  pcStack_b1c = pcVar32;\n  if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }\n  if (pcStack_b34 == *ppcVar22) {\n    return;\n  }\n  ppcVar38 = pppcStack_b48[-0x1edb];\n  pcVar42 = FUN_0003c240;\n  (*(code *)ppcVar38)();\n  ppcStack_b88 = ppcVar38 + 0x7b6c;\n  pcVar32 = ppcVar38[0x5c9f];\n  piVar7[0xc9] = (int)ppcVar12;\n  iStack_b74 = *(int *)pcVar32;\n  piStack_b6c = piVar11;\n  ppcStack_b68 = ppcVar22;\n  piStack_b64 = piVar27;\n  piStack_b60 = piVar31;\n  pcStack_b5c = pcVar42;\n  (*ppcVar38[0x5c68])(auStack_b7c);\n  (*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);\n  iVar8 = 8;\n  iVar1 = 0x6163544c;\n  piVar31 = piVar7;\n  puVar17 = auStack_b7c;\n  FUN_00039d28();\n  if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }\n  pcVar39 = ppcStack_b88[0xffffe125];\n  uVar43 = 0x3c310;\n  (*pcVar39)();\n  pcVar42 = pcVar39 + 0x1ece0;\n  puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);\n  piVar27 = (int *)*puVar30;\n  uVar28 = (uint)uStack_b7e;\n  pcStack_bf0 = pcVar42;\n  piStack_bc4 = piVar27;\n  puStack_bc0 = auStack_b7c;\n  piStack_bbc = piVar7;\n  pcStack_bb8 = pcVar32;\n  piStack_bb4 = piVar15;\n  ppppppcStack_bb0 = ppppppcVar14;\n  piStack_bac = piVar5;\n  ppppppcStack_ba8 = ppppppcVar33;\n  pppppppcStack_ba4 = pppppppcVar9;\n  piStack_ba0 = piVar20;\n  uStack_b9c = uVar43;\n  if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }\n  pcVar32 = *(code **)(pcVar42 + -0x7b6c);\n  pcVar42 = FUN_0003c510;\n  (*pcVar32)();\n  piVar5 = *(int **)(pcVar32 + 0x16fac);\n  iStack_c34 = *piVar5;\n  piStack_c30 = piVar31;\n  piStack_c2c = piVar7;\n  puStack_c28 = puVar17;\n  iStack_c24 = iVar1;\n  uStack_c20 = uVar28;\n  pcStack_c1c = pcVar42;\n  if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }\n  (**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20);\n  (**(code **)(pcVar32 + 0x16ef8))(piVar20);\n  iVar1 = *piVar5;\n  piVar20[0xc3] = piVar20[0xc3] + 1;\n  if (iStack_c34 == iVar1) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x16f74);\n  iVar1 = iStack_c34;\n  (*pcVar32)();\n  if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;\n  if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;\n  FUN_00039dec();\n  while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }\n  (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));\nLAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);\n  pcVar32 = *(code **)(pcVar32 + 0x16dfc);\n  (*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));\n  uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);\n  if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }\n  iVar13 = uVar23 + 1;\n  pcVar42 = *(code **)(pcVar32 + 0x169a0);\n  *(char *)(iVar1 + 0x206) = (char)uVar28;\n  *(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);\n  puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);\n  *(undefined1 **)(iVar1 + 0x1d4) = puVar17;\n  *puVar17 = 0;\n  if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }\n  if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }\n  cVar26 = (char)uVar28;\n  *(char *)(iVar1 + 0x1fe) = cVar26;\n  if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }\n  uVar43 = (*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  *(undefined4 *)(iVar1 + 0x1d0) = uVar43;\nLAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }\n  *(int *)(iVar1 + 0x1b8) = iVar8;\n  *(int *)(iVar1 + 0x1bc) = iVar3;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "code *******pppppppcVar2;" type_identifier (pointer_declarator "*******pppppppcVar2" * (pointer_declarator "******pppppppcVar2" * (pointer_declarator "*****pppppppcVar2" * (pointer_declarator "****pppppppcVar2" * (pointer_declarator "***pppppppcVar2" * (pointer_declarator "**pppppppcVar2" * (pointer_declarator "*pppppppcVar2" * identifier))))))) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "code *******pppppppcVar9;" type_identifier (pointer_declarator "*******pppppppcVar9" * (pointer_declarator "******pppppppcVar9" * (pointer_declarator "*****pppppppcVar9" * (pointer_declarator "****pppppppcVar9" * (pointer_declarator "***pppppppcVar9" * (pointer_declarator "**pppppppcVar9" * (pointer_declarator "*pppppppcVar9" * identifier))))))) ;) (declaration "code ****ppppcVar10;" type_identifier (pointer_declarator "****ppppcVar10" * (pointer_declarator "***ppppcVar10" * (pointer_declarator "**ppppcVar10" * (pointer_declarator "*ppppcVar10" * identifier)))) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "code **ppcVar12;" type_identifier (pointer_declarator "**ppcVar12" * (pointer_declarator "*ppcVar12" * identifier)) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "code ******ppppppcVar14;" type_identifier (pointer_declarator "******ppppppcVar14" * (pointer_declarator "*****ppppppcVar14" * (pointer_declarator "****ppppppcVar14" * (pointer_declarator "***ppppppcVar14" * (pointer_declarator "**ppppppcVar14" * (pointer_declarator "*ppppppcVar14" * identifier)))))) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "code ***pppcVar21;" type_identifier (pointer_declarator "***pppcVar21" * (pointer_declarator "**pppcVar21" * (pointer_declarator "*pppcVar21" * identifier))) ;) (declaration "code **ppcVar22;" type_identifier (pointer_declarator "**ppcVar22" * (pointer_declarator "*ppcVar22" * identifier)) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int unaff_s2;" primitive_type identifier ;) (declaration "code *******pppppppcVar24;" type_identifier (pointer_declarator "*******pppppppcVar24" * (pointer_declarator "******pppppppcVar24" * (pointer_declarator "*****pppppppcVar24" * (pointer_declarator "****pppppppcVar24" * (pointer_declarator "***pppppppcVar24" * (pointer_declarator "**pppppppcVar24" * (pointer_declarator "*pppppppcVar24" * identifier))))))) ;) (declaration "code ****ppppcVar25;" type_identifier (pointer_declarator "****ppppcVar25" * (pointer_declarator "***ppppcVar25" * (pointer_declarator "**ppppcVar25" * (pointer_declarator "*ppppcVar25" * identifier)))) ;) (declaration "char cVar26;" primitive_type identifier ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "undefined1 *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined4 unaff_s6;" type_identifier identifier ;) (declaration "code *******pppppppcVar29;" type_identifier (pointer_declarator "*******pppppppcVar29" * (pointer_declarator "******pppppppcVar29" * (pointer_declarator "*****pppppppcVar29" * (pointer_declarator "****pppppppcVar29" * (pointer_declarator "***pppppppcVar29" * (pointer_declarator "**pppppppcVar29" * (pointer_declarator "*pppppppcVar29" * identifier))))))) ;) (declaration "undefined4 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "code ******ppppppcVar33;" type_identifier (pointer_declarator "******ppppppcVar33" * (pointer_declarator "*****ppppppcVar33" * (pointer_declarator "****ppppppcVar33" * (pointer_declarator "***ppppppcVar33" * (pointer_declarator "**ppppppcVar33" * (pointer_declarator "*ppppppcVar33" * identifier)))))) ;) (declaration "code ******ppppppcVar34;" type_identifier (pointer_declarator "******ppppppcVar34" * (pointer_declarator "*****ppppppcVar34" * (pointer_declarator "****ppppppcVar34" * (pointer_declarator "***ppppppcVar34" * (pointer_declarator "**ppppppcVar34" * (pointer_declarator "*ppppppcVar34" * identifier)))))) ;) (declaration "code *****pppppcVar35;" type_identifier (pointer_declarator "*****pppppcVar35" * (pointer_declarator "****pppppcVar35" * (pointer_declarator "***pppppcVar35" * (pointer_declarator "**pppppcVar35" * (pointer_declarator "*pppppcVar35" * identifier))))) ;) (declaration "code ****ppppcVar36;" type_identifier (pointer_declarator "****ppppcVar36" * (pointer_declarator "***ppppcVar36" * (pointer_declarator "**ppppcVar36" * (pointer_declarator "*ppppcVar36" * identifier)))) ;) (declaration "code ***pppcVar37;" type_identifier (pointer_declarator "***pppcVar37" * (pointer_declarator "**pppcVar37" * (pointer_declarator "*pppcVar37" * identifier))) ;) (declaration "code **ppcVar38;" type_identifier (pointer_declarator "**ppcVar38" * (pointer_declarator "*ppcVar38" * identifier)) ;) (declaration "code *pcVar39;" type_identifier (pointer_declarator "*pcVar39" * identifier) ;) (declaration "undefined *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "code *******unaff_s8;" type_identifier (pointer_declarator "*******unaff_s8" * (pointer_declarator "******unaff_s8" * (pointer_declarator "*****unaff_s8" * (pointer_declarator "****unaff_s8" * (pointer_declarator "***unaff_s8" * (pointer_declarator "**unaff_s8" * (pointer_declarator "*unaff_s8" * identifier))))))) ;) (declaration "int iVar41;" primitive_type identifier ;) (declaration "code *pcVar42;" type_identifier (pointer_declarator "*pcVar42" * identifier) ;) (declaration "undefined4 uVar43;" type_identifier identifier ;) (declaration "undefined1 auStack_c38 [4];" type_identifier (array_declarator "auStack_c38 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_c34;" primitive_type identifier ;) (declaration "int *piStack_c30;" primitive_type (pointer_declarator "*piStack_c30" * identifier) ;) (declaration "int *piStack_c2c;" primitive_type (pointer_declarator "*piStack_c2c" * identifier) ;) (declaration "undefined1 *puStack_c28;" type_identifier (pointer_declarator "*puStack_c28" * identifier) ;) (declaration "int iStack_c24;" primitive_type identifier ;) (declaration "uint uStack_c20;" type_identifier identifier ;) (declaration "code *pcStack_c1c;" type_identifier (pointer_declarator "*pcStack_c1c" * identifier) ;) (declaration "code **ppcStack_c08;" type_identifier (pointer_declarator "**ppcStack_c08" * (pointer_declarator "*ppcStack_c08" * identifier)) ;) (declaration "uint uStack_c04;" type_identifier identifier ;) (declaration "uint uStack_c00;" type_identifier identifier ;) (declaration "uint uStack_bfc;" type_identifier identifier ;) (declaration "uint uStack_bf8;" type_identifier identifier ;) (declaration "code *pcStack_bf0;" type_identifier (pointer_declarator "*pcStack_bf0" * identifier) ;) (declaration "uint uStack_be4;" type_identifier identifier ;) (declaration "int iStack_be0;" primitive_type identifier ;) (declaration "undefined1 auStack_bdc [4];" type_identifier (array_declarator "auStack_bdc [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_bd8 [4];" type_identifier (array_declarator "auStack_bd8 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_bd4 [4];" type_identifier (array_declarator "auStack_bd4 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_bd0 [4];" type_identifier (array_declarator "auStack_bd0 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_bcc [2];" type_identifier (array_declarator "auStack_bcc [2]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_bca [2];" type_identifier (array_declarator "auStack_bca [2]" identifier [ number_literal ]) ;) (declaration "byte bStack_bc8;" type_identifier identifier ;) (declaration "byte bStack_bc7;" type_identifier identifier ;) (declaration "int *piStack_bc4;" primitive_type (pointer_declarator "*piStack_bc4" * identifier) ;) (declaration "undefined1 *puStack_bc0;" type_identifier (pointer_declarator "*puStack_bc0" * identifier) ;) (declaration "int *piStack_bbc;" primitive_type (pointer_declarator "*piStack_bbc" * identifier) ;) (declaration "code *pcStack_bb8;" type_identifier (pointer_declarator "*pcStack_bb8" * identifier) ;) (declaration "int *piStack_bb4;" primitive_type (pointer_declarator "*piStack_bb4" * identifier) ;) (declaration "code ******ppppppcStack_bb0;" type_identifier (pointer_declarator "******ppppppcStack_bb0" * (pointer_declarator "*****ppppppcStack_bb0" * (pointer_declarator "****ppppppcStack_bb0" * (pointer_declarator "***ppppppcStack_bb0" * (pointer_declarator "**ppppppcStack_bb0" * (pointer_declarator "*ppppppcStack_bb0" * identifier)))))) ;) (declaration "int *piStack_bac;" primitive_type (pointer_declarator "*piStack_bac" * identifier) ;) (declaration "code ******ppppppcStack_ba8;" type_identifier (pointer_declarator "******ppppppcStack_ba8" * (pointer_declarator "*****ppppppcStack_ba8" * (pointer_declarator "****ppppppcStack_ba8" * (pointer_declarator "***ppppppcStack_ba8" * (pointer_declarator "**ppppppcStack_ba8" * (pointer_declarator "*ppppppcStack_ba8" * identifier)))))) ;) (declaration "code *******pppppppcStack_ba4;" type_identifier (pointer_declarator "*******pppppppcStack_ba4" * (pointer_declarator "******pppppppcStack_ba4" * (pointer_declarator "*****pppppppcStack_ba4" * (pointer_declarator "****pppppppcStack_ba4" * (pointer_declarator "***pppppppcStack_ba4" * (pointer_declarator "**pppppppcStack_ba4" * (pointer_declarator "*pppppppcStack_ba4" * identifier))))))) ;) (declaration "int *piStack_ba0;" primitive_type (pointer_declarator "*piStack_ba0" * identifier) ;) (declaration "undefined4 uStack_b9c;" type_identifier identifier ;) (declaration "code **ppcStack_b88;" type_identifier (pointer_declarator "**ppcStack_b88" * (pointer_declarator "*ppcStack_b88" * identifier)) ;) (declaration "ushort uStack_b82;" type_identifier identifier ;) (declaration "ushort uStack_b7e;" type_identifier identifier ;) (declaration "undefined1 auStack_b7c [3];" type_identifier (array_declarator "auStack_b7c [3]" identifier [ number_literal ]) ;) (declaration "byte bStack_b79;" type_identifier identifier ;) (declaration "undefined1 auStack_b78 [3];" type_identifier (array_declarator "auStack_b78 [3]" identifier [ number_literal ]) ;) (declaration "byte bStack_b75;" type_identifier identifier ;) (declaration "int iStack_b74;" primitive_type identifier ;) (declaration "int *piStack_b6c;" primitive_type (pointer_declarator "*piStack_b6c" * identifier) ;) (declaration "code **ppcStack_b68;" type_identifier (pointer_declarator "**ppcStack_b68" * (pointer_declarator "*ppcStack_b68" * identifier)) ;) (declaration "int *piStack_b64;" primitive_type (pointer_declarator "*piStack_b64" * identifier) ;) (declaration "int *piStack_b60;" primitive_type (pointer_declarator "*piStack_b60" * identifier) ;) (declaration "code *pcStack_b5c;" type_identifier (pointer_declarator "*pcStack_b5c" * identifier) ;) (declaration "code ***pppcStack_b48;" type_identifier (pointer_declarator "***pppcStack_b48" * (pointer_declarator "**pppcStack_b48" * (pointer_declarator "*pppcStack_b48" * identifier))) ;) (declaration "undefined4 uStack_b3c;" type_identifier identifier ;) (declaration "undefined2 uStack_b38;" type_identifier identifier ;) (declaration "undefined1 uStack_b36;" type_identifier identifier ;) (declaration "code *pcStack_b34;" type_identifier (pointer_declarator "*pcStack_b34" * identifier) ;) (declaration "int *piStack_b2c;" primitive_type (pointer_declarator "*piStack_b2c" * identifier) ;) (declaration "code ***pppcStack_b28;" type_identifier (pointer_declarator "***pppcStack_b28" * (pointer_declarator "**pppcStack_b28" * (pointer_declarator "*pppcStack_b28" * identifier))) ;) (declaration "undefined1 *puStack_b24;" type_identifier (pointer_declarator "*puStack_b24" * identifier) ;) (declaration "int *piStack_b20;" primitive_type (pointer_declarator "*piStack_b20" * identifier) ;) (declaration "code *pcStack_b1c;" type_identifier (pointer_declarator "*pcStack_b1c" * identifier) ;) (declaration "code ****ppppcStack_b08;" type_identifier (pointer_declarator "****ppppcStack_b08" * (pointer_declarator "***ppppcStack_b08" * (pointer_declarator "**ppppcStack_b08" * (pointer_declarator "*ppppcStack_b08" * identifier)))) ;) (declaration "int iStack_b00;" primitive_type identifier ;) (declaration "undefined1 auStack_afc [4];" type_identifier (array_declarator "auStack_afc [4]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_af8;" type_identifier identifier ;) (declaration "code **ppcStack_af4;" type_identifier (pointer_declarator "**ppcStack_af4" * (pointer_declarator "*ppcStack_af4" * identifier)) ;) (declaration "undefined1 *puStack_af0;" type_identifier (pointer_declarator "*puStack_af0" * identifier) ;) (declaration "code ******ppppppcStack_aec;" type_identifier (pointer_declarator "******ppppppcStack_aec" * (pointer_declarator "*****ppppppcStack_aec" * (pointer_declarator "****ppppppcStack_aec" * (pointer_declarator "***ppppppcStack_aec" * (pointer_declarator "**ppppppcStack_aec" * (pointer_declarator "*ppppppcStack_aec" * identifier)))))) ;) (declaration "code ****ppppcStack_ae8;" type_identifier (pointer_declarator "****ppppcStack_ae8" * (pointer_declarator "***ppppcStack_ae8" * (pointer_declarator "**ppppcStack_ae8" * (pointer_declarator "*ppppcStack_ae8" * identifier)))) ;) (declaration "undefined1 *puStack_ae4;" type_identifier (pointer_declarator "*puStack_ae4" * identifier) ;) (declaration "int iStack_ae0;" primitive_type identifier ;) (declaration "code *pcStack_adc;" type_identifier (pointer_declarator "*pcStack_adc" * identifier) ;) (declaration "code *****pppppcStack_ac8;" type_identifier (pointer_declarator "*****pppppcStack_ac8" * (pointer_declarator "****pppppcStack_ac8" * (pointer_declarator "***pppppcStack_ac8" * (pointer_declarator "**pppppcStack_ac8" * (pointer_declarator "*pppppcStack_ac8" * identifier))))) ;) (declaration "undefined1 uStack_abc;" type_identifier identifier ;) (declaration "undefined1 uStack_abb;" type_identifier identifier ;) (declaration "undefined1 auStack_aba [62];" type_identifier (array_declarator "auStack_aba [62]" identifier [ number_literal ]) ;) (declaration "code ***pppcStack_a7c;" type_identifier (pointer_declarator "***pppcStack_a7c" * (pointer_declarator "**pppcStack_a7c" * (pointer_declarator "*pppcStack_a7c" * identifier))) ;) (declaration "int *piStack_a74;" primitive_type (pointer_declarator "*piStack_a74" * identifier) ;) (declaration "int *piStack_a70;" primitive_type (pointer_declarator "*piStack_a70" * identifier) ;) (declaration "code *******pppppppcStack_a6c;" type_identifier (pointer_declarator "*******pppppppcStack_a6c" * (pointer_declarator "******pppppppcStack_a6c" * (pointer_declarator "*****pppppppcStack_a6c" * (pointer_declarator "****pppppppcStack_a6c" * (pointer_declarator "***pppppppcStack_a6c" * (pointer_declarator "**pppppppcStack_a6c" * (pointer_declarator "*pppppppcStack_a6c" * identifier))))))) ;) (declaration "int *piStack_a68;" primitive_type (pointer_declarator "*piStack_a68" * identifier) ;) (declaration "code *******pppppppcStack_a64;" type_identifier (pointer_declarator "*******pppppppcStack_a64" * (pointer_declarator "******pppppppcStack_a64" * (pointer_declarator "*****pppppppcStack_a64" * (pointer_declarator "****pppppppcStack_a64" * (pointer_declarator "***pppppppcStack_a64" * (pointer_declarator "**pppppppcStack_a64" * (pointer_declarator "*pppppppcStack_a64" * identifier))))))) ;) (declaration "int *piStack_a60;" primitive_type (pointer_declarator "*piStack_a60" * identifier) ;) (declaration "code *******pppppppcStack_a5c;" type_identifier (pointer_declarator "*******pppppppcStack_a5c" * (pointer_declarator "******pppppppcStack_a5c" * (pointer_declarator "*****pppppppcStack_a5c" * (pointer_declarator "****pppppppcStack_a5c" * (pointer_declarator "***pppppppcStack_a5c" * (pointer_declarator "**pppppppcStack_a5c" * (pointer_declarator "*pppppppcStack_a5c" * identifier))))))) ;) (declaration "int *piStack_a58;" primitive_type (pointer_declarator "*piStack_a58" * identifier) ;) (declaration "code *pcStack_a54;" type_identifier (pointer_declarator "*pcStack_a54" * identifier) ;) (declaration "code ******ppppppcStack_a40;" type_identifier (pointer_declarator "******ppppppcStack_a40" * (pointer_declarator "*****ppppppcStack_a40" * (pointer_declarator "****ppppppcStack_a40" * (pointer_declarator "***ppppppcStack_a40" * (pointer_declarator "**ppppppcStack_a40" * (pointer_declarator "*ppppppcStack_a40" * identifier)))))) ;) (declaration "code *****pppppcStack_a34;" type_identifier (pointer_declarator "*****pppppcStack_a34" * (pointer_declarator "****pppppcStack_a34" * (pointer_declarator "***pppppcStack_a34" * (pointer_declarator "**pppppcStack_a34" * (pointer_declarator "*pppppcStack_a34" * identifier))))) ;) (declaration "code *****pppppcStack_a30;" type_identifier (pointer_declarator "*****pppppcStack_a30" * (pointer_declarator "****pppppcStack_a30" * (pointer_declarator "***pppppcStack_a30" * (pointer_declarator "**pppppcStack_a30" * (pointer_declarator "*pppppcStack_a30" * identifier))))) ;) (declaration "int iStack_a2c;" primitive_type identifier ;) (declaration "code ******ppppppcStack_a28;" type_identifier (pointer_declarator "******ppppppcStack_a28" * (pointer_declarator "*****ppppppcStack_a28" * (pointer_declarator "****ppppppcStack_a28" * (pointer_declarator "***ppppppcStack_a28" * (pointer_declarator "**ppppppcStack_a28" * (pointer_declarator "*ppppppcStack_a28" * identifier)))))) ;) (declaration "uint uStack_a24;" type_identifier identifier ;) (declaration "uint uStack_a20;" type_identifier identifier ;) (declaration "code ******ppppppcStack_a1c;" type_identifier (pointer_declarator "******ppppppcStack_a1c" * (pointer_declarator "*****ppppppcStack_a1c" * (pointer_declarator "****ppppppcStack_a1c" * (pointer_declarator "***ppppppcStack_a1c" * (pointer_declarator "**ppppppcStack_a1c" * (pointer_declarator "*ppppppcStack_a1c" * identifier)))))) ;) (declaration "int iStack_a18;" primitive_type identifier ;) (declaration "undefined1 auStack_a14 [4];" type_identifier (array_declarator "auStack_a14 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_a10;" type_identifier identifier ;) (declaration "undefined1 uStack_a0f;" type_identifier identifier ;) (declaration "code *****apppppcStack_a0c [20];" type_identifier (pointer_declarator "*****apppppcStack_a0c [20]" * (pointer_declarator "****apppppcStack_a0c [20]" * (pointer_declarator "***apppppcStack_a0c [20]" * (pointer_declarator "**apppppcStack_a0c [20]" * (pointer_declarator "*apppppcStack_a0c [20]" * (array_declarator "apppppcStack_a0c [20]" identifier [ number_literal ])))))) ;) (declaration "code ****ppppcStack_9bc;" type_identifier (pointer_declarator "****ppppcStack_9bc" * (pointer_declarator "***ppppcStack_9bc" * (pointer_declarator "**ppppcStack_9bc" * (pointer_declarator "*ppppcStack_9bc" * identifier)))) ;) (declaration "code ******ppppppcStack_9b8;" type_identifier (pointer_declarator "******ppppppcStack_9b8" * (pointer_declarator "*****ppppppcStack_9b8" * (pointer_declarator "****ppppppcStack_9b8" * (pointer_declarator "***ppppppcStack_9b8" * (pointer_declarator "**ppppppcStack_9b8" * (pointer_declarator "*ppppppcStack_9b8" * identifier)))))) ;) (declaration "int *piStack_9b4;" primitive_type (pointer_declarator "*piStack_9b4" * identifier) ;) (declaration "undefined *puStack_9b0;" type_identifier (pointer_declarator "*puStack_9b0" * identifier) ;) (declaration "int *piStack_9ac;" primitive_type (pointer_declarator "*piStack_9ac" * identifier) ;) (declaration "code *******pppppppcStack_9a8;" type_identifier (pointer_declarator "*******pppppppcStack_9a8" * (pointer_declarator "******pppppppcStack_9a8" * (pointer_declarator "*****pppppppcStack_9a8" * (pointer_declarator "****pppppppcStack_9a8" * (pointer_declarator "***pppppppcStack_9a8" * (pointer_declarator "**pppppppcStack_9a8" * (pointer_declarator "*pppppppcStack_9a8" * identifier))))))) ;) (declaration "int *piStack_9a4;" primitive_type (pointer_declarator "*piStack_9a4" * identifier) ;) (declaration "code *******pppppppcStack_9a0;" type_identifier (pointer_declarator "*******pppppppcStack_9a0" * (pointer_declarator "******pppppppcStack_9a0" * (pointer_declarator "*****pppppppcStack_9a0" * (pointer_declarator "****pppppppcStack_9a0" * (pointer_declarator "***pppppppcStack_9a0" * (pointer_declarator "**pppppppcStack_9a0" * (pointer_declarator "*pppppppcStack_9a0" * identifier))))))) ;) (declaration "int *piStack_99c;" primitive_type (pointer_declarator "*piStack_99c" * identifier) ;) (declaration "code *******pppppppcStack_998;" type_identifier (pointer_declarator "*******pppppppcStack_998" * (pointer_declarator "******pppppppcStack_998" * (pointer_declarator "*****pppppppcStack_998" * (pointer_declarator "****pppppppcStack_998" * (pointer_declarator "***pppppppcStack_998" * (pointer_declarator "**pppppppcStack_998" * (pointer_declarator "*pppppppcStack_998" * identifier))))))) ;) (declaration "code *pcStack_994;" type_identifier (pointer_declarator "*pcStack_994" * identifier) ;) (declaration "code ******ppppppcStack_988;" type_identifier (pointer_declarator "******ppppppcStack_988" * (pointer_declarator "*****ppppppcStack_988" * (pointer_declarator "****ppppppcStack_988" * (pointer_declarator "***ppppppcStack_988" * (pointer_declarator "**ppppppcStack_988" * (pointer_declarator "*ppppppcStack_988" * identifier)))))) ;) (declaration "undefined1 *puStack_984;" type_identifier (pointer_declarator "*puStack_984" * identifier) ;) (declaration "code *******pppppppcStack_980;" type_identifier (pointer_declarator "*******pppppppcStack_980" * (pointer_declarator "******pppppppcStack_980" * (pointer_declarator "*****pppppppcStack_980" * (pointer_declarator "****pppppppcStack_980" * (pointer_declarator "***pppppppcStack_980" * (pointer_declarator "**pppppppcStack_980" * (pointer_declarator "*pppppppcStack_980" * identifier))))))) ;) (declaration "int *piStack_97c;" primitive_type (pointer_declarator "*piStack_97c" * identifier) ;) (declaration "code *****pppppcStack_978;" type_identifier (pointer_declarator "*****pppppcStack_978" * (pointer_declarator "****pppppcStack_978" * (pointer_declarator "***pppppcStack_978" * (pointer_declarator "**pppppcStack_978" * (pointer_declarator "*pppppcStack_978" * identifier))))) ;) (declaration "int *piStack_974;" primitive_type (pointer_declarator "*piStack_974" * identifier) ;) (declaration "undefined1 uStack_970;" type_identifier identifier ;) (declaration "int iStack_96c;" primitive_type identifier ;) (declaration "undefined *puStack_968;" type_identifier (pointer_declarator "*puStack_968" * identifier) ;) (declaration "int *piStack_964;" primitive_type (pointer_declarator "*piStack_964" * identifier) ;) (declaration "code *******pppppppcStack_960;" type_identifier (pointer_declarator "*******pppppppcStack_960" * (pointer_declarator "******pppppppcStack_960" * (pointer_declarator "*****pppppppcStack_960" * (pointer_declarator "****pppppppcStack_960" * (pointer_declarator "***pppppppcStack_960" * (pointer_declarator "**pppppppcStack_960" * (pointer_declarator "*pppppppcStack_960" * identifier))))))) ;) (declaration "undefined1 *puStack_95c;" type_identifier (pointer_declarator "*puStack_95c" * identifier) ;) (declaration "undefined *puStack_958;" type_identifier (pointer_declarator "*puStack_958" * identifier) ;) (declaration "code *pcStack_954;" type_identifier (pointer_declarator "*pcStack_954" * identifier) ;) (declaration "undefined *puStack_940;" type_identifier (pointer_declarator "*puStack_940" * identifier) ;) (declaration "undefined *puStack_934;" type_identifier (pointer_declarator "*puStack_934" * identifier) ;) (declaration "code *******pppppppcStack_92c;" type_identifier (pointer_declarator "*******pppppppcStack_92c" * (pointer_declarator "******pppppppcStack_92c" * (pointer_declarator "*****pppppppcStack_92c" * (pointer_declarator "****pppppppcStack_92c" * (pointer_declarator "***pppppppcStack_92c" * (pointer_declarator "**pppppppcStack_92c" * (pointer_declarator "*pppppppcStack_92c" * identifier))))))) ;) (declaration "code *******pppppppcStack_928;" type_identifier (pointer_declarator "*******pppppppcStack_928" * (pointer_declarator "******pppppppcStack_928" * (pointer_declarator "*****pppppppcStack_928" * (pointer_declarator "****pppppppcStack_928" * (pointer_declarator "***pppppppcStack_928" * (pointer_declarator "**pppppppcStack_928" * (pointer_declarator "*pppppppcStack_928" * identifier))))))) ;) (declaration "code *******pppppppcStack_924;" type_identifier (pointer_declarator "*******pppppppcStack_924" * (pointer_declarator "******pppppppcStack_924" * (pointer_declarator "*****pppppppcStack_924" * (pointer_declarator "****pppppppcStack_924" * (pointer_declarator "***pppppppcStack_924" * (pointer_declarator "**pppppppcStack_924" * (pointer_declarator "*pppppppcStack_924" * identifier))))))) ;) (declaration "undefined4 uStack_520;" type_identifier identifier ;) (declaration "int iStack_4cc;" primitive_type identifier ;) (declaration "undefined *puStack_4c8;" type_identifier (pointer_declarator "*puStack_4c8" * identifier) ;) (declaration "int *piStack_4c4;" primitive_type (pointer_declarator "*piStack_4c4" * identifier) ;) (declaration "int iStack_4c0;" primitive_type identifier ;) (declaration "undefined *puStack_4bc;" type_identifier (pointer_declarator "*puStack_4bc" * identifier) ;) (declaration "undefined1 *puStack_4b8;" type_identifier (pointer_declarator "*puStack_4b8" * identifier) ;) (declaration "int *piStack_4b4;" primitive_type (pointer_declarator "*piStack_4b4" * identifier) ;) (declaration "undefined4 uStack_4b0;" type_identifier identifier ;) (declaration "code *******pppppppcStack_48c;" type_identifier (pointer_declarator "*******pppppppcStack_48c" * (pointer_declarator "******pppppppcStack_48c" * (pointer_declarator "*****pppppppcStack_48c" * (pointer_declarator "****pppppppcStack_48c" * (pointer_declarator "***pppppppcStack_48c" * (pointer_declarator "**pppppppcStack_48c" * (pointer_declarator "*pppppppcStack_48c" * identifier))))))) ;) (declaration "int local_484;" primitive_type identifier ;) (declaration "undefined4 local_480;" type_identifier identifier ;) (declaration "int local_47c;" primitive_type identifier ;) (declaration "undefined1 uStack_78;" type_identifier identifier ;) (declaration "undefined1 auStack_77 [83];" type_identifier (array_declarator "auStack_77 [83]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar40 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar40 = PTR___stack_chk_guard_000534bc" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "local_24 = *(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))) ;) (if_statement "if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }" if (parenthesized_expression "(param_4 == (undefined *)0xffffffff)" ( (binary_expression "param_4 == (undefined *)0xffffffff" identifier == (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }" { (expression_statement "param_4 = (undefined *)0x0;" (assignment_expression "param_4 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0003b1e0();" (call_expression "FUN_0003b1e0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }" statement_identifier : (if_statement "if (local_24 == *(int *)puVar40) {\n      return;\n    }" if (parenthesized_expression "(local_24 == *(int *)puVar40)" ( (binary_expression "local_24 == *(int *)puVar40" identifier == (pointer_expression "*(int *)puVar40" * (cast_expression "(int *)puVar40" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) }) (else_clause "else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }" else (compound_statement "{\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }" { (if_statement "if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }" if (parenthesized_expression "(param_4 == (undefined *)0x0)" ( (binary_expression "param_4 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }" { (expression_statement "unaff_s4 = &uStack_78;" (assignment_expression "unaff_s4 = &uStack_78" identifier = (pointer_expression "&uStack_78" & identifier)) ;) (expression_statement "iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);" (assignment_expression "iVar1 = FUN_0003449c(param_1,param_2,unaff_s4)" identifier = (call_expression "FUN_0003449c(param_1,param_2,unaff_s4)" identifier (argument_list "(param_1,param_2,unaff_s4)" ( identifier , identifier , identifier )))) ;) (expression_statement "unaff_s1 = param_1;" (assignment_expression "unaff_s1 = param_1" identifier = identifier) ;) (expression_statement "unaff_s2 = param_3;" (assignment_expression "unaff_s2 = param_3" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }" { (expression_statement "unaff_s0 = (undefined *)(iVar1 + 2);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 2)" identifier = (cast_expression "(undefined *)(iVar1 + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 2)" ( (binary_expression "iVar1 + 2" identifier + number_literal) )))) ;) (expression_statement "auStack_77[iVar1] = 0;" (assignment_expression "auStack_77[iVar1] = 0" (subscript_expression "auStack_77[iVar1]" identifier [ identifier ]) = number_literal) ;) (if_statement "if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n          local_480 = 0;\n        }" { (expression_statement "local_480 = 0;" (assignment_expression "local_480 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }" else (compound_statement "{\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }" { (expression_statement "local_480 = (*(code *)PTR_strlen_000533d4)(param_3);" (assignment_expression "local_480 = (*(code *)PTR_strlen_000533d4)(param_3)" identifier = (call_expression "(*(code *)PTR_strlen_000533d4)(param_3)" (parenthesized_expression "(*(code *)PTR_strlen_000533d4)" ( (pointer_expression "*(code *)PTR_strlen_000533d4" * (cast_expression "(code *)PTR_strlen_000533d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) ;) }))) (expression_statement "unaff_s6 = 0x7a540000;" (assignment_expression "unaff_s6 = 0x7a540000" identifier = number_literal) ;) (expression_statement "unaff_s5 = &local_484;" (assignment_expression "unaff_s5 = &local_484" identifier = (pointer_expression "&local_484" & identifier)) ;) (expression_statement "local_47c = 0;" (assignment_expression "local_47c = 0" identifier = number_literal) ;) (expression_statement "param_4 = unaff_s0;" (assignment_expression "param_4 = unaff_s0" identifier = identifier) ;) (expression_statement "local_484 = param_3;" (assignment_expression "local_484 = param_3" identifier = identifier) ;) (expression_statement "iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);" (assignment_expression "iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5)" identifier = (call_expression "FUN_00039670(param_1,0x7a545874,unaff_s5)" identifier (argument_list "(param_1,0x7a545874,unaff_s5)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }" { (if_statement "if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }" { (expression_statement "FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);" (call_expression "FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c)" identifier (argument_list "(param_1,0x7a545874,unaff_s0 + local_47c)" ( identifier , number_literal , (binary_expression "unaff_s0 + local_47c" identifier + identifier) ))) ;) })) (expression_statement "(*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);" (call_expression "(*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0)" (parenthesized_expression "(*(code *)PTR_png_write_chunk_data_000534fc)" ( (pointer_expression "*(code *)PTR_png_write_chunk_data_000534fc" * (cast_expression "(code *)PTR_png_write_chunk_data_000534fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,unaff_s4,unaff_s0)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_2 = unaff_s5;" (assignment_expression "param_2 = unaff_s5" identifier = identifier) ;) (expression_statement "FUN_00039bc4(param_1);" (call_expression "FUN_00039bc4(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_png_write_chunk_end_00053408)();" (call_expression "(*(code *)PTR_png_write_chunk_end_00053408)()" (parenthesized_expression "(*(code *)PTR_png_write_chunk_end_00053408)" ( (pointer_expression "*(code *)PTR_png_write_chunk_end_00053408" * (cast_expression "(code *)PTR_png_write_chunk_end_00053408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0003b4a4;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);" (call_expression "(*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53])" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" ( (pointer_expression "*(code *)PTR_png_error_0005340c" * (cast_expression "(code *)PTR_png_error_0005340c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1[0x53])" ( identifier , (subscript_expression "param_1[0x53]" identifier [ number_literal ]) ))) ;) })) (expression_statement "(*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);" (call_expression "(*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604)" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" ( (pointer_expression "*(code *)PTR_png_error_0005340c" * (cast_expression "(code *)PTR_png_error_0005340c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x2604)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x2604" identifier + number_literal) ))) ;) })) (expression_statement "param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);" (assignment_expression "param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4)" identifier = (cast_expression "(int *)(PTR_s_nt_0005301c + 0x25e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_nt_0005301c + 0x25e4)" ( (binary_expression "PTR_s_nt_0005301c + 0x25e4" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_png_error_0005340c)();" (call_expression "(*(code *)PTR_png_error_0005340c)()" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" ( (pointer_expression "*(code *)PTR_png_error_0005340c" * (cast_expression "(code *)PTR_png_error_0005340c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "puVar16 = PTR___stack_chk_fail_00053484;" (assignment_expression "puVar16 = PTR___stack_chk_fail_00053484" identifier = identifier) ;) (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 "puStack_940 = puVar16 + 0x1fac0;" (assignment_expression "puStack_940 = puVar16 + 0x1fac0" identifier = (binary_expression "puVar16 + 0x1fac0" identifier + number_literal)) ;) (expression_statement "piVar31 = *(int **)(puVar16 + 0x17f8c);" (assignment_expression "piVar31 = *(int **)(puVar16 + 0x17f8c)" identifier = (pointer_expression "*(int **)(puVar16 + 0x17f8c)" * (cast_expression "(int **)(puVar16 + 0x17f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x17f8c)" ( (binary_expression "puVar16 + 0x17f8c" identifier + number_literal) ))))) ;) (expression_statement "pppppppcVar29 = (code *******)&uStack_520;" (assignment_expression "pppppppcVar29 = (code *******)&uStack_520" identifier = (cast_expression "(code *******)&uStack_520" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&uStack_520" & identifier))) ;) (expression_statement "puStack_4bc = puVar40;" (assignment_expression "puStack_4bc = puVar40" identifier = identifier) ;) (expression_statement "iStack_4cc = *piVar31;" (assignment_expression "iStack_4cc = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (expression_statement "pppppppcVar2 = pppppppcVar29;" (assignment_expression "pppppppcVar2 = pppppppcVar29" identifier = identifier) ;) (expression_statement "puVar16 = param_4;" (assignment_expression "puVar16 = param_4" identifier = identifier) ;) (expression_statement "puStack_4c8 = unaff_s0;" (assignment_expression "puStack_4c8 = unaff_s0" identifier = identifier) ;) (expression_statement "piStack_4c4 = unaff_s1;" (assignment_expression "piStack_4c4 = unaff_s1" identifier = identifier) ;) (expression_statement "iStack_4c0 = unaff_s2;" (assignment_expression "iStack_4c0 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_4b8 = unaff_s4;" (assignment_expression "puStack_4b8 = unaff_s4" identifier = identifier) ;) (expression_statement "piStack_4b4 = unaff_s5;" (assignment_expression "piStack_4b4 = unaff_s5" identifier = identifier) ;) (expression_statement "uStack_4b0 = unaff_s6;" (assignment_expression "uStack_4b0 = unaff_s6" identifier = identifier) ;) (expression_statement "iVar1 = FUN_0003449c();" (assignment_expression "iVar1 = FUN_0003449c()" identifier = (call_expression "FUN_0003449c()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" identifier = identifier) ;) (if_statement "if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }" { (labeled_statement "LAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;" statement_identifier : (expression_statement "iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;" (assignment_expression "iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c" identifier = (binary_expression "*(int *)(puVar40 + -0x7fd4) + 0x261c" (pointer_expression "*(int *)(puVar40 + -0x7fd4)" * (cast_expression "(int *)(puVar40 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x7fd4)" ( (binary_expression "puVar40 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8);" (call_expression "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8)" (parenthesized_expression "(**(code **)(puVar40 + -0x7be4))" ( (pointer_expression "**(code **)(puVar40 + -0x7be4)" * (pointer_expression "*(code **)(puVar40 + -0x7be4)" * (cast_expression "(code **)(puVar40 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7be4)" ( (binary_expression "puVar40 + -0x7be4" identifier + number_literal) ))))) )) (argument_list "(param_1,iVar8)" ( identifier , identifier ))) ;) (labeled_statement "LAB_0003b968:\n    puVar4 = puVar16;" statement_identifier : (expression_statement "puVar4 = puVar16;" (assignment_expression "puVar4 = puVar16" identifier = identifier) ;)) (expression_statement "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);" (call_expression "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650)" (parenthesized_expression "(**(code **)(puVar40 + -0x7be4))" ( (pointer_expression "**(code **)(puVar40 + -0x7be4)" * (pointer_expression "*(code **)(puVar40 + -0x7be4)" * (cast_expression "(code **)(puVar40 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7be4)" ( (binary_expression "puVar40 + -0x7be4" identifier + number_literal) ))))) )) (argument_list "(param_1,iVar8 + 0x2650)" ( identifier , (binary_expression "iVar8 + 0x2650" identifier + number_literal) ))) ;) }) (else_clause "else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" else (compound_statement "{\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" { (if_statement "if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }" { (if_statement "if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }" if (parenthesized_expression "(0 < (int)param_2)" ( (binary_expression "0 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }" { (if_statement "if (param_2 == (int *)0x1) goto LAB_0003b768;" if (parenthesized_expression "(param_2 == (int *)0x1)" ( (binary_expression "param_2 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003b768;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(puStack_940 + -0x7fd4);" (assignment_expression "iVar8 = *(int *)(puStack_940 + -0x7fd4)" identifier = (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" * (cast_expression "(int *)(puStack_940 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_940 + -0x7fd4)" ( (binary_expression "puStack_940 + -0x7fd4" identifier + number_literal) ))))) ;) (if_statement "if (param_2 != (int *)0x2) goto LAB_0003b938;" if (parenthesized_expression "(param_2 != (int *)0x2)" ( (binary_expression "param_2 != (int *)0x2" identifier != (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003b938;" goto statement_identifier ;)) (goto_statement "goto LAB_0003b5d0;" goto statement_identifier ;) })) (expression_statement "iVar8 = *(int *)(puStack_940 + -0x7fd4);" (assignment_expression "iVar8 = *(int *)(puStack_940 + -0x7fd4)" identifier = (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" * (cast_expression "(int *)(puStack_940 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_940 + -0x7fd4)" ( (binary_expression "puStack_940 + -0x7fd4" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }" if (parenthesized_expression "(param_2 == (int *)0xffffffff)" ( (binary_expression "param_2 == (int *)0xffffffff" identifier == (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }" { (labeled_statement "LAB_0003b768:\n        puStack_934 = (undefined *)0x0;" statement_identifier : (expression_statement "puStack_934 = (undefined *)0x0;" (assignment_expression "puStack_934 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1)" * (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_520 + iVar1 + 1)" ( (binary_expression "(int)&uStack_520 + iVar1 + 1" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_520" & identifier)) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2)" * (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_520 + iVar1 + 2)" ( (binary_expression "(int)&uStack_520 + iVar1 + 2" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_520" & identifier)) + identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto joined_r0x0003b780;" goto statement_identifier ;) })) (labeled_statement "LAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);" statement_identifier : (expression_statement "(**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);" (call_expression "(**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7be4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7be4)" * (pointer_expression "*(code **)(puStack_940 + -0x7be4)" * (cast_expression "(code **)(puStack_940 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7be4)" ( (binary_expression "puStack_940 + -0x7be4" identifier + number_literal) ))))) )) (argument_list "(param_1,iVar8 + 0x2634)" ( identifier , (binary_expression "iVar8 + 0x2634" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();" statement_identifier : (expression_statement "(**(code **)(puVar40 + -0x7b6c))();" (call_expression "(**(code **)(puVar40 + -0x7b6c))()" (parenthesized_expression "(**(code **)(puVar40 + -0x7b6c))" ( (pointer_expression "**(code **)(puVar40 + -0x7b6c)" * (pointer_expression "*(code **)(puVar40 + -0x7b6c)" * (cast_expression "(code **)(puVar40 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7b6c)" ( (binary_expression "puVar40 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0003b954;" goto statement_identifier ;) })) (labeled_statement "LAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;" statement_identifier : (expression_statement "puStack_934 = (undefined *)0x1;" (assignment_expression "puStack_934 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1)" * (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_520 + iVar1 + 1)" ( (binary_expression "(int)&uStack_520 + iVar1 + 1" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_520" & identifier)) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2)" * (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_520 + iVar1 + 2)" ( (binary_expression "(int)&uStack_520 + iVar1 + 2" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_520" & identifier)) + identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "joined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" statement_identifier : (if_statement "if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" if (parenthesized_expression "(param_4 == (undefined *)0x0)" ( (binary_expression "param_4 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }" { (expression_statement "param_2 = (int *)0x1;" (assignment_expression "param_2 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);" (assignment_expression "param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" identifier = (cast_expression "(undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" ( (binary_expression "*(int *)(puStack_940 + -0x7fd4) + -0xc84" (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" * (cast_expression "(int *)(puStack_940 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_940 + -0x7fd4)" ( (binary_expression "puStack_940 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" else (compound_statement "{\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" { (expression_statement "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);" (assignment_expression "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4)" identifier = (call_expression "(**(code **)(puStack_940 + -0x7c1c))(param_4)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7c1c))" ( (pointer_expression "**(code **)(puStack_940 + -0x7c1c)" * (pointer_expression "*(code **)(puStack_940 + -0x7c1c)" * (cast_expression "(code **)(puStack_940 + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7c1c)" ( (binary_expression "puStack_940 + -0x7c1c" identifier + number_literal) ))))) )) (argument_list "(param_4)" ( identifier )))) ;) (expression_statement "param_2 = (int *)(iVar8 + 1);" (assignment_expression "param_2 = (int *)(iVar8 + 1)" identifier = (cast_expression "(int *)(iVar8 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) })))) (expression_statement "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);" (assignment_expression "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1)" identifier = (call_expression "(**(code **)(puStack_940 + -0x7c1c))(&_gp_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7c1c))" ( (pointer_expression "**(code **)(puStack_940 + -0x7c1c)" * (pointer_expression "*(code **)(puStack_940 + -0x7c1c)" * (cast_expression "(code **)(puStack_940 + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7c1c)" ( (binary_expression "puStack_940 + -0x7c1c" identifier + number_literal) ))))) )) (argument_list "(&_gp_1)" ( (pointer_expression "&_gp_1" & identifier) )))) ;) (expression_statement "unaff_s8 = (code *******)(iVar8 + 1);" (assignment_expression "unaff_s8 = (code *******)(iVar8 + 1)" identifier = (cast_expression "(code *******)(iVar8 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) (if_statement "if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }" if (parenthesized_expression "(pppppppcStack_48c != (code *******)0x0)" ( (binary_expression "pppppppcStack_48c != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }" { (expression_statement "pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);" (assignment_expression "pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c)" identifier = (cast_expression "(code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7c1c))" ( (pointer_expression "**(code **)(puStack_940 + -0x7c1c)" * (pointer_expression "*(code **)(puStack_940 + -0x7c1c)" * (cast_expression "(code **)(puStack_940 + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7c1c)" ( (binary_expression "puStack_940 + -0x7c1c" identifier + number_literal) ))))) )) (argument_list "(pppppppcStack_48c)" ( identifier ))))) ;) (if_statement "if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;" if (parenthesized_expression "(param_2 <= (int *)(0x7fffffff - (iVar1 + 3)))" ( (binary_expression "param_2 <= (int *)(0x7fffffff - (iVar1 + 3))" identifier <= (cast_expression "(int *)(0x7fffffff - (iVar1 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffff - (iVar1 + 3))" ( (binary_expression "0x7fffffff - (iVar1 + 3)" number_literal - (parenthesized_expression "(iVar1 + 3)" ( (binary_expression "iVar1 + 3" identifier + number_literal) ))) )))) )) (goto_statement "goto LAB_0003b648;" goto statement_identifier ;)) (labeled_statement "LAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;" statement_identifier : (expression_statement "puVar4 = (undefined *)0x7fffffff;" (assignment_expression "puVar4 = (undefined *)0x7fffffff" identifier = (cast_expression "(undefined *)0x7fffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pppppppcStack_92c = pppppppcStack_48c;" (assignment_expression "pppppppcStack_92c = pppppppcStack_48c" identifier = identifier) ;) (if_statement "if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;" if (parenthesized_expression "(puStack_934 != (undefined *)0x0)" ( (binary_expression "puStack_934 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003b7e0;" goto statement_identifier ;)) (labeled_statement "LAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;" statement_identifier : (expression_statement "pppppppcStack_924 = (code *******)0x0;" (assignment_expression "pppppppcStack_924 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "unaff_s0 = (undefined *)(iVar1 + 3);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 3)" identifier = (cast_expression "(undefined *)(iVar1 + 3)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 3)" ( (binary_expression "iVar1 + 3" identifier + number_literal) )))) ;) (expression_statement "puVar16 = (undefined *)0x7fffffff;" (assignment_expression "puVar16 = (undefined *)0x7fffffff" identifier = (cast_expression "(undefined *)0x7fffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = *(int *)(puStack_940 + -0x7fd4);" (assignment_expression "iVar8 = *(int *)(puStack_940 + -0x7fd4)" identifier = (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" * (cast_expression "(int *)(puStack_940 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_940 + -0x7fd4)" ( (binary_expression "puStack_940 + -0x7fd4" identifier + number_literal) ))))) ;) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" identifier = identifier) ;) (expression_statement "pppppppcStack_92c = pppppppcStack_48c;" (assignment_expression "pppppppcStack_92c = pppppppcStack_48c" identifier = identifier) ;) (if_statement "if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }" if (parenthesized_expression "(pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4))" ( (binary_expression "pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)" identifier <= (cast_expression "(code *******)(0x7fffffff - (int)puVar4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(0x7fffffff - (int)puVar4)" ( (binary_expression "0x7fffffff - (int)puVar4" number_literal - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }" { (expression_statement "pppppppcStack_924 = pppppppcStack_928;" (assignment_expression "pppppppcStack_924 = pppppppcStack_928" identifier = identifier) ;) (if_statement "if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }" { (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,pppppppcVar29,unaff_s0)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,param_4,param_2)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,&_gp_1,unaff_s8)" ( number_literal , (pointer_expression "&_gp_1" & identifier) , identifier ))) ;) }) (else_clause "else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }" else (compound_statement "{\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }" { (expression_statement "FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);" (call_expression "FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928)" identifier (argument_list "(param_1,0x69545874,puVar4 + (int)pppppppcStack_928)" ( identifier , number_literal , (binary_expression "puVar4 + (int)pppppppcStack_928" identifier + (cast_expression "(int)pppppppcStack_928" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,pppppppcVar29,unaff_s0)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,param_4,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,&_gp_1,unaff_s8)" ( identifier , (pointer_expression "&_gp_1" & identifier) , identifier ))) ;) }))) (expression_statement "pppppppcVar2 = pppppppcStack_924;" (assignment_expression "pppppppcVar2 = pppppppcStack_924" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,pppppppcStack_48c)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0003b710;" goto statement_identifier ;) })) (goto_statement "goto LAB_0003b968;" goto statement_identifier ;) })) (expression_statement "pppppppcStack_928 = (code *******)0x0;" (assignment_expression "pppppppcStack_928 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);" (assignment_expression "pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" identifier = (cast_expression "(code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" ( (binary_expression "*(int *)(puStack_940 + -0x7fd4) + -0xc84" (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" * (cast_expression "(int *)(puStack_940 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_940 + -0x7fd4)" ( (binary_expression "puStack_940 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;" if (parenthesized_expression "((int *)(0x7fffffff - (iVar1 + 3)) < param_2)" ( (binary_expression "(int *)(0x7fffffff - (iVar1 + 3)) < param_2" (cast_expression "(int *)(0x7fffffff - (iVar1 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffff - (iVar1 + 3))" ( (binary_expression "0x7fffffff - (iVar1 + 3)" number_literal - (parenthesized_expression "(iVar1 + 3)" ( (binary_expression "iVar1 + 3" identifier + number_literal) ))) ))) < identifier) )) (goto_statement "goto LAB_0003b7c8;" goto statement_identifier ;)) (labeled_statement "LAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);" statement_identifier : (expression_statement "puVar4 = (undefined *)((int)param_2 + iVar1 + 3);" (assignment_expression "puVar4 = (undefined *)((int)param_2 + iVar1 + 3)" identifier = (cast_expression "(undefined *)((int)param_2 + iVar1 + 3)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + iVar1 + 3)" ( (binary_expression "(int)param_2 + iVar1 + 3" (binary_expression "(int)param_2 + iVar1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;)) (if_statement "if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;" if (parenthesized_expression "((code *******)(0x7fffffff - (int)puVar4) < unaff_s8)" ( (binary_expression "(code *******)(0x7fffffff - (int)puVar4) < unaff_s8" (cast_expression "(code *******)(0x7fffffff - (int)puVar4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(0x7fffffff - (int)puVar4)" ( (binary_expression "0x7fffffff - (int)puVar4" number_literal - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) )) (goto_statement "goto LAB_0003b7c8;" goto statement_identifier ;)) (expression_statement "puVar4 = puVar4 + (int)unaff_s8;" (assignment_expression "puVar4 = puVar4 + (int)unaff_s8" identifier = (binary_expression "puVar4 + (int)unaff_s8" identifier + (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppcStack_92c = pppppppcStack_48c;" (assignment_expression "pppppppcStack_92c = pppppppcStack_48c" identifier = identifier) ;) (if_statement "if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;" if (parenthesized_expression "(puStack_934 == (undefined *)0x0)" ( (binary_expression "puStack_934 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003b670;" goto statement_identifier ;)) (labeled_statement "LAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;" statement_identifier : (expression_statement "pppppppcStack_924 = (code *******)0x0;" (assignment_expression "pppppppcStack_924 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "unaff_s0 = (undefined *)(iVar1 + 3);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 3)" identifier = (cast_expression "(undefined *)(iVar1 + 3)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 3)" ( (binary_expression "iVar1 + 3" identifier + number_literal) )))) ;) (expression_statement "pppppppcStack_48c = (code *******)&pppppppcStack_92c;" (assignment_expression "pppppppcStack_48c = (code *******)&pppppppcStack_92c" identifier = (cast_expression "(code *******)&pppppppcStack_92c" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppcStack_92c" & identifier))) ;) (expression_statement "pppppppcVar2 = pppppppcStack_48c;" (assignment_expression "pppppppcVar2 = pppppppcStack_48c" identifier = identifier) ;) (expression_statement "puStack_934 = puVar4;" (assignment_expression "puStack_934 = puVar4" identifier = identifier) ;) (expression_statement "iVar8 = FUN_00039670(param_1,0x69545874);" (assignment_expression "iVar8 = FUN_00039670(param_1,0x69545874)" identifier = (call_expression "FUN_00039670(param_1,0x69545874)" identifier (argument_list "(param_1,0x69545874)" ( identifier , number_literal )))) ;) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }" { (expression_statement "pppppppcVar2 = unaff_s8;" (assignment_expression "pppppppcVar2 = unaff_s8" identifier = identifier) ;) (if_statement "if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }" { (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,pppppppcVar29,unaff_s0)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,param_4,param_2)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,&_gp_1)" ( number_literal , (pointer_expression "&_gp_1" & identifier) ))) ;) (expression_statement "puVar16 = puVar4;" (assignment_expression "puVar16 = puVar4" identifier = identifier) ;) }) (else_clause "else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }" else (compound_statement "{\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }" { (expression_statement "FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);" (call_expression "FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924)" identifier (argument_list "(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924)" ( identifier , number_literal , (binary_expression "puStack_934 + (int)pppppppcStack_924" identifier + (cast_expression "(int)pppppppcStack_924" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,pppppppcVar29,unaff_s0)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,param_4,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,&_gp_1)" ( identifier , (pointer_expression "&_gp_1" & identifier) ))) ;) (expression_statement "puVar16 = puVar4;" (assignment_expression "puVar16 = puVar4" identifier = identifier) ;) }))) (expression_statement "FUN_00039bc4(param_1,pppppppcStack_48c);" (call_expression "FUN_00039bc4(param_1,pppppppcStack_48c)" identifier (argument_list "(param_1,pppppppcStack_48c)" ( identifier , identifier ))) ;) (labeled_statement "LAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);" statement_identifier : (expression_statement "unaff_s0 = (undefined *)(iVar1 + 3);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 3)" identifier = (cast_expression "(undefined *)(iVar1 + 3)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 3)" ( (binary_expression "iVar1 + 3" identifier + number_literal) )))) ;)) (expression_statement "(**(code **)(puStack_940 + -0x7be8))(param_1);" (call_expression "(**(code **)(puStack_940 + -0x7be8))(param_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7be8))" ( (pointer_expression "**(code **)(puStack_940 + -0x7be8)" * (pointer_expression "*(code **)(puStack_940 + -0x7be8)" * (cast_expression "(code **)(puStack_940 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7be8)" ( (binary_expression "puStack_940 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" identifier = identifier) ;) (if_statement "if (iStack_4cc == *piVar31) {\n        return;\n      }" if (parenthesized_expression "(iStack_4cc == *piVar31)" ( (binary_expression "iStack_4cc == *piVar31" identifier == (pointer_expression "*piVar31" * identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0003b948;" goto statement_identifier ;) })) }))) (expression_statement "iVar1 = param_1[0x53];" (assignment_expression "iVar1 = param_1[0x53]" identifier = (subscript_expression "param_1[0x53]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = *(code **)(puVar40 + -0x7be4);" (assignment_expression "pcVar32 = *(code **)(puVar40 + -0x7be4)" identifier = (pointer_expression "*(code **)(puVar40 + -0x7be4)" * (cast_expression "(code **)(puVar40 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7be4)" ( (binary_expression "puVar40 + -0x7be4" identifier + number_literal) ))))) ;) (expression_statement "pcVar42 = FUN_0003b988;" (assignment_expression "pcVar42 = FUN_0003b988" identifier = identifier) ;) (expression_statement "piVar27 = param_1;" (assignment_expression "piVar27 = param_1" identifier = identifier) ;) (expression_statement "(*pcVar32)(param_1,iVar1);" (call_expression "(*pcVar32)(param_1,iVar1)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(param_1,iVar1)" ( identifier , identifier ))) ;) (expression_statement "pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);" (assignment_expression "pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668)" identifier = (cast_expression "(code *******)(pcVar32 + 0x1f668)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pcVar32 + 0x1f668)" ( (binary_expression "pcVar32 + 0x1f668" identifier + number_literal) )))) ;) (expression_statement "piVar20 = *(int **)(pcVar32 + 0x17b34);" (assignment_expression "piVar20 = *(int **)(pcVar32 + 0x17b34)" identifier = (pointer_expression "*(int **)(pcVar32 + 0x17b34)" * (cast_expression "(int **)(pcVar32 + 0x17b34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x17b34)" ( (binary_expression "pcVar32 + 0x17b34" identifier + number_literal) ))))) ;) (expression_statement "iStack_96c = *piVar20;" (assignment_expression "iStack_96c = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);" (assignment_expression "ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50)" identifier = (pointer_expression "*(code *******)(pcVar32 + 0x17a50)" * (cast_expression "(code *******)(pcVar32 + 0x17a50)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pcVar32 + 0x17a50)" ( (binary_expression "pcVar32 + 0x17a50" identifier + number_literal) ))))) ;) (expression_statement "puStack_968 = unaff_s0;" (assignment_expression "puStack_968 = unaff_s0" identifier = identifier) ;) (expression_statement "piStack_964 = param_1;" (assignment_expression "piStack_964 = param_1" identifier = identifier) ;) (expression_statement "pppppppcStack_960 = pppppppcStack_48c;" (assignment_expression "pppppppcStack_960 = pppppppcStack_48c" identifier = identifier) ;) (expression_statement "puStack_95c = &_gp_1;" (assignment_expression "puStack_95c = &_gp_1" identifier = (pointer_expression "&_gp_1" & identifier)) ;) (expression_statement "puStack_958 = param_4;" (assignment_expression "puStack_958 = param_4" identifier = identifier) ;) (expression_statement "pcStack_954 = pcVar42;" (assignment_expression "pcStack_954 = pcVar42" identifier = identifier) ;) (if_statement "if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }" if (parenthesized_expression "(1 < (int)puVar4)" ( (binary_expression "1 < (int)puVar4" number_literal < (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }" { (expression_statement "(**(code **)(pcVar32 + 0x17ab8))();" (call_expression "(**(code **)(pcVar32 + 0x17ab8))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x17ab8))" ( (pointer_expression "**(code **)(pcVar32 + 0x17ab8)" * (pointer_expression "*(code **)(pcVar32 + 0x17ab8)" * (cast_expression "(code **)(pcVar32 + 0x17ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x17ab8)" ( (binary_expression "pcVar32 + 0x17ab8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppppppcVar33 = pppppppcStack_980[-0x1f06];" (assignment_expression "ppppppcVar33 = pppppppcStack_980[-0x1f06]" identifier = (subscript_expression "pppppppcStack_980[-0x1f06]" identifier [ number_literal ])) ;) })) (expression_statement "(*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);" (call_expression "(*(code *)ppppppcVar33)(&pppppcStack_978,iVar1)" (parenthesized_expression "(*(code *)ppppppcVar33)" ( (pointer_expression "*(code *)ppppppcVar33" * (cast_expression "(code *)ppppppcVar33" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&pppppcStack_978,iVar1)" ( (pointer_expression "&pppppcStack_978" & identifier) , identifier ))) ;) (expression_statement "(*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);" (call_expression "(*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2)" (parenthesized_expression "(*(code *)pppppppcStack_980[-0x1f06])" ( (pointer_expression "*(code *)pppppppcStack_980[-0x1f06]" * (cast_expression "(code *)pppppppcStack_980[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppppcStack_980[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(&piStack_974,pppppppcVar2)" ( (pointer_expression "&piStack_974" & identifier) , identifier ))) ;) (expression_statement "puVar17 = (undefined1 *)0x9;" (assignment_expression "puVar17 = (undefined1 *)0x9" identifier = (cast_expression "(undefined1 *)0x9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_970 = SUB41(puVar4,0);" (assignment_expression "uStack_970 = SUB41(puVar4,0)" identifier = (call_expression "SUB41(puVar4,0)" identifier (argument_list "(puVar4,0)" ( identifier , number_literal )))) ;) (expression_statement "piVar5 = piVar27;" (assignment_expression "piVar5 = piVar27" identifier = identifier) ;) (expression_statement "ppppppcVar33 = &pppppcStack_978;" (assignment_expression "ppppppcVar33 = &pppppcStack_978" identifier = (pointer_expression "&pppppcStack_978" & identifier)) ;) (expression_statement "FUN_00039d28(piVar27,0x6f464673);" (call_expression "FUN_00039d28(piVar27,0x6f464673)" identifier (argument_list "(piVar27,0x6f464673)" ( identifier , number_literal ))) ;) (if_statement "if (iStack_96c == *piVar20) {\n    return;\n  }" if (parenthesized_expression "(iStack_96c == *piVar20)" ( (binary_expression "iStack_96c == *piVar20" identifier == (pointer_expression "*piVar20" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "ppppppcVar34 = pppppppcStack_980[-0x1edb];" (assignment_expression "ppppppcVar34 = pppppppcStack_980[-0x1edb]" identifier = (subscript_expression "pppppppcStack_980[-0x1edb]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = FUN_0003ba7c;" (assignment_expression "pcVar32 = FUN_0003ba7c" identifier = identifier) ;) (expression_statement "(*(code *)ppppppcVar34)();" (call_expression "(*(code *)ppppppcVar34)()" (parenthesized_expression "(*(code *)ppppppcVar34)" ( (pointer_expression "*(code *)ppppppcVar34" * (cast_expression "(code *)ppppppcVar34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pppppppcVar24 = pppppppcStack_980;" (assignment_expression "pppppppcVar24 = pppppppcStack_980" identifier = identifier) ;) (expression_statement "ppppppcVar14 = ppppppcVar34 + 0x7d5d;" (assignment_expression "ppppppcVar14 = ppppppcVar34 + 0x7d5d" identifier = (binary_expression "ppppppcVar34 + 0x7d5d" identifier + number_literal)) ;) (expression_statement "pppppcStack_a30 = ppppppcVar34[0x5e90];" (assignment_expression "pppppcStack_a30 = ppppppcVar34[0x5e90]" identifier = (subscript_expression "ppppppcVar34[0x5e90]" identifier [ number_literal ])) ;) (expression_statement "pppppcStack_a34 = pppppcStack_978;" (assignment_expression "pppppcStack_a34 = pppppcStack_978" identifier = identifier) ;) (expression_statement "ppppcStack_9bc = *pppppcStack_a30;" (assignment_expression "ppppcStack_9bc = *pppppcStack_a30" identifier = (pointer_expression "*pppppcStack_a30" * identifier)) ;) (expression_statement "piStack_a70 = piVar20;" (assignment_expression "piStack_a70 = piVar20" identifier = identifier) ;) (expression_statement "ppppppcStack_a40 = ppppppcVar14;" (assignment_expression "ppppppcStack_a40 = ppppppcVar14" identifier = identifier) ;) (expression_statement "ppppppcStack_9b8 = &pppppcStack_978;" (assignment_expression "ppppppcStack_9b8 = &pppppcStack_978" identifier = (pointer_expression "&pppppcStack_978" & identifier)) ;) (expression_statement "piStack_9b4 = piVar20;" (assignment_expression "piStack_9b4 = piVar20" identifier = identifier) ;) (expression_statement "puStack_9b0 = puVar4;" (assignment_expression "puStack_9b0 = puVar4" identifier = identifier) ;) (expression_statement "piStack_9ac = piVar27;" (assignment_expression "piStack_9ac = piVar27" identifier = identifier) ;) (expression_statement "pppppppcStack_9a8 = pppppppcVar2;" (assignment_expression "pppppppcStack_9a8 = pppppppcVar2" identifier = identifier) ;) (expression_statement "piStack_9a4 = param_2;" (assignment_expression "piStack_9a4 = param_2" identifier = identifier) ;) (expression_statement "pppppppcStack_9a0 = pppppppcVar29;" (assignment_expression "pppppppcStack_9a0 = pppppppcVar29" identifier = identifier) ;) (expression_statement "piStack_99c = piVar31;" (assignment_expression "piStack_99c = piVar31" identifier = identifier) ;) (expression_statement "pppppppcStack_998 = unaff_s8;" (assignment_expression "pppppppcStack_998 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_994 = pcVar32;" (assignment_expression "pcStack_994 = pcVar32" identifier = identifier) ;) (expression_statement "ppppppcStack_988 = ppppppcVar33;" (assignment_expression "ppppppcStack_988 = ppppppcVar33" identifier = identifier) ;) (expression_statement "puStack_984 = puVar17;" (assignment_expression "puStack_984 = puVar17" identifier = identifier) ;) (if_statement "if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }" if (parenthesized_expression "((int)pppppppcStack_980 < 4)" ( (binary_expression "(int)pppppppcStack_980 < 4" (cast_expression "(int)pppppppcStack_980" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }" { (expression_statement "ppppppcVar33 = apppppcStack_a0c;" (assignment_expression "ppppppcVar33 = apppppcStack_a0c" identifier = identifier) ;) (expression_statement "ppppppcStack_a1c = ppppppcVar33;" (assignment_expression "ppppppcStack_a1c = ppppppcVar33" identifier = identifier) ;) (expression_statement "iVar1 = FUN_0003449c();" (assignment_expression "iVar1 = FUN_0003449c()" identifier = (call_expression "FUN_0003449c()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppppppcVar14 = ppppppcStack_a40;" (assignment_expression "ppppppcVar14 = ppppppcStack_a40" identifier = identifier) ;) (expression_statement "piStack_a70 = piVar5;" (assignment_expression "piStack_a70 = piVar5" identifier = identifier) ;) (if_statement "if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }" { (expression_statement "(*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ef9])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ef9]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ef9]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ef9]" identifier [ number_literal ]))) )) (argument_list "(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2)" ( identifier , (binary_expression "ppppppcStack_a40[-0x1ff5] + 0x9b2" (subscript_expression "ppppppcStack_a40[-0x1ff5]" identifier [ number_literal ]) + number_literal) ))) ;) (expression_statement "pppppppcVar2 = (code *******)0x0;" (assignment_expression "pppppppcVar2 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_0003bebc;" goto statement_identifier ;) })) (expression_statement "iStack_a2c = iVar1 + 1;" (assignment_expression "iStack_a2c = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);" (assignment_expression "piVar27 = (int *)(uint)(piStack_97c != (int *)0x0)" identifier = (cast_expression "(int *)(uint)(piStack_97c != (int *)0x0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(piStack_97c != (int *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piStack_97c != (int *)0x0)" ( (binary_expression "piStack_97c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (expression_statement "uStack_a24 = (uint)pppppppcVar24 & 0xff;" (assignment_expression "uStack_a24 = (uint)pppppppcVar24 & 0xff" identifier = (binary_expression "(uint)pppppppcVar24 & 0xff" (cast_expression "(uint)pppppppcVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);" (assignment_expression "iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34)" identifier = (call_expression "(*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f07])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f07]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f07]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f07]" identifier [ number_literal ]))) )) (argument_list "(pppppcStack_a34)" ( identifier )))) ;) (expression_statement "ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);" (assignment_expression "ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8)" identifier = (cast_expression "(code ******)((int)piVar27 + iVar8)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)piVar27 + iVar8)" ( (binary_expression "(int)piVar27 + iVar8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);" (assignment_expression "piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb)" identifier = (cast_expression "(int *)((int)ppppppcStack_a28 + iVar1 + 0xb)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcStack_a28 + iVar1 + 0xb)" ( (binary_expression "(int)ppppppcStack_a28 + iVar1 + 0xb" (binary_expression "(int)ppppppcStack_a28 + iVar1" (cast_expression "(int)ppppppcStack_a28" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);" (assignment_expression "pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2)" identifier = (cast_expression "(code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f3a])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f3a]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f3a]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f3a]" identifier [ number_literal ]))) )) (argument_list "(piVar5,(int)piStack_97c << 2)" ( identifier , (binary_expression "(int)piStack_97c << 2" (cast_expression "(int)piStack_97c" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "uStack_a20 = (uint)piStack_97c & 0xff;" (assignment_expression "uStack_a20 = (uint)piStack_97c & 0xff" identifier = (binary_expression "(uint)piStack_97c & 0xff" (cast_expression "(uint)piStack_97c" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }" if (parenthesized_expression "((int)piStack_97c < 1)" ( (binary_expression "(int)piStack_97c < 1" (cast_expression "(int)piStack_97c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }" { (if_statement "if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }" { (expression_statement "piVar20 = &iStack_a18;" (assignment_expression "piVar20 = &iStack_a18" identifier = (pointer_expression "&iStack_a18" & identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,ppppppcStack_a1c,iStack_a2c)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(piVar20,ppppppcStack_988)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(auStack_a14,puStack_984)" ( identifier , identifier ))) ;) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" identifier = (cast_expression "(undefined1)uStack_a24" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" identifier = (cast_expression "(undefined1)uStack_a20" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,piVar20,10)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "ppppppcVar33 = ppppppcStack_a28;" (assignment_expression "ppppppcVar33 = ppppppcStack_a28" identifier = identifier) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,pppppcStack_a34)" ( number_literal , identifier ))) ;) }) (else_clause "else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }" else (compound_statement "{\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }" { (expression_statement "FUN_00039938(piVar5,0x7043414c,piVar31);" (call_expression "FUN_00039938(piVar5,0x7043414c,piVar31)" identifier (argument_list "(piVar5,0x7043414c,piVar31)" ( identifier , number_literal , identifier ))) ;) (expression_statement "piVar20 = &iStack_a18;" (assignment_expression "piVar20 = &iStack_a18" identifier = (pointer_expression "&iStack_a18" & identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,ppppppcStack_a1c,iStack_a2c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(piVar20,ppppppcStack_988)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(auStack_a14,puStack_984)" ( identifier , identifier ))) ;) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" identifier = (cast_expression "(undefined1)uStack_a24" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" identifier = (cast_expression "(undefined1)uStack_a20" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,piVar20,10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "ppppppcVar33 = ppppppcStack_a28;" (assignment_expression "ppppppcVar33 = ppppppcStack_a28" identifier = identifier) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,pppppcStack_a34)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }" else (compound_statement "{\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }" { (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = piStack_974;" (assignment_expression "param_2 = piStack_974" identifier = identifier) ;) (expression_statement "pppppppcVar29 = pppppppcVar2;" (assignment_expression "pppppppcVar29 = pppppppcVar2" identifier = identifier) ;) (do_statement "do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);" do (compound_statement "{\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      }" { (expression_statement "iVar1 = *param_2;" (assignment_expression "iVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);" (assignment_expression "iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1)" identifier = (call_expression "(*(code *)ppppppcStack_a40[-0x1f07])(iVar1)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f07])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f07]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f07]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f07]" identifier [ number_literal ]))) )) (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);" (assignment_expression "ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1)" identifier = (cast_expression "(code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1)" ( (binary_expression "(uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1" (call_expression "(uint)(piVar27 != (int *)((int)piStack_97c + -1))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar27 != (int *)((int)piStack_97c + -1))" ( (binary_expression "piVar27 != (int *)((int)piStack_97c + -1)" identifier != (cast_expression "(int *)((int)piStack_97c + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piStack_97c + -1)" ( (binary_expression "(int)piStack_97c + -1" (cast_expression "(int)piStack_97c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) + identifier) )))) ;) (expression_statement "piVar27 = (int *)((int)piVar27 + 1);" (assignment_expression "piVar27 = (int *)((int)piVar27 + 1)" identifier = (cast_expression "(int *)((int)piVar27 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + 1)" ( (binary_expression "(int)piVar27 + 1" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*pppppppcVar29 = ppppppcVar33;" (assignment_expression "*pppppppcVar29 = ppppppcVar33" (pointer_expression "*pppppppcVar29" * identifier) = identifier) ;) (expression_statement "piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);" (assignment_expression "piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33)" identifier = (cast_expression "(int *)((int)piVar31 + (int)ppppppcVar33)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar31 + (int)ppppppcVar33)" ( (binary_expression "(int)piVar31 + (int)ppppppcVar33" (cast_expression "(int)piVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppppcVar33" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppcVar29 = pppppppcVar29 + 1;" (assignment_expression "pppppppcVar29 = pppppppcVar29 + 1" identifier = (binary_expression "pppppppcVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piStack_97c != piVar27)" ( (binary_expression "piStack_97c != piVar27" identifier != identifier) )) ;) (if_statement "if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }" { (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,ppppppcStack_a1c,iStack_a2c)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(&iStack_a18,ppppppcStack_988)" ( (pointer_expression "&iStack_a18" & identifier) , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(auStack_a14,puStack_984)" ( identifier , identifier ))) ;) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" identifier = (cast_expression "(undefined1)uStack_a24" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" identifier = (cast_expression "(undefined1)uStack_a20" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,&iStack_a18,10)" ( number_literal , (pointer_expression "&iStack_a18" & identifier) , number_literal ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,pppppcStack_a34,ppppppcStack_a28)" ( number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }" else (compound_statement "{\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }" { (expression_statement "FUN_00039938(piVar5,0x7043414c,piVar31);" (call_expression "FUN_00039938(piVar5,0x7043414c,piVar31)" identifier (argument_list "(piVar5,0x7043414c,piVar31)" ( identifier , number_literal , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,ppppppcStack_a1c,iStack_a2c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(&iStack_a18,ppppppcStack_988)" ( (pointer_expression "&iStack_a18" & identifier) , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(auStack_a14,puStack_984)" ( identifier , identifier ))) ;) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" identifier = (cast_expression "(undefined1)uStack_a24" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" identifier = (cast_expression "(undefined1)uStack_a20" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,&iStack_a18,10)" ( identifier , (pointer_expression "&iStack_a18" & identifier) , number_literal ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,pppppcStack_a34,ppppppcStack_a28)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar24 = pppppppcVar2;" (assignment_expression "pppppppcVar24 = pppppppcVar2" identifier = identifier) ;) (expression_statement "piVar15 = piStack_974;" (assignment_expression "piVar15 = piStack_974" identifier = identifier) ;) (do_statement "do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);" do (compound_statement "{\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      }" { (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar29 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar29 + 1)" ( (binary_expression "(int)pppppppcVar29 + 1" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppcVar33 = *pppppppcVar24;" (assignment_expression "ppppppcVar33 = *pppppppcVar24" identifier = (pointer_expression "*pppppppcVar24" * identifier)) ;) (expression_statement "iVar1 = *piVar15;" (assignment_expression "iVar1 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "pppppppcVar24 = pppppppcVar24 + 1;" (assignment_expression "pppppppcVar24 = pppppppcVar24 + 1" identifier = (binary_expression "pppppppcVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" identifier = (binary_expression "piVar15 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,iVar1)" ( identifier , identifier ))) ;) (expression_statement "piVar20 = piStack_97c;" (assignment_expression "piVar20 = piStack_97c" identifier = identifier) ;) (expression_statement "piStack_974 = piVar15;" (assignment_expression "piStack_974 = piVar15" identifier = identifier) ;) }) while (parenthesized_expression "((int)pppppppcVar29 < (int)piStack_97c)" ( (binary_expression "(int)pppppppcVar29 < (int)piStack_97c" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)piStack_97c" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) (expression_statement "pppppppcVar9 = pppppppcVar2;" (assignment_expression "pppppppcVar9 = pppppppcVar2" identifier = identifier) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f33])(piVar5);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f33])(piVar5)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f33])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f33]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f33]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f33]" identifier [ number_literal ]))) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1efa])();" (call_expression "(*(code *)ppppppcStack_a40[-0x1efa])()" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1efa])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1efa]" * (cast_expression "(code *)ppppppcStack_a40[-0x1efa]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1efa]" identifier [ number_literal ]))) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_a74 = piVar20;" (assignment_expression "piStack_a74 = piVar20" identifier = identifier) ;) (expression_statement "ppppppcVar14 = ppppppcStack_a40;" (assignment_expression "ppppppcVar14 = ppppppcStack_a40" identifier = identifier) ;) (expression_statement "piVar20 = piStack_974;" (assignment_expression "piVar20 = piStack_974" identifier = identifier) ;) (if_statement "if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }" if (parenthesized_expression "(ppppcStack_9bc == *pppppcStack_a30)" ( (binary_expression "ppppcStack_9bc == *pppppcStack_a30" identifier == (pointer_expression "*pppppcStack_a30" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }" else (compound_statement "{\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }" { (labeled_statement "LAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);" statement_identifier : (expression_statement "pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);" (assignment_expression "pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7)" identifier = (cast_expression "(code *******)(ppppppcVar14[-0x1ff5] + 0x9a7)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppcVar14[-0x1ff5] + 0x9a7)" ( (binary_expression "ppppppcVar14[-0x1ff5] + 0x9a7" (subscript_expression "ppppppcVar14[-0x1ff5]" identifier [ number_literal ]) + number_literal) )))) ;)) (expression_statement "(*(code *)ppppppcVar14[-0x1ef9])();" (call_expression "(*(code *)ppppppcVar14[-0x1ef9])()" (parenthesized_expression "(*(code *)ppppppcVar14[-0x1ef9])" ( (pointer_expression "*(code *)ppppppcVar14[-0x1ef9]" * (cast_expression "(code *)ppppppcVar14[-0x1ef9]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcVar14[-0x1ef9]" identifier [ number_literal ]))) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_a74 = piStack_97c;" (assignment_expression "piStack_a74 = piStack_97c" identifier = identifier) ;) (expression_statement "piVar20 = piStack_974;" (assignment_expression "piVar20 = piStack_974" identifier = identifier) ;) }))) (expression_statement "pppppcVar35 = ppppppcVar14[-0x1edb];" (assignment_expression "pppppcVar35 = ppppppcVar14[-0x1edb]" identifier = (subscript_expression "ppppppcVar14[-0x1edb]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = FUN_0003bed8;" (assignment_expression "pcVar32 = FUN_0003bed8" identifier = identifier) ;) (expression_statement "(*(code *)pppppcVar35)();" (call_expression "(*(code *)pppppcVar35)()" (parenthesized_expression "(*(code *)pppppcVar35)" ( (pointer_expression "*(code *)pppppcVar35" * (cast_expression "(code *)pppppcVar35" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pppppcStack_ac8 = pppppcVar35 + 0x7c46;" (assignment_expression "pppppcStack_ac8 = pppppcVar35 + 0x7c46" identifier = (binary_expression "pppppcVar35 + 0x7c46" identifier + number_literal)) ;) (expression_statement "ppppcVar25 = pppppcVar35[0x5d79];" (assignment_expression "ppppcVar25 = pppppcVar35[0x5d79]" identifier = (subscript_expression "pppppcVar35[0x5d79]" identifier [ number_literal ])) ;) (expression_statement "pppcStack_a7c = *ppppcVar25;" (assignment_expression "pppcStack_a7c = *ppppcVar25" identifier = (pointer_expression "*ppppcVar25" * identifier)) ;) (expression_statement "ppppppcVar14 = ppppppcVar33;" (assignment_expression "ppppppcVar14 = ppppppcVar33" identifier = identifier) ;) (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" identifier = identifier) ;) (expression_statement "pppppppcStack_a6c = pppppppcVar24;" (assignment_expression "pppppppcStack_a6c = pppppppcVar24" identifier = identifier) ;) (expression_statement "piStack_a68 = piVar27;" (assignment_expression "piStack_a68 = piVar27" identifier = identifier) ;) (expression_statement "pppppppcStack_a64 = pppppppcVar2;" (assignment_expression "pppppppcStack_a64 = pppppppcVar2" identifier = identifier) ;) (expression_statement "piStack_a60 = param_2;" (assignment_expression "piStack_a60 = param_2" identifier = identifier) ;) (expression_statement "pppppppcStack_a5c = pppppppcVar29;" (assignment_expression "pppppppcStack_a5c = pppppppcVar29" identifier = identifier) ;) (expression_statement "piStack_a58 = piVar31;" (assignment_expression "piStack_a58 = piVar31" identifier = identifier) ;) (expression_statement "pcStack_a54 = pcVar32;" (assignment_expression "pcStack_a54 = pcVar32" identifier = identifier) ;) (expression_statement "ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);" (assignment_expression "ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33)" identifier = (cast_expression "(code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33)" (parenthesized_expression "(*(code *)pppppcVar35[0x5d3f])" ( (pointer_expression "*(code *)pppppcVar35[0x5d3f]" * (cast_expression "(code *)pppppcVar35[0x5d3f]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppcVar35[0x5d3f]" identifier [ number_literal ]))) )) (argument_list "(ppppppcVar33)" ( identifier ))))) ;) (expression_statement "iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);" (assignment_expression "iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17)" identifier = (call_expression "(*(code *)pppppcStack_ac8[-0x1f07])(puVar17)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1f07])" ( (pointer_expression "*(code *)pppppcStack_ac8[-0x1f07]" * (cast_expression "(code *)pppppcStack_ac8[-0x1f07]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppcStack_ac8[-0x1f07]" identifier [ number_literal ]))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);" (assignment_expression "puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2)" identifier = (cast_expression "(undefined1 *)((int)ppppppcVar34 + iVar1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcVar34 + iVar1 + 2)" ( (binary_expression "(int)ppppppcVar34 + iVar1 + 2" (binary_expression "(int)ppppppcVar34 + iVar1" (cast_expression "(int)ppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "piVar31 = piVar5;" (assignment_expression "piVar31 = piVar5" identifier = identifier) ;) (if_statement "if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }" if (parenthesized_expression "(puVar18 < (undefined1 *)0x41)" ( (binary_expression "puVar18 < (undefined1 *)0x41" identifier < (cast_expression "(undefined1 *)0x41" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }" { (expression_statement "uStack_abc = SUB41(pppppppcVar9,0);" (assignment_expression "uStack_abc = SUB41(pppppppcVar9,0)" identifier = (call_expression "SUB41(pppppppcVar9,0)" identifier (argument_list "(pppppppcVar9,0)" ( identifier , number_literal )))) ;) (expression_statement "(*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);" (call_expression "(*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1efc])" ( (pointer_expression "*(code *)pppppcStack_ac8[-0x1efc]" * (cast_expression "(code *)pppppcStack_ac8[-0x1efc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppcStack_ac8[-0x1efc]" identifier [ number_literal ]))) )) (argument_list "(&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f)" ( (pointer_expression "&uStack_abb" & identifier) , identifier , (cast_expression "(undefined1 *)((int)ppppppcVar34 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcVar34 + 1)" ( (binary_expression "(int)ppppppcVar34 + 1" (cast_expression "(int)ppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , number_literal ))) ;) (expression_statement "puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);" (assignment_expression "puVar6 = (undefined1 *)((int)ppppppcVar34 + 2)" identifier = (cast_expression "(undefined1 *)((int)ppppppcVar34 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcVar34 + 2)" ( (binary_expression "(int)ppppppcVar34 + 2" (cast_expression "(int)ppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppcVar34 = (code ******)&uStack_abc;" (assignment_expression "ppppppcVar34 = (code ******)&uStack_abc" identifier = (cast_expression "(code ******)&uStack_abc" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&uStack_abc" & identifier))) ;) (expression_statement "(*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);" (call_expression "(*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1ecb])" ( (pointer_expression "*(code *)pppppcStack_ac8[-0x1ecb]" * (cast_expression "(code *)pppppcStack_ac8[-0x1ecb]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppcStack_ac8[-0x1ecb]" identifier [ number_literal ]))) )) (argument_list "((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1)" ( (cast_expression "(undefined1 *)((int)ppppppcVar34 + (int)puVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcVar34 + (int)puVar6)" ( (binary_expression "(int)ppppppcVar34 + (int)puVar6" (cast_expression "(int)ppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , identifier , identifier ))) ;) (expression_statement "ppppcVar10 = (code ****)0x7343414c;" (assignment_expression "ppppcVar10 = (code ****)0x7343414c" identifier = (cast_expression "(code ****)0x7343414c" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppppcVar14 = ppppppcVar34;" (assignment_expression "ppppppcVar14 = ppppppcVar34" identifier = identifier) ;) (expression_statement "puVar6 = puVar18;" (assignment_expression "puVar6 = puVar18" identifier = identifier) ;) (expression_statement "FUN_00039d28(piVar5,0x7343414c);" (call_expression "FUN_00039d28(piVar5,0x7343414c)" identifier (argument_list "(piVar5,0x7343414c)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }" else (compound_statement "{\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }" { (expression_statement "ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;" (assignment_expression "ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8" identifier = (binary_expression "pppppcStack_ac8[-0x1ff5] + 0x9b8" (subscript_expression "pppppcStack_ac8[-0x1ff5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);" (call_expression "(*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1eec])" ( (pointer_expression "*(code *)pppppcStack_ac8[-0x1eec]" * (cast_expression "(code *)pppppcStack_ac8[-0x1eec]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppcStack_ac8[-0x1eec]" identifier [ number_literal ]))) )) (argument_list "(piVar5,ppppcVar10)" ( identifier , identifier ))) ;) }))) (if_statement "if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }" if (parenthesized_expression "(pppcStack_a7c == *ppppcVar25)" ( (binary_expression "pppcStack_a7c == *ppppcVar25" identifier == (pointer_expression "*ppppcVar25" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "ppppcVar36 = pppppcStack_ac8[-0x1edb];" (assignment_expression "ppppcVar36 = pppppcStack_ac8[-0x1edb]" identifier = (subscript_expression "pppppcStack_ac8[-0x1edb]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = FUN_0003c02c;" (assignment_expression "pcVar32 = FUN_0003c02c" identifier = identifier) ;) (expression_statement "(*(code *)ppppcVar36)();" (call_expression "(*(code *)ppppcVar36)()" (parenthesized_expression "(*(code *)ppppcVar36)" ( (pointer_expression "*(code *)ppppcVar36" * (cast_expression "(code *)ppppcVar36" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppppcStack_b08 = ppppcVar36 + 0x7bf1;" (assignment_expression "ppppcStack_b08 = ppppcVar36 + 0x7bf1" identifier = (binary_expression "ppppcVar36 + 0x7bf1" identifier + number_literal)) ;) (expression_statement "pppcVar21 = ppppcVar36[0x5d24];" (assignment_expression "pppcVar21 = ppppcVar36[0x5d24]" identifier = (subscript_expression "ppppcVar36[0x5d24]" identifier [ number_literal ])) ;) (expression_statement "ppcStack_af4 = *pppcVar21;" (assignment_expression "ppcStack_af4 = *pppcVar21" identifier = (pointer_expression "*pppcVar21" * identifier)) ;) (expression_statement "pppcVar37 = ppppcVar36[0x5ced];" (assignment_expression "pppcVar37 = ppppcVar36[0x5ced]" identifier = (subscript_expression "ppppcVar36[0x5ced]" identifier [ number_literal ])) ;) (expression_statement "puStack_af0 = puVar18;" (assignment_expression "puStack_af0 = puVar18" identifier = identifier) ;) (expression_statement "ppppppcStack_aec = ppppppcVar34;" (assignment_expression "ppppppcStack_aec = ppppppcVar34" identifier = identifier) ;) (expression_statement "ppppcStack_ae8 = ppppcVar25;" (assignment_expression "ppppcStack_ae8 = ppppcVar25" identifier = identifier) ;) (expression_statement "puStack_ae4 = puVar17;" (assignment_expression "puStack_ae4 = puVar17" identifier = identifier) ;) (expression_statement "iStack_ae0 = iVar1;" (assignment_expression "iStack_ae0 = iVar1" identifier = identifier) ;) (expression_statement "pcStack_adc = pcVar32;" (assignment_expression "pcStack_adc = pcVar32" identifier = identifier) ;) (if_statement "if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }" if (parenthesized_expression "(1 < (int)puVar6)" ( (binary_expression "1 < (int)puVar6" number_literal < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }" { (expression_statement "(*(code *)ppppcVar36[0x5d05])();" (call_expression "(*(code *)ppppcVar36[0x5d05])()" (parenthesized_expression "(*(code *)ppppcVar36[0x5d05])" ( (pointer_expression "*(code *)ppppcVar36[0x5d05]" * (cast_expression "(code *)ppppcVar36[0x5d05]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppcVar36[0x5d05]" identifier [ number_literal ]))) )) (argument_list "()" ( ))) ;) (expression_statement "pppcVar37 = ppppcStack_b08[-0x1f04];" (assignment_expression "pppcVar37 = ppppcStack_b08[-0x1f04]" identifier = (subscript_expression "ppppcStack_b08[-0x1f04]" identifier [ number_literal ])) ;) })) (expression_statement "(*(code *)pppcVar37)(&iStack_b00,ppppcVar10);" (call_expression "(*(code *)pppcVar37)(&iStack_b00,ppppcVar10)" (parenthesized_expression "(*(code *)pppcVar37)" ( (pointer_expression "*(code *)pppcVar37" * (cast_expression "(code *)pppcVar37" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&iStack_b00,ppppcVar10)" ( (pointer_expression "&iStack_b00" & identifier) , identifier ))) ;) (expression_statement "(*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);" (call_expression "(*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14)" (parenthesized_expression "(*(code *)ppppcStack_b08[-0x1f04])" ( (pointer_expression "*(code *)ppppcStack_b08[-0x1f04]" * (cast_expression "(code *)ppppcStack_b08[-0x1f04]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppcStack_b08[-0x1f04]" identifier [ number_literal ]))) )) (argument_list "(auStack_afc,ppppppcVar14)" ( identifier , identifier ))) ;) (expression_statement "piVar11 = (int *)&DAT_70485973;" (assignment_expression "piVar11 = (int *)&DAT_70485973" identifier = (cast_expression "(int *)&DAT_70485973" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_70485973" & identifier))) ;) (expression_statement "uStack_af8 = SUB41(puVar6,0);" (assignment_expression "uStack_af8 = SUB41(puVar6,0)" identifier = (call_expression "SUB41(puVar6,0)" identifier (argument_list "(puVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "piVar27 = piVar31;" (assignment_expression "piVar27 = piVar31" identifier = identifier) ;) (expression_statement "piVar15 = &iStack_b00;" (assignment_expression "piVar15 = &iStack_b00" identifier = (pointer_expression "&iStack_b00" & identifier)) ;) (expression_statement "FUN_00039d28();" (call_expression "FUN_00039d28()" identifier (argument_list "()" ( ))) ;) (if_statement "if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }" if (parenthesized_expression "(ppcStack_af4 == *pppcVar21)" ( (binary_expression "ppcStack_af4 == *pppcVar21" identifier == (pointer_expression "*pppcVar21" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pppcVar37 = ppppcStack_b08[-0x1edb];" (assignment_expression "pppcVar37 = ppppcStack_b08[-0x1edb]" identifier = (subscript_expression "ppppcStack_b08[-0x1edb]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = FUN_0003c120;" (assignment_expression "pcVar32 = FUN_0003c120" identifier = identifier) ;) (expression_statement "(*(code *)pppcVar37)();" (call_expression "(*(code *)pppcVar37)()" (parenthesized_expression "(*(code *)pppcVar37)" ( (pointer_expression "*(code *)pppcVar37" * (cast_expression "(code *)pppcVar37" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pppcStack_b48 = pppcVar37 + 0x7bb4;" (assignment_expression "pppcStack_b48 = pppcVar37 + 0x7bb4" identifier = (binary_expression "pppcVar37 + 0x7bb4" identifier + number_literal)) ;) (expression_statement "ppcVar22 = pppcVar37[0x5ce7];" (assignment_expression "ppcVar22 = pppcVar37[0x5ce7]" identifier = (subscript_expression "pppcVar37[0x5ce7]" identifier [ number_literal ])) ;) (expression_statement "pcStack_b34 = *ppcVar22;" (assignment_expression "pcStack_b34 = *ppcVar22" identifier = (pointer_expression "*ppcVar22" * identifier)) ;) (expression_statement "piVar19 = &iStack_b00;" (assignment_expression "piVar19 = &iStack_b00" identifier = (pointer_expression "&iStack_b00" & identifier)) ;) (expression_statement "piVar7 = piVar27;" (assignment_expression "piVar7 = piVar27" identifier = identifier) ;) (expression_statement "piStack_b2c = &iStack_b00;" (assignment_expression "piStack_b2c = &iStack_b00" identifier = (pointer_expression "&iStack_b00" & identifier)) ;) (expression_statement "pppcStack_b28 = pppcVar21;" (assignment_expression "pppcStack_b28 = pppcVar21" identifier = identifier) ;) (expression_statement "puStack_b24 = puVar6;" (assignment_expression "puStack_b24 = puVar6" identifier = identifier) ;) (expression_statement "piStack_b20 = piVar31;" (assignment_expression "piStack_b20 = piVar31" identifier = identifier) ;) (expression_statement "pcStack_b1c = pcVar32;" (assignment_expression "pcStack_b1c = pcVar32" identifier = identifier) ;) (if_statement "if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }" if (parenthesized_expression "((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d))" ( (binary_expression "(((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)" (parenthesized_expression "(((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18))" ( (binary_expression "((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)" (parenthesized_expression "((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))" ( (binary_expression "(*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f)" (parenthesized_expression "(*(byte *)((int)piVar11 + 2) - 1 < 0xc)" ( (binary_expression "*(byte *)((int)piVar11 + 2) - 1 < 0xc" (binary_expression "*(byte *)((int)piVar11 + 2) - 1" (pointer_expression "*(byte *)((int)piVar11 + 2)" * (cast_expression "(byte *)((int)piVar11 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 2)" ( (binary_expression "(int)piVar11 + 2" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - number_literal) < number_literal) )) && (parenthesized_expression "(piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f)" ( (comma_expression "piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f" (assignment_expression "piVar19 = piVar11" identifier = identifier) , (binary_expression "(byte)*piVar11 - 1 < 0x1f" (binary_expression "(byte)*piVar11 - 1" (binary_expression "(byte)*piVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier) - number_literal) < number_literal)) ))) )) && (parenthesized_expression "(*(byte *)(piVar11 + 1) < 0x18)" ( (binary_expression "*(byte *)(piVar11 + 1) < 0x18" (pointer_expression "*(byte *)(piVar11 + 1)" * (cast_expression "(byte *)(piVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11 + 1)" ( (binary_expression "piVar11 + 1" identifier + number_literal) )))) < number_literal) ))) )) && (parenthesized_expression "(*(byte *)((int)piVar11 + 6) < 0x3d)" ( (binary_expression "*(byte *)((int)piVar11 + 6) < 0x3d" (pointer_expression "*(byte *)((int)piVar11 + 6)" * (cast_expression "(byte *)((int)piVar11 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 6)" ( (binary_expression "(int)piVar11 + 6" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }" { (expression_statement "piVar31 = &uStack_b3c;" (assignment_expression "piVar31 = &uStack_b3c" identifier = (pointer_expression "&uStack_b3c" & identifier)) ;) (expression_statement "(*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);" (call_expression "(*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11)" (parenthesized_expression "(*(code *)pppcVar37[0x5c80])" ( (pointer_expression "*(code *)pppcVar37[0x5c80]" * (cast_expression "(code *)pppcVar37[0x5c80]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppcVar37[0x5c80]" identifier [ number_literal ]))) )) (argument_list "(piVar31,*(undefined2 *)piVar11)" ( identifier , (pointer_expression "*(undefined2 *)piVar11" * (cast_expression "(undefined2 *)piVar11" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "uStack_b36 = *(undefined1 *)((int)piVar11 + 6);" (assignment_expression "uStack_b36 = *(undefined1 *)((int)piVar11 + 6)" identifier = (pointer_expression "*(undefined1 *)((int)piVar11 + 6)" * (cast_expression "(undefined1 *)((int)piVar11 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 6)" ( (binary_expression "(int)piVar11 + 6" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "ppcVar12 = (code **)0x74494d45;" (assignment_expression "ppcVar12 = (code **)0x74494d45" identifier = (cast_expression "(code **)0x74494d45" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "uStack_b3c._2_2_ = (undefined2)*piVar11;" (assignment_expression "uStack_b3c._2_2_ = (undefined2)*piVar11" (field_expression "uStack_b3c._2_2_" identifier . field_identifier) = (binary_expression "(undefined2)*piVar11" (parenthesized_expression "(undefined2)" ( identifier )) * identifier)) ;) (expression_statement "uStack_b38 = *(undefined2 *)(piVar11 + 1);" (assignment_expression "uStack_b38 = *(undefined2 *)(piVar11 + 1)" identifier = (pointer_expression "*(undefined2 *)(piVar11 + 1)" * (cast_expression "(undefined2 *)(piVar11 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11 + 1)" ( (binary_expression "piVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "piVar15 = piVar31;" (assignment_expression "piVar15 = piVar31" identifier = identifier) ;) (expression_statement "FUN_00039d28();" (call_expression "FUN_00039d28()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }" else (compound_statement "{\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }" { (expression_statement "ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;" (assignment_expression "ppcVar12 = pppcVar37[0x5bbf] + 0x9cb" identifier = (binary_expression "pppcVar37[0x5bbf] + 0x9cb" (subscript_expression "pppcVar37[0x5bbf]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(*(code *)pppcVar37[0x5cc8])();" (call_expression "(*(code *)pppcVar37[0x5cc8])()" (parenthesized_expression "(*(code *)pppcVar37[0x5cc8])" ( (pointer_expression "*(code *)pppcVar37[0x5cc8]" * (cast_expression "(code *)pppcVar37[0x5cc8]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppcVar37[0x5cc8]" identifier [ number_literal ]))) )) (argument_list "()" ( ))) ;) (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" identifier = identifier) ;) }))) (if_statement "if (pcStack_b34 == *ppcVar22) {\n    return;\n  }" if (parenthesized_expression "(pcStack_b34 == *ppcVar22)" ( (binary_expression "pcStack_b34 == *ppcVar22" identifier == (pointer_expression "*ppcVar22" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "ppcVar38 = pppcStack_b48[-0x1edb];" (assignment_expression "ppcVar38 = pppcStack_b48[-0x1edb]" identifier = (subscript_expression "pppcStack_b48[-0x1edb]" identifier [ number_literal ])) ;) (expression_statement "pcVar42 = FUN_0003c240;" (assignment_expression "pcVar42 = FUN_0003c240" identifier = identifier) ;) (expression_statement "(*(code *)ppcVar38)();" (call_expression "(*(code *)ppcVar38)()" (parenthesized_expression "(*(code *)ppcVar38)" ( (pointer_expression "*(code *)ppcVar38" * (cast_expression "(code *)ppcVar38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppcStack_b88 = ppcVar38 + 0x7b6c;" (assignment_expression "ppcStack_b88 = ppcVar38 + 0x7b6c" identifier = (binary_expression "ppcVar38 + 0x7b6c" identifier + number_literal)) ;) (expression_statement "pcVar32 = ppcVar38[0x5c9f];" (assignment_expression "pcVar32 = ppcVar38[0x5c9f]" identifier = (subscript_expression "ppcVar38[0x5c9f]" identifier [ number_literal ])) ;) (expression_statement "piVar7[0xc9] = (int)ppcVar12;" (assignment_expression "piVar7[0xc9] = (int)ppcVar12" (subscript_expression "piVar7[0xc9]" identifier [ number_literal ]) = (cast_expression "(int)ppcVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iStack_b74 = *(int *)pcVar32;" (assignment_expression "iStack_b74 = *(int *)pcVar32" identifier = (pointer_expression "*(int *)pcVar32" * (cast_expression "(int *)pcVar32" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piStack_b6c = piVar11;" (assignment_expression "piStack_b6c = piVar11" identifier = identifier) ;) (expression_statement "ppcStack_b68 = ppcVar22;" (assignment_expression "ppcStack_b68 = ppcVar22" identifier = identifier) ;) (expression_statement "piStack_b64 = piVar27;" (assignment_expression "piStack_b64 = piVar27" identifier = identifier) ;) (expression_statement "piStack_b60 = piVar31;" (assignment_expression "piStack_b60 = piVar31" identifier = identifier) ;) (expression_statement "pcStack_b5c = pcVar42;" (assignment_expression "pcStack_b5c = pcVar42" identifier = identifier) ;) (expression_statement "(*ppcVar38[0x5c68])(auStack_b7c);" (call_expression "(*ppcVar38[0x5c68])(auStack_b7c)" (parenthesized_expression "(*ppcVar38[0x5c68])" ( (pointer_expression "*ppcVar38[0x5c68]" * (subscript_expression "ppcVar38[0x5c68]" identifier [ number_literal ])) )) (argument_list "(auStack_b7c)" ( identifier ))) ;) (expression_statement "(*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);" (call_expression "(*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15)" (parenthesized_expression "(*ppcStack_b88[0xffffe0fc])" ( (pointer_expression "*ppcStack_b88[0xffffe0fc]" * (subscript_expression "ppcStack_b88[0xffffe0fc]" identifier [ number_literal ])) )) (argument_list "(auStack_b78,piVar15)" ( identifier , identifier ))) ;) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "iVar1 = 0x6163544c;" (assignment_expression "iVar1 = 0x6163544c" identifier = number_literal) ;) (expression_statement "piVar31 = piVar7;" (assignment_expression "piVar31 = piVar7" identifier = identifier) ;) (expression_statement "puVar17 = auStack_b7c;" (assignment_expression "puVar17 = auStack_b7c" identifier = identifier) ;) (expression_statement "FUN_00039d28();" (call_expression "FUN_00039d28()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }" if (parenthesized_expression "(iStack_b74 == *(int *)pcVar32)" ( (binary_expression "iStack_b74 == *(int *)pcVar32" identifier == (pointer_expression "*(int *)pcVar32" * (cast_expression "(int *)pcVar32" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = ppcStack_b88[0xffffe125];" (assignment_expression "pcVar39 = ppcStack_b88[0xffffe125]" identifier = (subscript_expression "ppcStack_b88[0xffffe125]" identifier [ number_literal ])) ;) (expression_statement "uVar43 = 0x3c310;" (assignment_expression "uVar43 = 0x3c310" identifier = number_literal) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar42 = pcVar39 + 0x1ece0;" (assignment_expression "pcVar42 = pcVar39 + 0x1ece0" identifier = (binary_expression "pcVar39 + 0x1ece0" identifier + number_literal)) ;) (expression_statement "puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);" (assignment_expression "puVar30 = *(undefined4 **)(pcVar39 + 0x171ac)" identifier = (pointer_expression "*(undefined4 **)(pcVar39 + 0x171ac)" * (cast_expression "(undefined4 **)(pcVar39 + 0x171ac)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x171ac)" ( (binary_expression "pcVar39 + 0x171ac" identifier + number_literal) ))))) ;) (expression_statement "piVar27 = (int *)*puVar30;" (assignment_expression "piVar27 = (int *)*puVar30" identifier = (cast_expression "(int *)*puVar30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar30" * identifier))) ;) (expression_statement "uVar28 = (uint)uStack_b7e;" (assignment_expression "uVar28 = (uint)uStack_b7e" identifier = (cast_expression "(uint)uStack_b7e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcStack_bf0 = pcVar42;" (assignment_expression "pcStack_bf0 = pcVar42" identifier = identifier) ;) (expression_statement "piStack_bc4 = piVar27;" (assignment_expression "piStack_bc4 = piVar27" identifier = identifier) ;) (expression_statement "puStack_bc0 = auStack_b7c;" (assignment_expression "puStack_bc0 = auStack_b7c" identifier = identifier) ;) (expression_statement "piStack_bbc = piVar7;" (assignment_expression "piStack_bbc = piVar7" identifier = identifier) ;) (expression_statement "pcStack_bb8 = pcVar32;" (assignment_expression "pcStack_bb8 = pcVar32" identifier = identifier) ;) (expression_statement "piStack_bb4 = piVar15;" (assignment_expression "piStack_bb4 = piVar15" identifier = identifier) ;) (expression_statement "ppppppcStack_bb0 = ppppppcVar14;" (assignment_expression "ppppppcStack_bb0 = ppppppcVar14" identifier = identifier) ;) (expression_statement "piStack_bac = piVar5;" (assignment_expression "piStack_bac = piVar5" identifier = identifier) ;) (expression_statement "ppppppcStack_ba8 = ppppppcVar33;" (assignment_expression "ppppppcStack_ba8 = ppppppcVar33" identifier = identifier) ;) (expression_statement "pppppppcStack_ba4 = pppppppcVar9;" (assignment_expression "pppppppcStack_ba4 = pppppppcVar9" identifier = identifier) ;) (expression_statement "piStack_ba0 = piVar20;" (assignment_expression "piStack_ba0 = piVar20" identifier = identifier) ;) (expression_statement "uStack_b9c = uVar43;" (assignment_expression "uStack_b9c = uVar43" identifier = identifier) ;) (if_statement "if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }" if (parenthesized_expression "(piVar31[0xca] == 0)" ( (binary_expression "piVar31[0xca] == 0" (subscript_expression "piVar31[0xca]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }" { (if_statement "if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }" if (parenthesized_expression "(iVar8 == 0 && ppcStack_b88 == (code **)0x0)" ( (binary_expression "iVar8 == 0 && ppcStack_b88 == (code **)0x0" (binary_expression "iVar8 == 0" identifier == number_literal) && (binary_expression "ppcStack_b88 == (code **)0x0" identifier == (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) )) (compound_statement "{\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }" { (if_statement "if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;" if (parenthesized_expression "((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17))" ( (binary_expression "(piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)" (parenthesized_expression "(piVar31[0xc4] == iVar1)" ( (binary_expression "piVar31[0xc4] == iVar1" (subscript_expression "piVar31[0xc4]" identifier [ number_literal ]) == identifier) )) && (parenthesized_expression "((undefined1 *)piVar31[0xc5] == puVar17)" ( (binary_expression "(undefined1 *)piVar31[0xc5] == puVar17" (cast_expression "(undefined1 *)piVar31[0xc5]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar31[0xc5]" identifier [ number_literal ])) == identifier) ))) )) (goto_statement "goto LAB_0003c3a8;" goto statement_identifier ;)) }) (else_clause "else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }" else (compound_statement "{\n      (**(code **)(pcVar39 + 0x170fc))();\n    }" { (expression_statement "(**(code **)(pcVar39 + 0x170fc))();" (call_expression "(**(code **)(pcVar39 + 0x170fc))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x170fc))" ( (pointer_expression "**(code **)(pcVar39 + 0x170fc)" * (pointer_expression "*(code **)(pcVar39 + 0x170fc)" * (cast_expression "(code **)(pcVar39 + 0x170fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x170fc)" ( (binary_expression "pcVar39 + 0x170fc" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;" (assignment_expression "iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784" identifier = (binary_expression "*(int *)(pcVar39 + 0x16d0c) + 0x2784" (pointer_expression "*(int *)(pcVar39 + 0x16d0c)" * (cast_expression "(int *)(pcVar39 + 0x16d0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x16d0c)" ( (binary_expression "pcVar39 + 0x16d0c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "piVar20 = piVar31;" (assignment_expression "piVar20 = piVar31" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar39 + 0x170fc))();" (call_expression "(**(code **)(pcVar39 + 0x170fc))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x170fc))" ( (pointer_expression "**(code **)(pcVar39 + 0x170fc)" * (pointer_expression "*(code **)(pcVar39 + 0x170fc)" * (cast_expression "(code **)(pcVar39 + 0x170fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x170fc)" ( (binary_expression "pcVar39 + 0x170fc" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }" else (compound_statement "{\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }" { (labeled_statement "LAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;" statement_identifier : (expression_statement "ppcStack_c08 = ppcStack_b88;" (assignment_expression "ppcStack_c08 = ppcStack_b88" identifier = identifier) ;)) (expression_statement "uStack_c04 = (uint)uStack_b82;" (assignment_expression "uStack_c04 = (uint)uStack_b82" identifier = (cast_expression "(uint)uStack_b82" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uStack_c00 = uVar28;" (assignment_expression "uStack_c00 = uVar28" identifier = identifier) ;) (expression_statement "uStack_bfc = (uint)bStack_b79;" (assignment_expression "uStack_bfc = (uint)bStack_b79" identifier = (cast_expression "(uint)bStack_b79" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uStack_bf8 = (uint)bStack_b75;" (assignment_expression "uStack_bf8 = (uint)bStack_b75" identifier = (cast_expression "(uint)bStack_b75" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uStack_be4 = (uint)uStack_b82;" (assignment_expression "uStack_be4 = (uint)uStack_b82" identifier = (cast_expression "(uint)uStack_b82" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "FUN_00033984(piVar31,iVar1,puVar17,iVar8);" (call_expression "FUN_00033984(piVar31,iVar1,puVar17,iVar8)" identifier (argument_list "(piVar31,iVar1,puVar17,iVar8)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3])" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" * (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7c10)" ( (binary_expression "pcStack_bf0 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(&iStack_be0,piVar31[0xc3])" ( (pointer_expression "&iStack_be0" & identifier) , (subscript_expression "piVar31[0xc3]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" * (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7c10)" ( (binary_expression "pcStack_bf0 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(auStack_bdc,iVar1)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" * (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7c10)" ( (binary_expression "pcStack_bf0 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(auStack_bd8,puVar17)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" * (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7c10)" ( (binary_expression "pcStack_bf0 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(auStack_bd4,iVar8)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" * (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7c10)" ( (binary_expression "pcStack_bf0 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(auStack_bd0,ppcStack_b88)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);" (call_expression "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7cd0))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7cd0)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7cd0)" * (cast_expression "(code **)(pcStack_bf0 + -0x7cd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7cd0)" ( (binary_expression "pcStack_bf0 + -0x7cd0" identifier + number_literal) ))))) )) (argument_list "(auStack_bcc,uStack_be4)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);" (call_expression "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7cd0))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7cd0)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7cd0)" * (cast_expression "(code **)(pcStack_bf0 + -0x7cd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7cd0)" ( (binary_expression "pcStack_bf0 + -0x7cd0" identifier + number_literal) ))))) )) (argument_list "(auStack_bca,uVar28)" ( identifier , identifier ))) ;) (expression_statement "iVar8 = 0x1a;" (assignment_expression "iVar8 = 0x1a" identifier = number_literal) ;) (expression_statement "iVar13 = 0x6663544c;" (assignment_expression "iVar13 = 0x6663544c" identifier = number_literal) ;) (expression_statement "bStack_bc8 = bStack_b79;" (assignment_expression "bStack_bc8 = bStack_b79" identifier = identifier) ;) (expression_statement "bStack_bc7 = bStack_b75;" (assignment_expression "bStack_bc7 = bStack_b75" identifier = identifier) ;) (expression_statement "piVar27 = &iStack_be0;" (assignment_expression "piVar27 = &iStack_be0" identifier = (pointer_expression "&iStack_be0" & identifier)) ;) (expression_statement "FUN_00039d28(piVar31);" (call_expression "FUN_00039d28(piVar31)" identifier (argument_list "(piVar31)" ( identifier ))) ;) (expression_statement "piVar5 = (int *)*puVar30;" (assignment_expression "piVar5 = (int *)*puVar30" identifier = (cast_expression "(int *)*puVar30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar30" * identifier))) ;) (expression_statement "piVar31[0xc3] = piVar31[0xc3] + 1;" (assignment_expression "piVar31[0xc3] = piVar31[0xc3] + 1" (subscript_expression "piVar31[0xc3]" identifier [ number_literal ]) = (binary_expression "piVar31[0xc3] + 1" (subscript_expression "piVar31[0xc3]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar20 = piStack_bc4;" (assignment_expression "piVar20 = piStack_bc4" identifier = identifier) ;) (expression_statement "piVar7 = &iStack_be0;" (assignment_expression "piVar7 = &iStack_be0" identifier = (pointer_expression "&iStack_be0" & identifier)) ;) (expression_statement "pcVar42 = pcStack_bf0;" (assignment_expression "pcVar42 = pcStack_bf0" identifier = identifier) ;) (if_statement "if (piStack_bc4 == piVar5) {\n      return;\n    }" if (parenthesized_expression "(piStack_bc4 == piVar5)" ( (binary_expression "piStack_bc4 == piVar5" identifier == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "pcVar32 = *(code **)(pcVar42 + -0x7b6c);" (assignment_expression "pcVar32 = *(code **)(pcVar42 + -0x7b6c)" identifier = (pointer_expression "*(code **)(pcVar42 + -0x7b6c)" * (cast_expression "(code **)(pcVar42 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar42 + -0x7b6c)" ( (binary_expression "pcVar42 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar42 = FUN_0003c510;" (assignment_expression "pcVar42 = FUN_0003c510" identifier = identifier) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar5 = *(int **)(pcVar32 + 0x16fac);" (assignment_expression "piVar5 = *(int **)(pcVar32 + 0x16fac)" identifier = (pointer_expression "*(int **)(pcVar32 + 0x16fac)" * (cast_expression "(int **)(pcVar32 + 0x16fac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16fac)" ( (binary_expression "pcVar32 + 0x16fac" identifier + number_literal) ))))) ;) (expression_statement "iStack_c34 = *piVar5;" (assignment_expression "iStack_c34 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "piStack_c30 = piVar31;" (assignment_expression "piStack_c30 = piVar31" identifier = identifier) ;) (expression_statement "piStack_c2c = piVar7;" (assignment_expression "piStack_c2c = piVar7" identifier = identifier) ;) (expression_statement "puStack_c28 = puVar17;" (assignment_expression "puStack_c28 = puVar17" identifier = identifier) ;) (expression_statement "iStack_c24 = iVar1;" (assignment_expression "iStack_c24 = iVar1" identifier = identifier) ;) (expression_statement "uStack_c20 = uVar28;" (assignment_expression "uStack_c20 = uVar28" identifier = identifier) ;) (expression_statement "pcStack_c1c = pcVar42;" (assignment_expression "pcStack_c1c = pcVar42" identifier = identifier) ;) (if_statement "if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }" if (parenthesized_expression "(piVar20 != (int *)0x0)" ( (binary_expression "piVar20 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00039938();\n  }" { (expression_statement "FUN_00039938();" (call_expression "FUN_00039938()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);" (call_expression "(**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3])" (parenthesized_expression "(**(code **)(pcVar32 + 0x16ed0))" ( (pointer_expression "**(code **)(pcVar32 + 0x16ed0)" * (pointer_expression "*(code **)(pcVar32 + 0x16ed0)" * (cast_expression "(code **)(pcVar32 + 0x16ed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16ed0)" ( (binary_expression "pcVar32 + 0x16ed0" identifier + number_literal) ))))) )) (argument_list "(auStack_c38,piVar20[0xc3])" ( identifier , (subscript_expression "piVar20[0xc3]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);" (call_expression "(**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16fec))" ( (pointer_expression "**(code **)(pcVar32 + 0x16fec)" * (pointer_expression "*(code **)(pcVar32 + 0x16fec)" * (cast_expression "(code **)(pcVar32 + 0x16fec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16fec)" ( (binary_expression "pcVar32 + 0x16fec" identifier + number_literal) ))))) )) (argument_list "(piVar20,auStack_c38,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar32 + 0x16fec))(piVar20);" (call_expression "(**(code **)(pcVar32 + 0x16fec))(piVar20)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16fec))" ( (pointer_expression "**(code **)(pcVar32 + 0x16fec)" * (pointer_expression "*(code **)(pcVar32 + 0x16fec)" * (cast_expression "(code **)(pcVar32 + 0x16fec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16fec)" ( (binary_expression "pcVar32 + 0x16fec" identifier + number_literal) ))))) )) (argument_list "(piVar20)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar32 + 0x16ef8))(piVar20);" (call_expression "(**(code **)(pcVar32 + 0x16ef8))(piVar20)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16ef8))" ( (pointer_expression "**(code **)(pcVar32 + 0x16ef8)" * (pointer_expression "*(code **)(pcVar32 + 0x16ef8)" * (cast_expression "(code **)(pcVar32 + 0x16ef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16ef8)" ( (binary_expression "pcVar32 + 0x16ef8" identifier + number_literal) ))))) )) (argument_list "(piVar20)" ( identifier ))) ;) (expression_statement "iVar1 = *piVar5;" (assignment_expression "iVar1 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "piVar20[0xc3] = piVar20[0xc3] + 1;" (assignment_expression "piVar20[0xc3] = piVar20[0xc3] + 1" (subscript_expression "piVar20[0xc3]" identifier [ number_literal ]) = (binary_expression "piVar20[0xc3] + 1" (subscript_expression "piVar20[0xc3]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (iStack_c34 == iVar1) {\n    return;\n  }" if (parenthesized_expression "(iStack_c34 == iVar1)" ( (binary_expression "iStack_c34 == iVar1" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar32 = *(code **)(pcVar32 + 0x16f74);" (assignment_expression "pcVar32 = *(code **)(pcVar32 + 0x16f74)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16f74)" * (cast_expression "(code **)(pcVar32 + 0x16f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16f74)" ( (binary_expression "pcVar32 + 0x16f74" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = iStack_c34;" (assignment_expression "iVar1 = iStack_c34" identifier = identifier) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;" if (parenthesized_expression "(*(int *)(iVar1 + 0x130) == 0x49444154)" ( (binary_expression "*(int *)(iVar1 + 0x130) == 0x49444154" (pointer_expression "*(int *)(iVar1 + 0x130)" * (cast_expression "(int *)(iVar1 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x130)" ( (binary_expression "iVar1 + 0x130" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0003c6d0;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;" if (parenthesized_expression "(*(int *)(iVar1 + 0x16c) == 0)" ( (binary_expression "*(int *)(iVar1 + 0x16c) == 0" (pointer_expression "*(int *)(iVar1 + 0x16c)" * (cast_expression "(int *)(iVar1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x16c)" ( (binary_expression "iVar1 + 0x16c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0003c8fc;" goto statement_identifier ;)) (expression_statement "FUN_00039dec();" (call_expression "FUN_00039dec()" identifier (argument_list "()" ( ))) ;) (while_statement "while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }" { (expression_statement "uVar43 = FUN_00039150(iVar1);" (assignment_expression "uVar43 = FUN_00039150(iVar1)" identifier = (call_expression "FUN_00039150(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);" (assignment_expression "iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43)" identifier = (call_expression "FUN_000392b8(iVar1,0x49444154,uVar43)" identifier (argument_list "(iVar1,0x49444154,uVar43)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) break;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);" (assignment_expression "*(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170)" (pointer_expression "*(undefined4 *)(iVar1 + 0x144)" * (cast_expression "(undefined4 *)(iVar1 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x144)" ( (binary_expression "iVar1 + 0x144" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x170)" * (cast_expression "(undefined4 *)(iVar1 + 0x170)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x170)" ( (binary_expression "iVar1 + 0x170" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;" (assignment_expression "*(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x140)" * (cast_expression "(int *)(iVar1 + 0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x140)" ( (binary_expression "iVar1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x16c)" * (cast_expression "(int *)(iVar1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x16c)" ( (binary_expression "iVar1 + 0x16c" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;" statement_identifier : (expression_statement "*(int *)(iVar1 + 0x134) = iVar13;" (assignment_expression "*(int *)(iVar1 + 0x134) = iVar13" (pointer_expression "*(int *)(iVar1 + 0x134)" * (cast_expression "(int *)(iVar1 + 0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x134)" ( (binary_expression "iVar1 + 0x134" identifier + number_literal) )))) = identifier) ;)) (do_statement "do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);" do (compound_statement "{\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    }" { (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16e48);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16e48)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16e48)" * (cast_expression "(code **)(pcVar32 + 0x16e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16e48)" ( (binary_expression "pcVar32 + 0x16e48" identifier + number_literal) ))))) ;) (do_statement "do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);" do (compound_statement "{\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      }" { (expression_statement "*(int **)(iVar1 + 0x138) = piVar27;" (assignment_expression "*(int **)(iVar1 + 0x138) = piVar27" (pointer_expression "*(int **)(iVar1 + 0x138)" * (cast_expression "(int **)(iVar1 + 0x138)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x138)" ( (binary_expression "iVar1 + 0x138" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);" (assignment_expression "iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8)" identifier = (call_expression "(*pcVar42)(iVar1 + 0x134,iVar8)" (parenthesized_expression "(*pcVar42)" ( (pointer_expression "*pcVar42" * identifier) )) (argument_list "(iVar1 + 0x134,iVar8)" ( (binary_expression "iVar1 + 0x134" identifier + number_literal) , identifier )))) ;) (expression_statement "piVar27 = *(int **)(iVar1 + 0x138);" (assignment_expression "piVar27 = *(int **)(iVar1 + 0x138)" identifier = (pointer_expression "*(int **)(iVar1 + 0x138)" * (cast_expression "(int **)(iVar1 + 0x138)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x138)" ( (binary_expression "iVar1 + 0x138" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x138) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x138) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x138)" * (cast_expression "(undefined4 *)(iVar1 + 0x138)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x138)" ( (binary_expression "iVar1 + 0x138" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }" if (parenthesized_expression "(*(int *)(iVar1 + 0x144) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x144) != 0" (pointer_expression "*(int *)(iVar1 + 0x144)" * (cast_expression "(int *)(iVar1 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x144)" ( (binary_expression "iVar1 + 0x144" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }" { (if_statement "if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }" { (labeled_statement "LAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;" statement_identifier : (if_statement "if (iVar13 != 1) goto LAB_0003c944;" if (parenthesized_expression "(iVar13 != 1)" ( (binary_expression "iVar13 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0003c944;" goto statement_identifier ;))) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16bc8);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16bc8)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16bc8)" * (cast_expression "(code **)(pcVar32 + 0x16bc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16bc8)" ( (binary_expression "pcVar32 + 0x16bc8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }" if (parenthesized_expression "(iVar8 == 4)" ( (binary_expression "iVar8 == 4" identifier == number_literal) )) (compound_statement "{\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }" { (expression_statement "iVar13 = *(int *)(iVar1 + 0x16c) + 4;" (assignment_expression "iVar13 = *(int *)(iVar1 + 0x16c) + 4" identifier = (binary_expression "*(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x16c)" * (cast_expression "(int *)(iVar1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x16c)" ( (binary_expression "iVar1 + 0x16c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144)" identifier = (binary_expression "*(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144)" (pointer_expression "*(int *)(iVar1 + 0x170)" * (cast_expression "(int *)(iVar1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x170)" ( (binary_expression "iVar1 + 0x170" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar1 + 0x144)" * (cast_expression "(int *)(iVar1 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x144)" ( (binary_expression "iVar1 + 0x144" identifier + number_literal) )))))) ;) (if_statement "if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }" if (parenthesized_expression "((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001))" ( (binary_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" (parenthesized_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0'))" ( (binary_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')" (parenthesized_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar1 + 0x124) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x124) & 4)" ( (binary_expression "*(uint *)(iVar1 + 0x124) & 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(char *)(iVar1 + 0x348) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x348) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x348)" * (cast_expression "(char *)(iVar1 + 0x348)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x348)" ( (binary_expression "iVar1 + 0x348" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" ( (comma_expression "uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001" (assignment_expression "uVar28 = FUN_00039150(iVar1)" identifier = (call_expression "FUN_00039150(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) , (binary_expression "uVar28 < 0x4001" identifier < number_literal)) ))) )) (compound_statement "{\n                FUN_000395ac(iVar13,uVar28);\n              }" { (expression_statement "FUN_000395ac(iVar13,uVar28);" (call_expression "FUN_000395ac(iVar13,uVar28)" identifier (argument_list "(iVar13,uVar28)" ( identifier , identifier ))) ;) })) (if_statement "if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" { (expression_statement "uVar28 = *(uint *)(iVar1 + 0x124);" (assignment_expression "uVar28 = *(uint *)(iVar1 + 0x124)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) ))))) ;) }) (else_clause "else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" else (if_statement "if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" if (parenthesized_expression "(*(int *)(iVar1 + 0x328) == 0)" ( (binary_expression "*(int *)(iVar1 + 0x328) == 0" (pointer_expression "*(int *)(iVar1 + 0x328)" * (cast_expression "(int *)(iVar1 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x328)" ( (binary_expression "iVar1 + 0x328" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" { (expression_statement "FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);" (call_expression "FUN_00039d28(iVar1,0x49444154,iVar13,iVar8)" identifier (argument_list "(iVar1,0x49444154,iVar13,iVar8)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar28 = *(uint *)(iVar1 + 0x124);" (assignment_expression "uVar28 = *(uint *)(iVar1 + 0x124)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" else (compound_statement "{\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" { (expression_statement "FUN_0003c510(iVar1,iVar13,iVar8);" (call_expression "FUN_0003c510(iVar1,iVar13,iVar8)" identifier (argument_list "(iVar1,iVar13,iVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar28 = *(uint *)(iVar1 + 0x124);" (assignment_expression "uVar28 = *(uint *)(iVar1 + 0x124)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) ))))) ;) }))))) (expression_statement "*(undefined4 *)(iVar1 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x144)" * (cast_expression "(undefined4 *)(iVar1 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x144)" ( (binary_expression "iVar1 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x140) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x140) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x140)" * (cast_expression "(undefined4 *)(iVar1 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x140)" ( (binary_expression "iVar1 + 0x140" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x130)" * (cast_expression "(undefined4 *)(iVar1 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x130)" ( (binary_expression "iVar1 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar1 + 0x124) = uVar28 | 0xc;" (assignment_expression "*(uint *)(iVar1 + 0x124) = uVar28 | 0xc" (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) = (binary_expression "uVar28 | 0xc" identifier | number_literal)) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0003c948;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar41 = *(int *)(iVar1 + 0x170);" (assignment_expression "iVar41 = *(int *)(iVar1 + 0x170)" identifier = (pointer_expression "*(int *)(iVar1 + 0x170)" * (cast_expression "(int *)(iVar1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x170)" ( (binary_expression "iVar1 + 0x170" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar1 + 0x16c) + 4;" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x16c) + 4" identifier = (binary_expression "*(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x16c)" * (cast_expression "(int *)(iVar1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x16c)" ( (binary_expression "iVar1 + 0x16c" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }" if (parenthesized_expression "((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001))" ( (binary_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" (parenthesized_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0'))" ( (binary_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')" (parenthesized_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar1 + 0x124) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x124) & 4)" ( (binary_expression "*(uint *)(iVar1 + 0x124) & 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(char *)(iVar1 + 0x348) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x348) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x348)" * (cast_expression "(char *)(iVar1 + 0x348)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x348)" ( (binary_expression "iVar1 + 0x348" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" ( (comma_expression "uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001" (assignment_expression "uVar28 = FUN_00039150(iVar1)" identifier = (call_expression "FUN_00039150(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) , (binary_expression "uVar28 < 0x4001" identifier < number_literal)) ))) )) (compound_statement "{\n          FUN_000395ac(iVar3,uVar28);\n        }" { (expression_statement "FUN_000395ac(iVar3,uVar28);" (call_expression "FUN_000395ac(iVar3,uVar28)" identifier (argument_list "(iVar3,uVar28)" ( identifier , identifier ))) ;) })) (if_statement "if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }" if (parenthesized_expression "(iVar41 != 0)" ( (binary_expression "iVar41 != 0" identifier != number_literal) )) (compound_statement "{\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }" { (if_statement "if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }" if (parenthesized_expression "(*(int *)(iVar1 + 0x328) == 0)" ( (binary_expression "*(int *)(iVar1 + 0x328) == 0" (pointer_expression "*(int *)(iVar1 + 0x328)" * (cast_expression "(int *)(iVar1 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x328)" ( (binary_expression "iVar1 + 0x328" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }" { (expression_statement "FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);" (call_expression "FUN_00039d28(iVar1,0x49444154,iVar3,iVar41)" identifier (argument_list "(iVar1,0x49444154,iVar3,iVar41)" ( identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }" else (compound_statement "{\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }" { (expression_statement "FUN_0003c510(iVar1,iVar3,iVar41);" (call_expression "FUN_0003c510(iVar1,iVar3,iVar41)" identifier (argument_list "(iVar1,iVar3,iVar41)" ( identifier , identifier , identifier ))) ;) }))) })) (expression_statement "*(int *)(iVar1 + 0x140) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0x140) = iVar3" (pointer_expression "*(int *)(iVar1 + 0x140)" * (cast_expression "(int *)(iVar1 + 0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x140)" ( (binary_expression "iVar1 + 0x140" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar1 + 0x144) = iVar41;" (assignment_expression "*(int *)(iVar1 + 0x144) = iVar41" (pointer_expression "*(int *)(iVar1 + 0x144)" * (cast_expression "(int *)(iVar1 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x144)" ( (binary_expression "iVar1 + 0x144" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;" (assignment_expression "*(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar1 + 0x124) | 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (iVar13 != 0) goto LAB_0003c7d4;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003c7d4;" goto statement_identifier ;)) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16e48);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16e48)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16e48)" * (cast_expression "(code **)(pcVar32 + 0x16e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16e48)" ( (binary_expression "pcVar32 + 0x16e48" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) }) while (parenthesized_expression "(piVar27 != (int *)0x0)" ( (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (iVar8 != 4) {\n      return;\n    }" if (parenthesized_expression "(iVar8 != 4)" ( (binary_expression "iVar8 != 4" identifier != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);" (call_expression "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16dfc))" ( (pointer_expression "**(code **)(pcVar32 + 0x16dfc)" * (pointer_expression "*(code **)(pcVar32 + 0x16dfc)" * (cast_expression "(code **)(pcVar32 + 0x16dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16dfc)" ( (binary_expression "pcVar32 + 0x16dfc" identifier + number_literal) ))))) )) (argument_list "(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0)" ( identifier , (binary_expression "*(int *)(pcVar32 + 0x16a0c) + 0x27d0" (pointer_expression "*(int *)(pcVar32 + 0x16a0c)" * (cast_expression "(int *)(pcVar32 + 0x16a0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x16a0c)" ( (binary_expression "pcVar32 + 0x16a0c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();" statement_identifier : (expression_statement "puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();" (assignment_expression "puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar32 + 0x16cf8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x16cf8))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x16cf8))" ( (pointer_expression "**(code **)(pcVar32 + 0x16cf8)" * (pointer_expression "*(code **)(pcVar32 + 0x16cf8)" * (cast_expression "(code **)(pcVar32 + 0x16cf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16cf8)" ( (binary_expression "pcVar32 + 0x16cf8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "*(undefined4 **)(iVar1 + 0x16c) = puVar30;" (assignment_expression "*(undefined4 **)(iVar1 + 0x16c) = puVar30" (pointer_expression "*(undefined4 **)(iVar1 + 0x16c)" * (cast_expression "(undefined4 **)(iVar1 + 0x16c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x16c)" ( (binary_expression "iVar1 + 0x16c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar30 = 0;" (assignment_expression "*puVar30 = 0" (pointer_expression "*puVar30" * identifier) = number_literal) ;) })) (expression_statement "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));" (call_expression "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c))" (parenthesized_expression "(**(code **)(pcVar32 + 0x16dfc))" ( (pointer_expression "**(code **)(pcVar32 + 0x16dfc)" * (pointer_expression "*(code **)(pcVar32 + 0x16dfc)" * (cast_expression "(code **)(pcVar32 + 0x16dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16dfc)" ( (binary_expression "pcVar32 + 0x16dfc" identifier + number_literal) ))))) )) (argument_list "(iVar1,*(undefined4 *)(iVar1 + 0x14c))" ( identifier , (pointer_expression "*(undefined4 *)(iVar1 + 0x14c)" * (cast_expression "(undefined4 *)(iVar1 + 0x14c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14c)" ( (binary_expression "iVar1 + 0x14c" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);" statement_identifier : (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16bc8);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16bc8)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16bc8)" * (cast_expression "(code **)(pcVar32 + 0x16bc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16bc8)" ( (binary_expression "pcVar32 + 0x16bc8" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);" statement_identifier : (expression_statement "(*pcVar42)(iVar1,iVar13);" (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" ( (pointer_expression "*pcVar42" * identifier) )) (argument_list "(iVar1,iVar13)" ( identifier , identifier ))) ;)) (expression_statement "pcVar32 = *(code **)(pcVar32 + 0x16dfc);" (assignment_expression "pcVar32 = *(code **)(pcVar32 + 0x16dfc)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16dfc)" * (cast_expression "(code **)(pcVar32 + 0x16dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16dfc)" ( (binary_expression "pcVar32 + 0x16dfc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));" (call_expression "(*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c))" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar1,*(undefined4 *)(iVar1 + 0x14c))" ( identifier , (pointer_expression "*(undefined4 *)(iVar1 + 0x14c)" * (cast_expression "(undefined4 *)(iVar1 + 0x14c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14c)" ( (binary_expression "iVar1 + 0x14c" identifier + number_literal) )))) ))) ;) (expression_statement "uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);" (assignment_expression "uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201)" identifier = (binary_expression "(uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201)" (binary_expression "(uint)*(byte *)(iVar1 + 0x204) * (uint)" (binary_expression "(uint)*(byte *)(iVar1 + 0x204)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar1 + 0x204)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x204)" ( (binary_expression "iVar1 + 0x204" identifier + number_literal) )))) * (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(iVar1 + 0x201)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x201)" ( (binary_expression "iVar1 + 0x201" identifier + number_literal) ))))) ;) (if_statement "if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }" if (parenthesized_expression "(uVar28 < 8)" ( (binary_expression "uVar28 < 8" identifier < number_literal) )) (compound_statement "{\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }" { (expression_statement "uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;" (assignment_expression "uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3" identifier = (binary_expression "*(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3" (binary_expression "*(int *)(iVar1 + 0x1b0) * uVar28 + 7" (binary_expression "*(int *)(iVar1 + 0x1b0) * uVar28" (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) )))) * identifier) + number_literal) >> number_literal)) ;) }) (else_clause "else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }" else (compound_statement "{\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }" { (expression_statement "uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);" (assignment_expression "uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0)" identifier = (binary_expression "(uVar28 >> 3) * *(int *)(iVar1 + 0x1b0)" (parenthesized_expression "(uVar28 >> 3)" ( (binary_expression "uVar28 >> 3" identifier >> number_literal) )) * (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) )))))) ;) }))) (expression_statement "iVar13 = uVar23 + 1;" (assignment_expression "iVar13 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169a0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169a0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x169a0)" * (cast_expression "(code **)(pcVar32 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169a0)" ( (binary_expression "pcVar32 + 0x169a0" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(iVar1 + 0x206) = (char)uVar28;" (assignment_expression "*(char *)(iVar1 + 0x206) = (char)uVar28" (pointer_expression "*(char *)(iVar1 + 0x206)" * (cast_expression "(char *)(iVar1 + 0x206)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x206)" ( (binary_expression "iVar1 + 0x206" identifier + number_literal) )))) = (cast_expression "(char)uVar28" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);" (assignment_expression "*(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202)" (pointer_expression "*(undefined1 *)(iVar1 + 0x207)" * (cast_expression "(undefined1 *)(iVar1 + 0x207)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x207)" ( (binary_expression "iVar1 + 0x207" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar1 + 0x202)" * (cast_expression "(undefined1 *)(iVar1 + 0x202)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x202)" ( (binary_expression "iVar1 + 0x202" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);" (assignment_expression "puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13)" identifier = (cast_expression "(undefined1 *)(*pcVar42)(iVar1,iVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" ( (pointer_expression "*pcVar42" * identifier) )) (argument_list "(iVar1,iVar13)" ( identifier , identifier ))))) ;) (expression_statement "iVar8 = *(int *)(iVar1 + 0x1b4);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x1b4)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b4)" * (cast_expression "(int *)(iVar1 + 0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b4)" ( (binary_expression "iVar1 + 0x1b4" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);" (assignment_expression "uVar28 = (uint)*(byte *)(iVar1 + 0x1fe)" identifier = (binary_expression "(uint)*(byte *)(iVar1 + 0x1fe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar1 + 0x1fe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1fe)" ( (binary_expression "iVar1 + 0x1fe" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(iVar1 + 0x1d4) = puVar17;" (assignment_expression "*(undefined1 **)(iVar1 + 0x1d4) = puVar17" (pointer_expression "*(undefined1 **)(iVar1 + 0x1d4)" * (cast_expression "(undefined1 **)(iVar1 + 0x1d4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x1d4)" ( (binary_expression "iVar1 + 0x1d4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (if_statement "if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }" if (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar28 = uVar28 & 0x1f;\n  }" { (expression_statement "uVar28 = uVar28 & 0x1f;" (assignment_expression "uVar28 = uVar28 & 0x1f" identifier = (binary_expression "uVar28 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "iVar3 = *(int *)(iVar1 + 0x1b0);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x1b0)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar28 = uVar28 & 0x2f;\n  }" { (expression_statement "uVar28 = uVar28 & 0x2f;" (assignment_expression "uVar28 = uVar28 & 0x2f" identifier = (binary_expression "uVar28 & 0x2f" identifier & number_literal)) ;) })) (if_statement "if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }" { (expression_statement "*(undefined1 *)(iVar1 + 0x1fe) = 8;" (assignment_expression "*(undefined1 *)(iVar1 + 0x1fe) = 8" (pointer_expression "*(undefined1 *)(iVar1 + 0x1fe)" * (cast_expression "(undefined1 *)(iVar1 + 0x1fe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1fe)" ( (binary_expression "iVar1 + 0x1fe" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0003ca48;" goto statement_identifier ;) })) (expression_statement "cVar26 = (char)uVar28;" (assignment_expression "cVar26 = (char)uVar28" identifier = (cast_expression "(char)uVar28" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(iVar1 + 0x1fe) = cVar26;" (assignment_expression "*(char *)(iVar1 + 0x1fe) = cVar26" (pointer_expression "*(char *)(iVar1 + 0x1fe)" * (cast_expression "(char *)(iVar1 + 0x1fe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1fe)" ( (binary_expression "iVar1 + 0x1fe" identifier + number_literal) )))) = identifier) ;) (if_statement "if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }" if (parenthesized_expression "(((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0))" ( (binary_expression "((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)" (parenthesized_expression "((uVar28 & 0xf0) == 0)" ( (binary_expression "(uVar28 & 0xf0) == 0" (parenthesized_expression "(uVar28 & 0xf0)" ( (binary_expression "uVar28 & 0xf0" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar1 + 0x1d8) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x1d8) != 0" (pointer_expression "*(int *)(iVar1 + 0x1d8)" * (cast_expression "(int *)(iVar1 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1d8)" ( (binary_expression "iVar1 + 0x1d8" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }" { (labeled_statement "LAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);" statement_identifier : (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169c0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169c0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x169c0)" * (cast_expression "(code **)(pcVar32 + 0x169c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169c0)" ( (binary_expression "pcVar32 + 0x169c0" identifier + number_literal) ))))) ;)) (if_statement "if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }" if (parenthesized_expression "((uVar28 & 0xe0) == 0)" ( (binary_expression "(uVar28 & 0xe0) == 0" (parenthesized_expression "(uVar28 & 0xe0)" ( (binary_expression "uVar28 & 0xe0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }" { (expression_statement "iVar8 = *(int *)(iVar1 + 0x1b4);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x1b4)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b4)" * (cast_expression "(int *)(iVar1 + 0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b4)" ( (binary_expression "iVar1 + 0x1b4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar1 + 0x1b0);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x1b0)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003ca48;" goto statement_identifier ;) })) }) (else_clause "else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }" else (compound_statement "{\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }" { (expression_statement "uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);" (assignment_expression "uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13)" identifier = (call_expression "(**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13)" (parenthesized_expression "(**(code **)(pcVar32 + 0x169a0))" ( (pointer_expression "**(code **)(pcVar32 + 0x169a0)" * (pointer_expression "*(code **)(pcVar32 + 0x169a0)" * (cast_expression "(code **)(pcVar32 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169a0)" ( (binary_expression "pcVar32 + 0x169a0" identifier + number_literal) ))))) )) (argument_list "(iVar1,iVar13)" ( identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x1d8) = uVar43;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1d8) = uVar43" (pointer_expression "*(undefined4 *)(iVar1 + 0x1d8)" * (cast_expression "(undefined4 *)(iVar1 + 0x1d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1d8)" ( (binary_expression "iVar1 + 0x1d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);" (assignment_expression "iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f)" identifier = (unary_expression "-((int)(uVar28 << 0x1b) >> 0x1f)" - (parenthesized_expression "((int)(uVar28 << 0x1b) >> 0x1f)" ( (binary_expression "(int)(uVar28 << 0x1b) >> 0x1f" (cast_expression "(int)(uVar28 << 0x1b)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar28 << 0x1b)" ( (binary_expression "uVar28 << 0x1b" identifier << number_literal) ))) >> number_literal) )))) ;) (if_statement "if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }" if (parenthesized_expression "((uVar28 & 0x20) != 0)" ( (binary_expression "(uVar28 & 0x20) != 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar8 = iVar8 + 1;\n    }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) })) (if_statement "if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }" if (parenthesized_expression "((uVar28 & 0x40) != 0)" ( (binary_expression "(uVar28 & 0x40) != 0" (parenthesized_expression "(uVar28 & 0x40)" ( (binary_expression "uVar28 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (-1 < cVar26) goto LAB_0003cb38;" if (parenthesized_expression "(-1 < cVar26)" ( (binary_expression "-1 < cVar26" number_literal < identifier) )) (goto_statement "goto LAB_0003cb38;" goto statement_identifier ;)) (labeled_statement "LAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);" statement_identifier : (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169a0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169a0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x169a0)" * (cast_expression "(code **)(pcVar32 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169a0)" ( (binary_expression "pcVar32 + 0x169a0" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);" statement_identifier : (expression_statement "uVar43 = (*pcVar42)(iVar1,iVar13);" (assignment_expression "uVar43 = (*pcVar42)(iVar1,iVar13)" identifier = (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" ( (pointer_expression "*pcVar42" * identifier) )) (argument_list "(iVar1,iVar13)" ( identifier , identifier )))) ;)) (expression_statement "*(undefined4 *)(iVar1 + 0x1dc) = uVar43;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1dc) = uVar43" (pointer_expression "*(undefined4 *)(iVar1 + 0x1dc)" * (cast_expression "(undefined4 *)(iVar1 + 0x1dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1dc)" ( (binary_expression "iVar1 + 0x1dc" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0003ca24;" goto statement_identifier ;) })) (if_statement "if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }" if (parenthesized_expression "(-1 < cVar26)" ( (binary_expression "-1 < cVar26" number_literal < identifier) )) (compound_statement "{\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }" { (labeled_statement "LAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);" statement_identifier : (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169a0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169a0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x169a0)" * (cast_expression "(code **)(pcVar32 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169a0)" ( (binary_expression "pcVar32 + 0x169a0" identifier + number_literal) ))))) ;)) (if_statement "if (iVar8 < 2) goto LAB_0003ca24;" if (parenthesized_expression "(iVar8 < 2)" ( (binary_expression "iVar8 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0003ca24;" goto statement_identifier ;)) (goto_statement "goto LAB_0003cb10;" goto statement_identifier ;) })) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169c0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169c0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x169c0)" * (cast_expression "(code **)(pcVar32 + 0x169c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169c0)" ( (binary_expression "pcVar32 + 0x169c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) goto LAB_0003cb08;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003cb08;" goto statement_identifier ;)) }))) (expression_statement "uVar43 = (*pcVar42)(iVar1,iVar13);" (assignment_expression "uVar43 = (*pcVar42)(iVar1,iVar13)" identifier = (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" ( (pointer_expression "*pcVar42" * identifier) )) (argument_list "(iVar1,iVar13)" ( identifier , identifier )))) ;) (expression_statement "iVar8 = *(int *)(iVar1 + 0x1b4);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x1b4)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b4)" * (cast_expression "(int *)(iVar1 + 0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b4)" ( (binary_expression "iVar1 + 0x1b4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar1 + 0x1b0);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x1b0)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x1d0) = uVar43;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1d0) = uVar43" (pointer_expression "*(undefined4 *)(iVar1 + 0x1d0)" * (cast_expression "(undefined4 *)(iVar1 + 0x1d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1d0)" ( (binary_expression "iVar1 + 0x1d0" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }" statement_identifier : (if_statement "if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }" if (parenthesized_expression "((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0))" ( (binary_expression "(*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)" (parenthesized_expression "(*(char *)(iVar1 + 0x1fc) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x1fc) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x1fc)" * (cast_expression "(char *)(iVar1 + 0x1fc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1fc)" ( (binary_expression "iVar1 + 0x1fc" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(uint *)(iVar1 + 300) & 2) == 0)" ( (binary_expression "(*(uint *)(iVar1 + 300) & 2) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 300) & 2)" ( (binary_expression "*(uint *)(iVar1 + 300) & 2" (pointer_expression "*(uint *)(iVar1 + 300)" * (cast_expression "(uint *)(iVar1 + 300)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 300)" ( (binary_expression "iVar1 + 300" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }" { (expression_statement "*(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;" (assignment_expression "*(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3" (pointer_expression "*(uint *)(iVar1 + 0x1b8)" * (cast_expression "(uint *)(iVar1 + 0x1b8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b8)" ( (binary_expression "iVar1 + 0x1b8" identifier + number_literal) )))) = (binary_expression "iVar8 + 7U >> 3" (binary_expression "iVar8 + 7U" identifier + number_literal) >> number_literal)) ;) (expression_statement "*(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;" (assignment_expression "*(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3" (pointer_expression "*(uint *)(iVar1 + 0x1bc)" * (cast_expression "(uint *)(iVar1 + 0x1bc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1bc)" ( (binary_expression "iVar1 + 0x1bc" identifier + number_literal) )))) = (binary_expression "iVar3 + 7U >> 3" (binary_expression "iVar3 + 7U" identifier + number_literal) >> number_literal)) ;) (return_statement "return;" return ;) }))) (expression_statement "*(int *)(iVar1 + 0x1b8) = iVar8;" (assignment_expression "*(int *)(iVar1 + 0x1b8) = iVar8" (pointer_expression "*(int *)(iVar1 + 0x1b8)" * (cast_expression "(int *)(iVar1 + 0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b8)" ( (binary_expression "iVar1 + 0x1b8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar1 + 0x1bc) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0x1bc) = iVar3" (pointer_expression "*(int *)(iVar1 + 0x1bc)" * (cast_expression "(int *)(iVar1 + 0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1bc)" ( (binary_expression "iVar1 + 0x1bc" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0003b798) */\n\nvoid png_write_zTXt(png_structrp png_ptr,png_const_charp key,png_const_charp text,int compression)\n\n{\n  __jmp_buf_tag *p_Var1;\n  png_uint_32 pVar2;\n  int iVar3;\n  compression_state *pcVar4;\n  png_const_bytep ppVar5;\n  jmp_buf *data;\n  png_error_ptr p_Var6;\n  png_alloc_size_t pVar7;\n  png_compression_bufferp ppVar8;\n  png_bytep ppVar9;\n  int iVar10;\n  compression_state *pcVar11;\n  png_structrp ppVar12;\n  undefined4 uVar13;\n  png_structrp ppVar14;\n  png_structp png_ptr_00;\n  char *pcVar15;\n  png_const_charp key_00;\n  png_structrp ppVar16;\n  Bytef *pBVar17;\n  jmp_buf *pa_Var18;\n  jmp_buf *pa_Var19;\n  png_structrp ppVar20;\n  compression_state *pcVar21;\n  png_error_ptr p_Var22;\n  png_uint_32 pVar23;\n  compression_state *unaff_s0;\n  png_error_ptr length;\n  png_structrp ppVar24;\n  png_structrp unaff_s1;\n  png_structrp ppVar25;\n  png_size_t pVar26;\n  uint uVar27;\n  png_const_charp unaff_s2;\n  ulong *puVar28;\n  ulong *puVar29;\n  png_byte pVar30;\n  png_structrp ppVar31;\n  png_byte *ppVar32;\n  compression_state *unaff_s4;\n  uint uVar33;\n  compression_state *unaff_s5;\n  undefined4 unaff_s6;\n  compression_state *new_key_00;\n  int *piVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  code *pcVar37;\n  undefined *puVar38;\n  png_error_ptr p_Var39;\n  compression_state *unaff_s8;\n  undefined4 *puVar40;\n  code *pcVar41;\n  undefined1 auStackY_c38 [4];\n  png_structrp ppStackY_c34;\n  png_structp ppStackY_c30;\n  png_structrp ppStackY_c2c;\n  png_const_bytep ppStackY_c28;\n  png_uint_32 pStackY_c24;\n  uint uStackY_c20;\n  code *pcStackY_c1c;\n  undefined1 auStack_be0 [56];\n  jmp_buf *pa_Stack_ba8;\n  compression_state *pcStack_ba4;\n  undefined4 *puStack_ba0;\n  code *pcStack_b9c;\n  code *pcStack_b88;\n  png_uint_16 pStack_b82;\n  ushort uStack_b7e;\n  png_byte apStack_b7c [3];\n  png_byte pStack_b79;\n  undefined1 auStack_b78 [3];\n  png_byte pStack_b75;\n  ulong uStack_b74;\n  png_structrp ppStack_b6c;\n  ulong *puStack_b68;\n  png_structrp ppStack_b64;\n  png_structrp ppStack_b60;\n  code *pcStack_b5c;\n  code *pcStack_b48;\n  undefined1 auStack_b3c [60];\n  undefined1 auStack_b00 [68];\n  undefined1 auStack_abc [64];\n  ulong uStack_a7c;\n  png_structrp ppStack_a74;\n  png_structrp ppStack_a70;\n  png_alloc_size_t *ppStack_a6c;\n  png_structrp ppStack_a68;\n  compression_state *pcStack_a64;\n  compression_state *pcStack_a60;\n  compression_state *pcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  png_error_ptr p_Stack_a40;\n  png_rw_ptr p_Stack_a34;\n  png_rw_ptr p_Stack_a30;\n  png_voidp pvStack_a2c;\n  jmp_buf *pa_Stack_a28;\n  png_user_transform_ptr p_Stack_a24;\n  png_voidp pvStack_a20;\n  jmp_buf *pa_Stack_a1c;\n  undefined1 auStack_a18 [100];\n  png_structrp ppStack_9b4;\n  compression_state *pcStack_9b0;\n  png_structrp ppStack_9ac;\n  compression_state *pcStack_9a8;\n  compression_state *pcStack_9a4;\n  compression_state *pcStack_9a0;\n  int *piStack_99c;\n  compression_state *pcStack_998;\n  png_compression_bufferp ppStack_994;\n  jmp_buf *pa_Stack_988;\n  png_error_ptr p_Stack_984;\n  png_alloc_size_t *ppStack_980;\n  png_structrp ppStack_97c;\n  undefined1 auStack_978 [68];\n  compression_state *pcStack_934;\n  compression_state cStack_92c;\n  png_byte apStack_51f [83];\n  int iStack_4cc;\n  compression_state *pcStack_4c8;\n  png_structrp ppStack_4c4;\n  png_const_charp pcStack_4c0;\n  undefined *puStack_4bc;\n  compression_state *pcStack_4b8;\n  compression_state *pcStack_4b4;\n  png_byte apStack_4b0 [4];\n  compression_state *pcStack_48c;\n  compression_state comp;\n  png_byte new_key [81];\n  \n  puVar38 = PTR___stack_chk_guard_000534bc;\n  iVar10 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (compression == -1) {\n    compression = 0;\n    png_write_tEXt(png_ptr,key,text,0);\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\nLAB_0003b4a4:\n    if (iVar10 == *(int *)puVar38) {\n      return;\n    }\n  }\n  else {\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\n    if (compression == 0) {\n      unaff_s4 = (compression_state *)new_key;\n      pcVar11 = unaff_s4;\n      pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4);\n      unaff_s1 = png_ptr;\n      unaff_s2 = text;\n      if (pVar2 != 0) {\n        unaff_s0 = (compression_state *)(pVar2 + 2);\n        new_key[pVar2 + 1] = '\0';\n        if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }\n        unaff_s6._0_1_ = 'z';\n        unaff_s6._1_1_ = 'T';\n        unaff_s6._2_1_ = '\0';\n        unaff_s6._3_1_ = '\0';\n        unaff_s5 = &comp;\n        comp.output_len = 0;\n        pcVar11 = unaff_s5;\n        compression = (int)unaff_s0;\n        comp.input = (png_const_bytep)text;\n        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);\n        if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);\n      }\n      (*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604);\n    }\n    key = PTR_s_nt_0005301c + 0x25e4;\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar35 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  auStack_978._56_4_ = puVar35 + 0x1fac0;\n  piVar34 = *(int **)(puVar35 + 0x17f8c);\n  new_key_00 = (compression_state *)&stack0xfffffae0;\n  puStack_4bc = puVar38;\n  iStack_4cc = *piVar34;\n  pcVar4 = new_key_00;\n  pcVar21 = (compression_state *)compression;\n  pcStack_4c8 = unaff_s0;\n  ppStack_4c4 = unaff_s1;\n  pcStack_4c0 = unaff_s2;\n  pcStack_4b8 = unaff_s4;\n  pcStack_4b4 = unaff_s5;\n  apStack_4b0 = (png_byte  [4])unaff_s6;\n  pVar2 = png_check_keyword(ppVar12,(png_const_charp)pcVar11,(png_bytep)new_key_00);\n  puVar38 = (undefined *)auStack_978._56_4_;\n  if (pVar2 == 0) {\nLAB_0003b954:\n    iVar10 = *(int *)(puVar38 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10);\nLAB_0003b968:\n    pcVar11 = pcVar21;\n    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10 + 0x2650);\n  }\n  else {\n    if ((compression_state *)key != (compression_state *)0x0) {\n      if (0 < (int)key) {\n        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;\n        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      if ((compression_state *)key == (compression_state *)&DAT_ffffffff) {\nLAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;\n        apStack_51f[pVar2] = '\0';\n        apStack_51f[pVar2 + 1] = '\0';\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar38 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    pcStack_934 = (compression_state *)&DAT_00000001;\n    apStack_51f[pVar2] = '\x01';\n    apStack_51f[pVar2 + 1] = '\0';\njoined_r0x0003b780:\n    if ((compression_state *)compression == (compression_state *)0x0) {\n      key = &DAT_00000001;\n      compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;\n    }\n    else {\n      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);\n      key = (png_const_charp)(iVar10 + 1);\n    }\n    iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(&_gp);\n    unaff_s8 = (compression_state *)(iVar10 + 1);\n    if (pcStack_48c != (compression_state *)0x0) {\n      cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c);\n      if (key <= (compression_state *)(0x7fffffff - (pVar2 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      pcVar11 = (compression_state *)0x7fffffff;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (pcStack_934 != (compression_state *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      cStack_92c.output_len = 0;\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      pcVar21 = (compression_state *)0x7fffffff;\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)) {\n        cStack_92c.output_len = cStack_92c.input_len;\n        if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }\n        pcVar4 = (compression_state *)cStack_92c.output_len;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    cStack_92c.input_len = 0;\n    pcStack_48c = (compression_state *)(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84);\n    if ((compression_state *)(0x7fffffff - (pVar2 + 3)) < key) goto LAB_0003b7c8;\nLAB_0003b648:\n    if ((compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))\n        < unaff_s8) goto LAB_0003b7c8;\n    pcVar11 = (compression_state *)\n              (((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8);\n    cStack_92c.input = (png_const_bytep)pcStack_48c;\n    if (pcStack_934 == (compression_state *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    cStack_92c.output_len = 0;\n    unaff_s0 = (compression_state *)(pVar2 + 3);\n    pcStack_48c = &cStack_92c;\n    pcVar4 = pcStack_48c;\n    pcStack_934 = pcVar11;\n    iVar10 = png_text_compress(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11);\n    puVar38 = (undefined *)auStack_978._56_4_;\n    if (iVar10 == 0) {\n      pcVar4 = unaff_s8;\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);\n        pcVar21 = pcVar11;\n      }\n      else {\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }\n      png_write_compressed_data_out(ppVar12,pcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      (**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      if (iStack_4cc == *piVar34) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  pcVar15 = (ppVar12->zstream).msg;\n  pcVar36 = *(code **)(puVar38 + -0x7be4);\n  pcVar41 = png_write_oFFs;\n  ppVar31 = ppVar12;\n  (*pcVar36)(ppVar12,pcVar15);\n  ppStack_980 = (png_alloc_size_t *)(pcVar36 + 0x1f668);\n  ppVar25 = *(png_structrp *)(pcVar36 + 0x17b34);\n  auStack_978._12_4_ = ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc;\n  pcVar37 = *(code **)(pcVar36 + 0x17a50);\n  auStack_978._16_4_ = unaff_s0;\n  auStack_978._20_4_ = ppVar12;\n  auStack_978._24_4_ = pcStack_48c;\n  auStack_978._28_4_ = &_gp;\n  auStack_978._32_4_ = compression;\n  auStack_978._36_4_ = pcVar41;\n  if (1 < (int)pcVar11) {\n    (**(code **)(pcVar36 + 0x17ab8))();\n    pcVar37 = (code *)ppStack_980[-0x1f06];\n  }\n  (*pcVar37)((jmp_buf *)auStack_978,pcVar15);\n  (*(code *)ppStack_980[-0x1f06])(auStack_978 + 4,pcVar4);\n  p_Var22 = (png_error_ptr)0x9;\n  key_00 = &DAT_6f464673;\n  auStack_978[8] = SUB41(pcVar11,0);\n  ppVar12 = ppVar31;\n  pa_Var18 = (jmp_buf *)auStack_978;\n  png_write_complete_chunk(ppVar31,0x6f464673,(png_const_bytep)auStack_978,9);\n  if ((void *)auStack_978._12_4_ == ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc) {\n    return;\n  }\n  pcVar36 = (code *)ppStack_980[-0x1edb];\n  pcVar37 = png_write_pCAL;\n  (*pcVar36)();\n  pcVar21 = (compression_state *)ppStack_980;\n  p_Var39 = pcVar36 + 0x1f574;\n  p_Stack_a30 = *(png_rw_ptr *)(pcVar36 + 0x17a40);\n  p_Stack_a34 = (png_rw_ptr)auStack_978._0_4_;\n  auStack_a18._92_4_ = *(undefined4 *)p_Stack_a30;\n  ppStack_a70 = ppVar25;\n  p_Stack_a40 = p_Var39;\n  auStack_a18._96_4_ = (jmp_buf *)auStack_978;\n  ppStack_9b4 = ppVar25;\n  pcStack_9b0 = pcVar11;\n  ppStack_9ac = ppVar31;\n  pcStack_9a8 = pcVar4;\n  pcStack_9a4 = (compression_state *)key;\n  pcStack_9a0 = new_key_00;\n  piStack_99c = piVar34;\n  pcStack_998 = unaff_s8;\n  ppStack_994 = (png_compression_bufferp)pcVar37;\n  pa_Stack_988 = pa_Var18;\n  p_Stack_984 = p_Var22;\n  if ((int)ppStack_980 < 4) {\n    pa_Var18 = (jmp_buf *)(auStack_a18 + 0xc);\n    pa_Stack_a1c = pa_Var18;\n    pVar2 = png_check_keyword(ppVar12,key_00,(png_bytep)pa_Var18);\n    p_Var39 = p_Stack_a40;\n    ppStack_a70 = ppVar12;\n    if (pVar2 == 0) {\n      (**(code **)(p_Stack_a40 + -0x7be4))(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8);\n      pcVar4 = (compression_state *)0x0;\n      goto LAB_0003bebc;\n    }\n    pvStack_a2c = (png_voidp)(pVar2 + 1);\n    ppVar31 = (png_structrp)(uint)(ppStack_97c != (png_structrp)0x0);\n    p_Stack_a24 = (png_user_transform_ptr)((uint)pcVar21 & 0xff);\n    iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(p_Stack_a34);\n    pa_Stack_a28 = (jmp_buf *)((int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8);\n    piVar34 = (int *)((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3);\n    pcVar4 = (compression_state *)\n             (**(code **)(p_Stack_a40 + -0x7ce8))(ppVar12,(int)ppStack_97c << 2);\n    pvStack_a20 = (png_voidp)((uint)ppStack_97c & 0xff);\n    if ((int)ppStack_97c < 1) {\n      if (ppVar12 == (png_structrp)0x0) {\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);\n      }\n    }\n    else {\n      ppVar31 = (png_structrp)0x0;\n      key = (png_const_charp)auStack_978._4_4_;\n      pcVar11 = pcVar4;\n      do {\n        uVar13 = *(undefined4 *)key;\n        key = (png_const_charp)((int)key + 4);\n        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);\n        ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);\n        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        pcVar11->input = ppVar5;\n        piVar34 = (int *)((int)piVar34 + (int)ppVar5);\n        pcVar11 = (compression_state *)&pcVar11->input_len;\n      } while (ppStack_97c != ppVar31);\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }\n      new_key_00 = (compression_state *)0x0;\n      pcVar21 = pcVar4;\n      puVar40 = (undefined4 *)auStack_978._4_4_;\n      do {\n        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);\n        pa_Var18 = (jmp_buf *)pcVar21->input;\n        uVar13 = *puVar40;\n        pcVar21 = (compression_state *)&pcVar21->input_len;\n        puVar40 = puVar40 + 1;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);\n        ppVar25 = ppStack_97c;\n        auStack_978._4_4_ = puVar40;\n      } while ((int)new_key_00 < (int)ppStack_97c);\n    }\n    pcVar11 = pcVar4;\n    (**(code **)(p_Stack_a40 + -0x7ccc))(ppVar12);\n    (**(code **)(p_Stack_a40 + -0x7be8))();\n    ppStack_a74 = ppVar25;\n    p_Var39 = p_Stack_a40;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n    if (auStack_a18._92_4_ == *(uInt *)p_Stack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pcVar11 = (compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c);\n    (**(code **)(p_Var39 + -0x7be4))();\n    ppStack_a74 = ppStack_97c;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n  }\n  pcVar36 = *(code **)(p_Var39 + -0x7b6c);\n  pcVar37 = png_write_sCAL_s;\n  (*pcVar36)();\n  auStack_b00._56_4_ = pcVar36 + 0x1f118;\n  puVar28 = *(ulong **)(pcVar36 + 0x175e4);\n  uStack_a7c = *puVar28;\n  pa_Var19 = pa_Var18;\n  p_Var39 = p_Var22;\n  ppStack_a6c = (png_alloc_size_t *)pcVar21;\n  ppStack_a68 = ppVar31;\n  pcStack_a64 = pcVar4;\n  pcStack_a60 = (compression_state *)key;\n  pcStack_a5c = new_key_00;\n  piStack_a58 = piVar34;\n  pcStack_a54 = pcVar37;\n  data = (jmp_buf *)(**(code **)(pcVar36 + 0x174fc))(pa_Var18);\n  p_Var6 = (png_error_ptr)(**(code **)(auStack_b00._56_4_ + -0x7c1c))(p_Var22);\n  length = p_Var6 + (int)((int)&(*data)[0].__jmpbuf[0].__pc + 2);\n  ppVar31 = ppVar12;\n  if (&DAT_00000040 < length) {\n    iVar10 = *(int *)(auStack_b00._56_4_ + -0x7fd4) + 0x26e0;\n    (**(code **)(auStack_b00._56_4_ + -0x7bb0))(ppVar12,iVar10);\n  }\n  else {\n    auStack_abc[0] = (png_byte)pcVar11;\n    (**(code **)(auStack_b00._56_4_ + -0x7bf0))\n              (auStack_abc + 1,pa_Var18,(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f);\n    p_Var1 = *data;\n    data = (jmp_buf *)auStack_abc;\n    (**(code **)(auStack_b00._56_4_ + -0x7b2c))\n              ((code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,p_Var6);\n    iVar10 = 0x7343414c;\n    pa_Var19 = data;\n    p_Var39 = length;\n    png_write_complete_chunk(ppVar12,0x7343414c,(png_const_bytep)data,(size_t)length);\n  }\n  if (uStack_a7c == *puVar28) {\n    return;\n  }\n  pcVar36 = *(code **)(auStack_b00._56_4_ + -0x7b6c);\n  pcVar41 = png_write_pHYs;\n  (*pcVar36)();\n  auStack_b3c._52_4_ = pcVar36 + 0x1efc4;\n  piVar34 = *(int **)(pcVar36 + 0x17490);\n  auStack_b00._12_4_ = *piVar34;\n  pcVar37 = *(code **)(pcVar36 + 0x173b4);\n  auStack_b00._16_4_ = length;\n  auStack_b00._20_4_ = data;\n  auStack_b00._24_4_ = puVar28;\n  auStack_b00._28_4_ = p_Var22;\n  auStack_b00._32_4_ = p_Var6;\n  auStack_b00._36_4_ = pcVar41;\n  if (1 < (int)p_Var39) {\n    (**(code **)(pcVar36 + 0x17414))();\n    pcVar37 = *(code **)(auStack_b3c._52_4_ + -0x7c10);\n  }\n  (*pcVar37)((png_structrp)auStack_b00,iVar10);\n  (**(code **)(auStack_b3c._52_4_ + -0x7c10))(auStack_b00 + 4,pa_Var19);\n  ppVar16 = (png_structrp)&DAT_70485973;\n  auStack_b00[8] = SUB41(p_Var39,0);\n  ppVar25 = ppVar31;\n  ppVar20 = (png_structrp)auStack_b00;\n  png_write_complete_chunk(ppVar31,0x70485973,(png_const_bytep)auStack_b00,9);\n  if (auStack_b00._12_4_ == *piVar34) {\n    return;\n  }\n  pcVar36 = *(code **)(auStack_b3c._52_4_ + -0x7b6c);\n  pcVar37 = png_write_tIME;\n  (*pcVar36)();\n  pcStack_b48 = pcVar36 + 0x1eed0;\n  puVar28 = *(ulong **)(pcVar36 + 0x1739c);\n  auStack_b3c._8_4_ = *puVar28;\n  ppVar24 = (png_structrp)auStack_b00;\n  ppVar14 = ppVar25;\n  auStack_b3c._16_4_ = (png_structrp)auStack_b00;\n  auStack_b3c._20_4_ = piVar34;\n  auStack_b3c._24_4_ = p_Var39;\n  auStack_b3c._28_4_ = ppVar31;\n  auStack_b3c._32_4_ = pcVar37;\n  if ((((*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&\n       (ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)) &&\n      (*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18)) &&\n     (*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2) < 0x3d)) {\n    ppVar31 = (png_structrp)auStack_b3c;\n    (**(code **)(pcVar36 + 0x17200))\n              (ppVar31,*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc);\n    auStack_b3c[6] = *(undefined1 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2);\n    pVar2 = 0x74494d45;\n    auStack_b3c._2_2_ = *(undefined2 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\n    auStack_b3c._4_2_ = *(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp;\n    ppVar20 = ppVar31;\n    png_write_complete_chunk(ppVar25,0x74494d45,(png_const_bytep)ppVar31,7);\n  }\n  else {\n    pVar2 = *(int *)(pcVar36 + 0x16efc) + 0x272c;\n    (**(code **)(pcVar36 + 0x17320))();\n    ppVar16 = ppVar24;\n  }\n  if (auStack_b3c._8_4_ == *puVar28) {\n    return;\n  }\n  pcVar36 = *(code **)(pcStack_b48 + -0x7b6c);\n  pcVar37 = png_write_acTL;\n  (*pcVar36)();\n  pcStack_b88 = pcVar36 + 0x1edb0;\n  puVar29 = *(ulong **)(pcVar36 + 0x1727c);\n  ppVar14->num_frames_to_write = pVar2;\n  uStack_b74 = *puVar29;\n  ppStack_b6c = ppVar16;\n  puStack_b68 = puVar28;\n  ppStack_b64 = ppVar25;\n  ppStack_b60 = ppVar31;\n  pcStack_b5c = pcVar37;\n  (**(code **)(pcVar36 + 0x171a0))(apStack_b7c);\n  (**(code **)(pcStack_b88 + -0x7c10))(auStack_b78,ppVar20);\n  pVar23 = 8;\n  pVar2 = 0x6163544c;\n  ppVar31 = ppVar14;\n  ppVar5 = apStack_b7c;\n  png_write_complete_chunk(ppVar14,0x6163544c,apStack_b7c,8);\n  if (uStack_b74 == *puVar29) {\n    return;\n  }\n  pcVar36 = *(code **)(pcStack_b88 + -0x7b6c);\n  pcVar37 = png_write_fcTL;\n  (*pcVar36)();\n  piVar34 = *(int **)(pcVar36 + 0x171ac);\n  ppVar25 = (png_structrp)*piVar34;\n  uVar33 = (uint)uStack_b7e;\n  auStack_be0._28_4_ = ppVar25;\n  auStack_be0._32_4_ = apStack_b7c;\n  auStack_be0._36_4_ = ppVar14;\n  auStack_be0._40_4_ = puVar29;\n  auStack_be0._44_4_ = ppVar20;\n  auStack_be0._48_4_ = pa_Var19;\n  auStack_be0._52_4_ = ppVar12;\n  pa_Stack_ba8 = pa_Var18;\n  pcStack_ba4 = pcVar11;\n  puStack_ba0 = puVar40;\n  pcStack_b9c = pcVar37;\n  if (ppVar31->num_frames_written == 0) {\n    if (pVar23 == 0 && pcStack_b88 == (code *)0x0) {\n      if ((ppVar31->first_frame_width == pVar2) &&\n         ((png_const_bytep)ppVar31->first_frame_height == ppVar5)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar36 + 0x170fc))();\n    }\n    pBVar17 = (Bytef *)(*(int *)(pcVar36 + 0x16d0c) + 0x2784);\n    png_ptr_00 = ppVar31;\n    (**(code **)(pcVar36 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    png_ensure_fcTL_is_valid\n              (ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,\n               uStack_b7e,pStack_b79,pStack_b75);\n    (**(code **)(pcVar36 + 0x170d0))((png_structrp)auStack_be0,ppVar31->next_seq_num);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 4,pVar2);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 8,ppVar5);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0xc,pVar23);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0x10,pcStack_b88);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x14,pStack_b82);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x16,uVar33);\n    pVar23 = 0x1a;\n    pBVar17 = (Bytef *)0x6663544c;\n    auStack_be0[0x18] = pStack_b79;\n    auStack_be0[0x19] = pStack_b75;\n    ppVar25 = (png_structrp)auStack_be0;\n    png_write_complete_chunk(ppVar31,0x6663544c,(png_const_bytep)auStack_be0,0x1a);\n    ppVar12 = (png_structrp)*piVar34;\n    ppVar31->next_seq_num = ppVar31->next_seq_num + 1;\n    png_ptr_00 = (png_structp)auStack_be0._28_4_;\n    ppVar14 = (png_structrp)auStack_be0;\n    if ((png_structrp)auStack_be0._28_4_ == ppVar12) {\n      return;\n    }\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x17174);\n  pcVar37 = png_write_fdAT;\n  (*pcVar36)();\n  piVar34 = *(int **)(pcVar36 + 0x16fac);\n  ppStackY_c34 = (png_structrp)*piVar34;\n  ppStackY_c30 = ppVar31;\n  ppStackY_c2c = ppVar14;\n  ppStackY_c28 = ppVar5;\n  pStackY_c24 = pVar2;\n  uStackY_c20 = uVar33;\n  pcStackY_c1c = pcVar37;\n  if (png_ptr_00 != (png_structrp)0x0) {\n    png_write_chunk_header\n              (png_ptr_00,0x66644154,(png_uint_32)&ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp);\n  }\n  (**(code **)(pcVar36 + 0x16ed0))(auStackY_c38,png_ptr_00->next_seq_num);\n  (**(code **)(pcVar36 + 0x16fec))(png_ptr_00,auStackY_c38,4);\n  (**(code **)(pcVar36 + 0x16fec))(png_ptr_00);\n  (**(code **)(pcVar36 + 0x16ef8))(png_ptr_00);\n  ppVar12 = (png_structrp)*piVar34;\n  png_ptr_00->next_seq_num = png_ptr_00->next_seq_num + 1;\n  if (ppStackY_c34 == ppVar12) {\n    return;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x16f74);\n  ppVar12 = ppStackY_c34;\n  (*pcVar36)();\n  if (ppVar12->zowner == 0x49444154) goto LAB_0003c6d0;\n  if (ppVar12->zbuffer_list == (png_compression_bufferp)0x0) goto LAB_0003c8fc;\n  png_free_buffer_list(ppVar12,&ppVar12->zbuffer_list->next);\n  while( true ) {\n    pVar7 = png_image_size(ppVar12);\n    iVar10 = png_deflate_claim(ppVar12,0x49444154,pVar7);\n    if (iVar10 != 0) break;\n    ppVar8 = ppVar12->zbuffer_list;\n    (ppVar12->zstream).avail_out = ppVar12->zbuffer_size;\n    (ppVar12->zstream).next_out = ppVar8->output;\nLAB_0003c6d0:\n    (ppVar12->zstream).next_in = pBVar17;\n    do {\n      pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      do {\n        (ppVar12->zstream).avail_in = (uInt)ppVar25;\n        pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);\n        ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;\n        (ppVar12->zstream).avail_in = 0;\n        if ((ppVar12->zstream).avail_out != 0) {\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        pVar26 = ppVar12->zbuffer_size;\n        ppVar32 = ppVar12->zbuffer_list->output;\n        if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n          optimize_cmf(ppVar32,pVar7);\n        }\n        if (pVar26 != 0) {\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }\n        uVar33 = ppVar12->mode;\n        (ppVar12->zstream).next_out = ppVar32;\n        (ppVar12->zstream).avail_out = pVar26;\n        ppVar12->mode = uVar33 | 4;\n        if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;\n        pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      } while (pVar23 != 0);\n    } while (ppVar25 != (png_structrp)0x0);\n    if (pVar23 != 4) {\n      return;\n    }\n    (**(code **)(pcVar36 + 0x16dfc))(ppVar12,*(int *)(pcVar36 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    ppVar8 = (png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))();\n    ppVar12->zbuffer_list = ppVar8;\n    ppVar8->next = (png_compression_buffer *)0x0;\n  }\n  (**(code **)(pcVar36 + 0x16dfc))(ppVar12,(ppVar12->zstream).msg);\nLAB_0003c944:\n  pcVar37 = *(code **)(pcVar36 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar37)(ppVar12,pBVar17);\n  pcVar36 = *(code **)(pcVar36 + 0x16dfc);\n  (*pcVar36)(ppVar12,(ppVar12->zstream).msg);\n  uVar33 = (uint)ppVar12->usr_channels * (uint)ppVar12->usr_bit_depth;\n  if (uVar33 < 8) {\n    uVar27 = ppVar12->width * uVar33 + 7 >> 3;\n  }\n  else {\n    uVar27 = (uVar33 >> 3) * ppVar12->width;\n  }\n  iVar10 = uVar27 + 1;\n  pcVar37 = *(code **)(pcVar36 + 0x169a0);\n  ppVar12->maximum_pixel_depth = (png_byte)uVar33;\n  ppVar12->transformed_pixel_depth = ppVar12->pixel_depth;\n  ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n  pVar2 = ppVar12->height;\n  uVar33 = (uint)ppVar12->do_filter;\n  ppVar12->row_buf = ppVar9;\n  *ppVar9 = '\0';\n  if (pVar2 == 1) {\n    uVar33 = uVar33 & 0x1f;\n  }\n  pVar23 = ppVar12->width;\n  if (pVar23 == 1) {\n    uVar33 = uVar33 & 0x2f;\n  }\n  if (uVar33 == 0) {\n    ppVar12->do_filter = '\b';\n    goto LAB_0003ca48;\n  }\n  pVar30 = (png_byte)uVar33;\n  ppVar12->do_filter = pVar30;\n  if (((uVar33 & 0xf0) == 0) || (ppVar12->try_row != (png_bytep)0x0)) {\nLAB_0003ca24:\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if ((uVar33 & 0xe0) == 0) {\n      pVar2 = ppVar12->height;\n      pVar23 = ppVar12->width;\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    ppVar9 = (png_bytep)(**(code **)(pcVar36 + 0x169a0))(ppVar12,iVar10);\n    ppVar12->try_row = ppVar9;\n    iVar3 = -((int)(uVar33 << 0x1b) >> 0x1f);\n    if ((uVar33 & 0x20) != 0) {\n      iVar3 = iVar3 + 1;\n    }\n    if ((uVar33 & 0x40) != 0) {\n      iVar3 = iVar3 + 1;\n      if (-1 < (char)pVar30) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\nLAB_0003cb10:\n      ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n      ppVar12->tst_row = ppVar9;\n      goto LAB_0003ca24;\n    }\n    if (-1 < (char)pVar30) {\nLAB_0003cb38:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\n      if (iVar3 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if (iVar3 != 0) goto LAB_0003cb08;\n  }\n  ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n  pVar2 = ppVar12->height;\n  pVar23 = ppVar12->width;\n  ppVar12->prev_row = ppVar9;\nLAB_0003ca48:\n  if ((ppVar12->interlaced != '\0') && ((ppVar12->transformations & 2) == 0)) {\n    ppVar12->num_rows = pVar2 + 7 >> 3;\n    ppVar12->usr_width = pVar23 + 7 >> 3;\n    return;\n  }\n  ppVar12->num_rows = pVar2;\n  ppVar12->usr_width = pVar23;\n  return;\n}\n\n" comment (function_definition "void png_write_zTXt(png_structrp png_ptr,png_const_charp key,png_const_charp text,int compression)\n\n{\n  __jmp_buf_tag *p_Var1;\n  png_uint_32 pVar2;\n  int iVar3;\n  compression_state *pcVar4;\n  png_const_bytep ppVar5;\n  jmp_buf *data;\n  png_error_ptr p_Var6;\n  png_alloc_size_t pVar7;\n  png_compression_bufferp ppVar8;\n  png_bytep ppVar9;\n  int iVar10;\n  compression_state *pcVar11;\n  png_structrp ppVar12;\n  undefined4 uVar13;\n  png_structrp ppVar14;\n  png_structp png_ptr_00;\n  char *pcVar15;\n  png_const_charp key_00;\n  png_structrp ppVar16;\n  Bytef *pBVar17;\n  jmp_buf *pa_Var18;\n  jmp_buf *pa_Var19;\n  png_structrp ppVar20;\n  compression_state *pcVar21;\n  png_error_ptr p_Var22;\n  png_uint_32 pVar23;\n  compression_state *unaff_s0;\n  png_error_ptr length;\n  png_structrp ppVar24;\n  png_structrp unaff_s1;\n  png_structrp ppVar25;\n  png_size_t pVar26;\n  uint uVar27;\n  png_const_charp unaff_s2;\n  ulong *puVar28;\n  ulong *puVar29;\n  png_byte pVar30;\n  png_structrp ppVar31;\n  png_byte *ppVar32;\n  compression_state *unaff_s4;\n  uint uVar33;\n  compression_state *unaff_s5;\n  undefined4 unaff_s6;\n  compression_state *new_key_00;\n  int *piVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  code *pcVar37;\n  undefined *puVar38;\n  png_error_ptr p_Var39;\n  compression_state *unaff_s8;\n  undefined4 *puVar40;\n  code *pcVar41;\n  undefined1 auStackY_c38 [4];\n  png_structrp ppStackY_c34;\n  png_structp ppStackY_c30;\n  png_structrp ppStackY_c2c;\n  png_const_bytep ppStackY_c28;\n  png_uint_32 pStackY_c24;\n  uint uStackY_c20;\n  code *pcStackY_c1c;\n  undefined1 auStack_be0 [56];\n  jmp_buf *pa_Stack_ba8;\n  compression_state *pcStack_ba4;\n  undefined4 *puStack_ba0;\n  code *pcStack_b9c;\n  code *pcStack_b88;\n  png_uint_16 pStack_b82;\n  ushort uStack_b7e;\n  png_byte apStack_b7c [3];\n  png_byte pStack_b79;\n  undefined1 auStack_b78 [3];\n  png_byte pStack_b75;\n  ulong uStack_b74;\n  png_structrp ppStack_b6c;\n  ulong *puStack_b68;\n  png_structrp ppStack_b64;\n  png_structrp ppStack_b60;\n  code *pcStack_b5c;\n  code *pcStack_b48;\n  undefined1 auStack_b3c [60];\n  undefined1 auStack_b00 [68];\n  undefined1 auStack_abc [64];\n  ulong uStack_a7c;\n  png_structrp ppStack_a74;\n  png_structrp ppStack_a70;\n  png_alloc_size_t *ppStack_a6c;\n  png_structrp ppStack_a68;\n  compression_state *pcStack_a64;\n  compression_state *pcStack_a60;\n  compression_state *pcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  png_error_ptr p_Stack_a40;\n  png_rw_ptr p_Stack_a34;\n  png_rw_ptr p_Stack_a30;\n  png_voidp pvStack_a2c;\n  jmp_buf *pa_Stack_a28;\n  png_user_transform_ptr p_Stack_a24;\n  png_voidp pvStack_a20;\n  jmp_buf *pa_Stack_a1c;\n  undefined1 auStack_a18 [100];\n  png_structrp ppStack_9b4;\n  compression_state *pcStack_9b0;\n  png_structrp ppStack_9ac;\n  compression_state *pcStack_9a8;\n  compression_state *pcStack_9a4;\n  compression_state *pcStack_9a0;\n  int *piStack_99c;\n  compression_state *pcStack_998;\n  png_compression_bufferp ppStack_994;\n  jmp_buf *pa_Stack_988;\n  png_error_ptr p_Stack_984;\n  png_alloc_size_t *ppStack_980;\n  png_structrp ppStack_97c;\n  undefined1 auStack_978 [68];\n  compression_state *pcStack_934;\n  compression_state cStack_92c;\n  png_byte apStack_51f [83];\n  int iStack_4cc;\n  compression_state *pcStack_4c8;\n  png_structrp ppStack_4c4;\n  png_const_charp pcStack_4c0;\n  undefined *puStack_4bc;\n  compression_state *pcStack_4b8;\n  compression_state *pcStack_4b4;\n  png_byte apStack_4b0 [4];\n  compression_state *pcStack_48c;\n  compression_state comp;\n  png_byte new_key [81];\n  \n  puVar38 = PTR___stack_chk_guard_000534bc;\n  iVar10 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (compression == -1) {\n    compression = 0;\n    png_write_tEXt(png_ptr,key,text,0);\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\nLAB_0003b4a4:\n    if (iVar10 == *(int *)puVar38) {\n      return;\n    }\n  }\n  else {\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\n    if (compression == 0) {\n      unaff_s4 = (compression_state *)new_key;\n      pcVar11 = unaff_s4;\n      pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4);\n      unaff_s1 = png_ptr;\n      unaff_s2 = text;\n      if (pVar2 != 0) {\n        unaff_s0 = (compression_state *)(pVar2 + 2);\n        new_key[pVar2 + 1] = '\0';\n        if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }\n        unaff_s6._0_1_ = 'z';\n        unaff_s6._1_1_ = 'T';\n        unaff_s6._2_1_ = '\0';\n        unaff_s6._3_1_ = '\0';\n        unaff_s5 = &comp;\n        comp.output_len = 0;\n        pcVar11 = unaff_s5;\n        compression = (int)unaff_s0;\n        comp.input = (png_const_bytep)text;\n        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);\n        if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);\n      }\n      (*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604);\n    }\n    key = PTR_s_nt_0005301c + 0x25e4;\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar35 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  auStack_978._56_4_ = puVar35 + 0x1fac0;\n  piVar34 = *(int **)(puVar35 + 0x17f8c);\n  new_key_00 = (compression_state *)&stack0xfffffae0;\n  puStack_4bc = puVar38;\n  iStack_4cc = *piVar34;\n  pcVar4 = new_key_00;\n  pcVar21 = (compression_state *)compression;\n  pcStack_4c8 = unaff_s0;\n  ppStack_4c4 = unaff_s1;\n  pcStack_4c0 = unaff_s2;\n  pcStack_4b8 = unaff_s4;\n  pcStack_4b4 = unaff_s5;\n  apStack_4b0 = (png_byte  [4])unaff_s6;\n  pVar2 = png_check_keyword(ppVar12,(png_const_charp)pcVar11,(png_bytep)new_key_00);\n  puVar38 = (undefined *)auStack_978._56_4_;\n  if (pVar2 == 0) {\nLAB_0003b954:\n    iVar10 = *(int *)(puVar38 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10);\nLAB_0003b968:\n    pcVar11 = pcVar21;\n    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10 + 0x2650);\n  }\n  else {\n    if ((compression_state *)key != (compression_state *)0x0) {\n      if (0 < (int)key) {\n        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;\n        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      if ((compression_state *)key == (compression_state *)&DAT_ffffffff) {\nLAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;\n        apStack_51f[pVar2] = '\0';\n        apStack_51f[pVar2 + 1] = '\0';\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar38 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    pcStack_934 = (compression_state *)&DAT_00000001;\n    apStack_51f[pVar2] = '\x01';\n    apStack_51f[pVar2 + 1] = '\0';\njoined_r0x0003b780:\n    if ((compression_state *)compression == (compression_state *)0x0) {\n      key = &DAT_00000001;\n      compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;\n    }\n    else {\n      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);\n      key = (png_const_charp)(iVar10 + 1);\n    }\n    iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(&_gp);\n    unaff_s8 = (compression_state *)(iVar10 + 1);\n    if (pcStack_48c != (compression_state *)0x0) {\n      cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c);\n      if (key <= (compression_state *)(0x7fffffff - (pVar2 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      pcVar11 = (compression_state *)0x7fffffff;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (pcStack_934 != (compression_state *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      cStack_92c.output_len = 0;\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      pcVar21 = (compression_state *)0x7fffffff;\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)) {\n        cStack_92c.output_len = cStack_92c.input_len;\n        if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }\n        pcVar4 = (compression_state *)cStack_92c.output_len;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    cStack_92c.input_len = 0;\n    pcStack_48c = (compression_state *)(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84);\n    if ((compression_state *)(0x7fffffff - (pVar2 + 3)) < key) goto LAB_0003b7c8;\nLAB_0003b648:\n    if ((compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))\n        < unaff_s8) goto LAB_0003b7c8;\n    pcVar11 = (compression_state *)\n              (((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8);\n    cStack_92c.input = (png_const_bytep)pcStack_48c;\n    if (pcStack_934 == (compression_state *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    cStack_92c.output_len = 0;\n    unaff_s0 = (compression_state *)(pVar2 + 3);\n    pcStack_48c = &cStack_92c;\n    pcVar4 = pcStack_48c;\n    pcStack_934 = pcVar11;\n    iVar10 = png_text_compress(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11);\n    puVar38 = (undefined *)auStack_978._56_4_;\n    if (iVar10 == 0) {\n      pcVar4 = unaff_s8;\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);\n        pcVar21 = pcVar11;\n      }\n      else {\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }\n      png_write_compressed_data_out(ppVar12,pcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      (**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      if (iStack_4cc == *piVar34) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  pcVar15 = (ppVar12->zstream).msg;\n  pcVar36 = *(code **)(puVar38 + -0x7be4);\n  pcVar41 = png_write_oFFs;\n  ppVar31 = ppVar12;\n  (*pcVar36)(ppVar12,pcVar15);\n  ppStack_980 = (png_alloc_size_t *)(pcVar36 + 0x1f668);\n  ppVar25 = *(png_structrp *)(pcVar36 + 0x17b34);\n  auStack_978._12_4_ = ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc;\n  pcVar37 = *(code **)(pcVar36 + 0x17a50);\n  auStack_978._16_4_ = unaff_s0;\n  auStack_978._20_4_ = ppVar12;\n  auStack_978._24_4_ = pcStack_48c;\n  auStack_978._28_4_ = &_gp;\n  auStack_978._32_4_ = compression;\n  auStack_978._36_4_ = pcVar41;\n  if (1 < (int)pcVar11) {\n    (**(code **)(pcVar36 + 0x17ab8))();\n    pcVar37 = (code *)ppStack_980[-0x1f06];\n  }\n  (*pcVar37)((jmp_buf *)auStack_978,pcVar15);\n  (*(code *)ppStack_980[-0x1f06])(auStack_978 + 4,pcVar4);\n  p_Var22 = (png_error_ptr)0x9;\n  key_00 = &DAT_6f464673;\n  auStack_978[8] = SUB41(pcVar11,0);\n  ppVar12 = ppVar31;\n  pa_Var18 = (jmp_buf *)auStack_978;\n  png_write_complete_chunk(ppVar31,0x6f464673,(png_const_bytep)auStack_978,9);\n  if ((void *)auStack_978._12_4_ == ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc) {\n    return;\n  }\n  pcVar36 = (code *)ppStack_980[-0x1edb];\n  pcVar37 = png_write_pCAL;\n  (*pcVar36)();\n  pcVar21 = (compression_state *)ppStack_980;\n  p_Var39 = pcVar36 + 0x1f574;\n  p_Stack_a30 = *(png_rw_ptr *)(pcVar36 + 0x17a40);\n  p_Stack_a34 = (png_rw_ptr)auStack_978._0_4_;\n  auStack_a18._92_4_ = *(undefined4 *)p_Stack_a30;\n  ppStack_a70 = ppVar25;\n  p_Stack_a40 = p_Var39;\n  auStack_a18._96_4_ = (jmp_buf *)auStack_978;\n  ppStack_9b4 = ppVar25;\n  pcStack_9b0 = pcVar11;\n  ppStack_9ac = ppVar31;\n  pcStack_9a8 = pcVar4;\n  pcStack_9a4 = (compression_state *)key;\n  pcStack_9a0 = new_key_00;\n  piStack_99c = piVar34;\n  pcStack_998 = unaff_s8;\n  ppStack_994 = (png_compression_bufferp)pcVar37;\n  pa_Stack_988 = pa_Var18;\n  p_Stack_984 = p_Var22;\n  if ((int)ppStack_980 < 4) {\n    pa_Var18 = (jmp_buf *)(auStack_a18 + 0xc);\n    pa_Stack_a1c = pa_Var18;\n    pVar2 = png_check_keyword(ppVar12,key_00,(png_bytep)pa_Var18);\n    p_Var39 = p_Stack_a40;\n    ppStack_a70 = ppVar12;\n    if (pVar2 == 0) {\n      (**(code **)(p_Stack_a40 + -0x7be4))(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8);\n      pcVar4 = (compression_state *)0x0;\n      goto LAB_0003bebc;\n    }\n    pvStack_a2c = (png_voidp)(pVar2 + 1);\n    ppVar31 = (png_structrp)(uint)(ppStack_97c != (png_structrp)0x0);\n    p_Stack_a24 = (png_user_transform_ptr)((uint)pcVar21 & 0xff);\n    iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(p_Stack_a34);\n    pa_Stack_a28 = (jmp_buf *)((int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8);\n    piVar34 = (int *)((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3);\n    pcVar4 = (compression_state *)\n             (**(code **)(p_Stack_a40 + -0x7ce8))(ppVar12,(int)ppStack_97c << 2);\n    pvStack_a20 = (png_voidp)((uint)ppStack_97c & 0xff);\n    if ((int)ppStack_97c < 1) {\n      if (ppVar12 == (png_structrp)0x0) {\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);\n      }\n    }\n    else {\n      ppVar31 = (png_structrp)0x0;\n      key = (png_const_charp)auStack_978._4_4_;\n      pcVar11 = pcVar4;\n      do {\n        uVar13 = *(undefined4 *)key;\n        key = (png_const_charp)((int)key + 4);\n        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);\n        ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);\n        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        pcVar11->input = ppVar5;\n        piVar34 = (int *)((int)piVar34 + (int)ppVar5);\n        pcVar11 = (compression_state *)&pcVar11->input_len;\n      } while (ppStack_97c != ppVar31);\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }\n      new_key_00 = (compression_state *)0x0;\n      pcVar21 = pcVar4;\n      puVar40 = (undefined4 *)auStack_978._4_4_;\n      do {\n        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);\n        pa_Var18 = (jmp_buf *)pcVar21->input;\n        uVar13 = *puVar40;\n        pcVar21 = (compression_state *)&pcVar21->input_len;\n        puVar40 = puVar40 + 1;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);\n        ppVar25 = ppStack_97c;\n        auStack_978._4_4_ = puVar40;\n      } while ((int)new_key_00 < (int)ppStack_97c);\n    }\n    pcVar11 = pcVar4;\n    (**(code **)(p_Stack_a40 + -0x7ccc))(ppVar12);\n    (**(code **)(p_Stack_a40 + -0x7be8))();\n    ppStack_a74 = ppVar25;\n    p_Var39 = p_Stack_a40;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n    if (auStack_a18._92_4_ == *(uInt *)p_Stack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pcVar11 = (compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c);\n    (**(code **)(p_Var39 + -0x7be4))();\n    ppStack_a74 = ppStack_97c;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n  }\n  pcVar36 = *(code **)(p_Var39 + -0x7b6c);\n  pcVar37 = png_write_sCAL_s;\n  (*pcVar36)();\n  auStack_b00._56_4_ = pcVar36 + 0x1f118;\n  puVar28 = *(ulong **)(pcVar36 + 0x175e4);\n  uStack_a7c = *puVar28;\n  pa_Var19 = pa_Var18;\n  p_Var39 = p_Var22;\n  ppStack_a6c = (png_alloc_size_t *)pcVar21;\n  ppStack_a68 = ppVar31;\n  pcStack_a64 = pcVar4;\n  pcStack_a60 = (compression_state *)key;\n  pcStack_a5c = new_key_00;\n  piStack_a58 = piVar34;\n  pcStack_a54 = pcVar37;\n  data = (jmp_buf *)(**(code **)(pcVar36 + 0x174fc))(pa_Var18);\n  p_Var6 = (png_error_ptr)(**(code **)(auStack_b00._56_4_ + -0x7c1c))(p_Var22);\n  length = p_Var6 + (int)((int)&(*data)[0].__jmpbuf[0].__pc + 2);\n  ppVar31 = ppVar12;\n  if (&DAT_00000040 < length) {\n    iVar10 = *(int *)(auStack_b00._56_4_ + -0x7fd4) + 0x26e0;\n    (**(code **)(auStack_b00._56_4_ + -0x7bb0))(ppVar12,iVar10);\n  }\n  else {\n    auStack_abc[0] = (png_byte)pcVar11;\n    (**(code **)(auStack_b00._56_4_ + -0x7bf0))\n              (auStack_abc + 1,pa_Var18,(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f);\n    p_Var1 = *data;\n    data = (jmp_buf *)auStack_abc;\n    (**(code **)(auStack_b00._56_4_ + -0x7b2c))\n              ((code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,p_Var6);\n    iVar10 = 0x7343414c;\n    pa_Var19 = data;\n    p_Var39 = length;\n    png_write_complete_chunk(ppVar12,0x7343414c,(png_const_bytep)data,(size_t)length);\n  }\n  if (uStack_a7c == *puVar28) {\n    return;\n  }\n  pcVar36 = *(code **)(auStack_b00._56_4_ + -0x7b6c);\n  pcVar41 = png_write_pHYs;\n  (*pcVar36)();\n  auStack_b3c._52_4_ = pcVar36 + 0x1efc4;\n  piVar34 = *(int **)(pcVar36 + 0x17490);\n  auStack_b00._12_4_ = *piVar34;\n  pcVar37 = *(code **)(pcVar36 + 0x173b4);\n  auStack_b00._16_4_ = length;\n  auStack_b00._20_4_ = data;\n  auStack_b00._24_4_ = puVar28;\n  auStack_b00._28_4_ = p_Var22;\n  auStack_b00._32_4_ = p_Var6;\n  auStack_b00._36_4_ = pcVar41;\n  if (1 < (int)p_Var39) {\n    (**(code **)(pcVar36 + 0x17414))();\n    pcVar37 = *(code **)(auStack_b3c._52_4_ + -0x7c10);\n  }\n  (*pcVar37)((png_structrp)auStack_b00,iVar10);\n  (**(code **)(auStack_b3c._52_4_ + -0x7c10))(auStack_b00 + 4,pa_Var19);\n  ppVar16 = (png_structrp)&DAT_70485973;\n  auStack_b00[8] = SUB41(p_Var39,0);\n  ppVar25 = ppVar31;\n  ppVar20 = (png_structrp)auStack_b00;\n  png_write_complete_chunk(ppVar31,0x70485973,(png_const_bytep)auStack_b00,9);\n  if (auStack_b00._12_4_ == *piVar34) {\n    return;\n  }\n  pcVar36 = *(code **)(auStack_b3c._52_4_ + -0x7b6c);\n  pcVar37 = png_write_tIME;\n  (*pcVar36)();\n  pcStack_b48 = pcVar36 + 0x1eed0;\n  puVar28 = *(ulong **)(pcVar36 + 0x1739c);\n  auStack_b3c._8_4_ = *puVar28;\n  ppVar24 = (png_structrp)auStack_b00;\n  ppVar14 = ppVar25;\n  auStack_b3c._16_4_ = (png_structrp)auStack_b00;\n  auStack_b3c._20_4_ = piVar34;\n  auStack_b3c._24_4_ = p_Var39;\n  auStack_b3c._28_4_ = ppVar31;\n  auStack_b3c._32_4_ = pcVar37;\n  if ((((*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&\n       (ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)) &&\n      (*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18)) &&\n     (*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2) < 0x3d)) {\n    ppVar31 = (png_structrp)auStack_b3c;\n    (**(code **)(pcVar36 + 0x17200))\n              (ppVar31,*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc);\n    auStack_b3c[6] = *(undefined1 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2);\n    pVar2 = 0x74494d45;\n    auStack_b3c._2_2_ = *(undefined2 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\n    auStack_b3c._4_2_ = *(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp;\n    ppVar20 = ppVar31;\n    png_write_complete_chunk(ppVar25,0x74494d45,(png_const_bytep)ppVar31,7);\n  }\n  else {\n    pVar2 = *(int *)(pcVar36 + 0x16efc) + 0x272c;\n    (**(code **)(pcVar36 + 0x17320))();\n    ppVar16 = ppVar24;\n  }\n  if (auStack_b3c._8_4_ == *puVar28) {\n    return;\n  }\n  pcVar36 = *(code **)(pcStack_b48 + -0x7b6c);\n  pcVar37 = png_write_acTL;\n  (*pcVar36)();\n  pcStack_b88 = pcVar36 + 0x1edb0;\n  puVar29 = *(ulong **)(pcVar36 + 0x1727c);\n  ppVar14->num_frames_to_write = pVar2;\n  uStack_b74 = *puVar29;\n  ppStack_b6c = ppVar16;\n  puStack_b68 = puVar28;\n  ppStack_b64 = ppVar25;\n  ppStack_b60 = ppVar31;\n  pcStack_b5c = pcVar37;\n  (**(code **)(pcVar36 + 0x171a0))(apStack_b7c);\n  (**(code **)(pcStack_b88 + -0x7c10))(auStack_b78,ppVar20);\n  pVar23 = 8;\n  pVar2 = 0x6163544c;\n  ppVar31 = ppVar14;\n  ppVar5 = apStack_b7c;\n  png_write_complete_chunk(ppVar14,0x6163544c,apStack_b7c,8);\n  if (uStack_b74 == *puVar29) {\n    return;\n  }\n  pcVar36 = *(code **)(pcStack_b88 + -0x7b6c);\n  pcVar37 = png_write_fcTL;\n  (*pcVar36)();\n  piVar34 = *(int **)(pcVar36 + 0x171ac);\n  ppVar25 = (png_structrp)*piVar34;\n  uVar33 = (uint)uStack_b7e;\n  auStack_be0._28_4_ = ppVar25;\n  auStack_be0._32_4_ = apStack_b7c;\n  auStack_be0._36_4_ = ppVar14;\n  auStack_be0._40_4_ = puVar29;\n  auStack_be0._44_4_ = ppVar20;\n  auStack_be0._48_4_ = pa_Var19;\n  auStack_be0._52_4_ = ppVar12;\n  pa_Stack_ba8 = pa_Var18;\n  pcStack_ba4 = pcVar11;\n  puStack_ba0 = puVar40;\n  pcStack_b9c = pcVar37;\n  if (ppVar31->num_frames_written == 0) {\n    if (pVar23 == 0 && pcStack_b88 == (code *)0x0) {\n      if ((ppVar31->first_frame_width == pVar2) &&\n         ((png_const_bytep)ppVar31->first_frame_height == ppVar5)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar36 + 0x170fc))();\n    }\n    pBVar17 = (Bytef *)(*(int *)(pcVar36 + 0x16d0c) + 0x2784);\n    png_ptr_00 = ppVar31;\n    (**(code **)(pcVar36 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    png_ensure_fcTL_is_valid\n              (ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,\n               uStack_b7e,pStack_b79,pStack_b75);\n    (**(code **)(pcVar36 + 0x170d0))((png_structrp)auStack_be0,ppVar31->next_seq_num);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 4,pVar2);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 8,ppVar5);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0xc,pVar23);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0x10,pcStack_b88);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x14,pStack_b82);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x16,uVar33);\n    pVar23 = 0x1a;\n    pBVar17 = (Bytef *)0x6663544c;\n    auStack_be0[0x18] = pStack_b79;\n    auStack_be0[0x19] = pStack_b75;\n    ppVar25 = (png_structrp)auStack_be0;\n    png_write_complete_chunk(ppVar31,0x6663544c,(png_const_bytep)auStack_be0,0x1a);\n    ppVar12 = (png_structrp)*piVar34;\n    ppVar31->next_seq_num = ppVar31->next_seq_num + 1;\n    png_ptr_00 = (png_structp)auStack_be0._28_4_;\n    ppVar14 = (png_structrp)auStack_be0;\n    if ((png_structrp)auStack_be0._28_4_ == ppVar12) {\n      return;\n    }\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x17174);\n  pcVar37 = png_write_fdAT;\n  (*pcVar36)();\n  piVar34 = *(int **)(pcVar36 + 0x16fac);\n  ppStackY_c34 = (png_structrp)*piVar34;\n  ppStackY_c30 = ppVar31;\n  ppStackY_c2c = ppVar14;\n  ppStackY_c28 = ppVar5;\n  pStackY_c24 = pVar2;\n  uStackY_c20 = uVar33;\n  pcStackY_c1c = pcVar37;\n  if (png_ptr_00 != (png_structrp)0x0) {\n    png_write_chunk_header\n              (png_ptr_00,0x66644154,(png_uint_32)&ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp);\n  }\n  (**(code **)(pcVar36 + 0x16ed0))(auStackY_c38,png_ptr_00->next_seq_num);\n  (**(code **)(pcVar36 + 0x16fec))(png_ptr_00,auStackY_c38,4);\n  (**(code **)(pcVar36 + 0x16fec))(png_ptr_00);\n  (**(code **)(pcVar36 + 0x16ef8))(png_ptr_00);\n  ppVar12 = (png_structrp)*piVar34;\n  png_ptr_00->next_seq_num = png_ptr_00->next_seq_num + 1;\n  if (ppStackY_c34 == ppVar12) {\n    return;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x16f74);\n  ppVar12 = ppStackY_c34;\n  (*pcVar36)();\n  if (ppVar12->zowner == 0x49444154) goto LAB_0003c6d0;\n  if (ppVar12->zbuffer_list == (png_compression_bufferp)0x0) goto LAB_0003c8fc;\n  png_free_buffer_list(ppVar12,&ppVar12->zbuffer_list->next);\n  while( true ) {\n    pVar7 = png_image_size(ppVar12);\n    iVar10 = png_deflate_claim(ppVar12,0x49444154,pVar7);\n    if (iVar10 != 0) break;\n    ppVar8 = ppVar12->zbuffer_list;\n    (ppVar12->zstream).avail_out = ppVar12->zbuffer_size;\n    (ppVar12->zstream).next_out = ppVar8->output;\nLAB_0003c6d0:\n    (ppVar12->zstream).next_in = pBVar17;\n    do {\n      pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      do {\n        (ppVar12->zstream).avail_in = (uInt)ppVar25;\n        pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);\n        ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;\n        (ppVar12->zstream).avail_in = 0;\n        if ((ppVar12->zstream).avail_out != 0) {\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        pVar26 = ppVar12->zbuffer_size;\n        ppVar32 = ppVar12->zbuffer_list->output;\n        if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n          optimize_cmf(ppVar32,pVar7);\n        }\n        if (pVar26 != 0) {\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }\n        uVar33 = ppVar12->mode;\n        (ppVar12->zstream).next_out = ppVar32;\n        (ppVar12->zstream).avail_out = pVar26;\n        ppVar12->mode = uVar33 | 4;\n        if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;\n        pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      } while (pVar23 != 0);\n    } while (ppVar25 != (png_structrp)0x0);\n    if (pVar23 != 4) {\n      return;\n    }\n    (**(code **)(pcVar36 + 0x16dfc))(ppVar12,*(int *)(pcVar36 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    ppVar8 = (png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))();\n    ppVar12->zbuffer_list = ppVar8;\n    ppVar8->next = (png_compression_buffer *)0x0;\n  }\n  (**(code **)(pcVar36 + 0x16dfc))(ppVar12,(ppVar12->zstream).msg);\nLAB_0003c944:\n  pcVar37 = *(code **)(pcVar36 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar37)(ppVar12,pBVar17);\n  pcVar36 = *(code **)(pcVar36 + 0x16dfc);\n  (*pcVar36)(ppVar12,(ppVar12->zstream).msg);\n  uVar33 = (uint)ppVar12->usr_channels * (uint)ppVar12->usr_bit_depth;\n  if (uVar33 < 8) {\n    uVar27 = ppVar12->width * uVar33 + 7 >> 3;\n  }\n  else {\n    uVar27 = (uVar33 >> 3) * ppVar12->width;\n  }\n  iVar10 = uVar27 + 1;\n  pcVar37 = *(code **)(pcVar36 + 0x169a0);\n  ppVar12->maximum_pixel_depth = (png_byte)uVar33;\n  ppVar12->transformed_pixel_depth = ppVar12->pixel_depth;\n  ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n  pVar2 = ppVar12->height;\n  uVar33 = (uint)ppVar12->do_filter;\n  ppVar12->row_buf = ppVar9;\n  *ppVar9 = '\0';\n  if (pVar2 == 1) {\n    uVar33 = uVar33 & 0x1f;\n  }\n  pVar23 = ppVar12->width;\n  if (pVar23 == 1) {\n    uVar33 = uVar33 & 0x2f;\n  }\n  if (uVar33 == 0) {\n    ppVar12->do_filter = '\b';\n    goto LAB_0003ca48;\n  }\n  pVar30 = (png_byte)uVar33;\n  ppVar12->do_filter = pVar30;\n  if (((uVar33 & 0xf0) == 0) || (ppVar12->try_row != (png_bytep)0x0)) {\nLAB_0003ca24:\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if ((uVar33 & 0xe0) == 0) {\n      pVar2 = ppVar12->height;\n      pVar23 = ppVar12->width;\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    ppVar9 = (png_bytep)(**(code **)(pcVar36 + 0x169a0))(ppVar12,iVar10);\n    ppVar12->try_row = ppVar9;\n    iVar3 = -((int)(uVar33 << 0x1b) >> 0x1f);\n    if ((uVar33 & 0x20) != 0) {\n      iVar3 = iVar3 + 1;\n    }\n    if ((uVar33 & 0x40) != 0) {\n      iVar3 = iVar3 + 1;\n      if (-1 < (char)pVar30) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\nLAB_0003cb10:\n      ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n      ppVar12->tst_row = ppVar9;\n      goto LAB_0003ca24;\n    }\n    if (-1 < (char)pVar30) {\nLAB_0003cb38:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\n      if (iVar3 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if (iVar3 != 0) goto LAB_0003cb08;\n  }\n  ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n  pVar2 = ppVar12->height;\n  pVar23 = ppVar12->width;\n  ppVar12->prev_row = ppVar9;\nLAB_0003ca48:\n  if ((ppVar12->interlaced != '\0') && ((ppVar12->transformations & 2) == 0)) {\n    ppVar12->num_rows = pVar2 + 7 >> 3;\n    ppVar12->usr_width = pVar23 + 7 >> 3;\n    return;\n  }\n  ppVar12->num_rows = pVar2;\n  ppVar12->usr_width = pVar23;\n  return;\n}" primitive_type (function_declarator "png_write_zTXt(png_structrp png_ptr,png_const_charp key,png_const_charp text,int compression)" identifier (parameter_list "(png_structrp png_ptr,png_const_charp key,png_const_charp text,int compression)" ( (parameter_declaration "png_structrp png_ptr" type_identifier identifier) , (parameter_declaration "png_const_charp key" type_identifier identifier) , (parameter_declaration "png_const_charp text" type_identifier identifier) , (parameter_declaration "int compression" primitive_type identifier) ))) (compound_statement "{\n  __jmp_buf_tag *p_Var1;\n  png_uint_32 pVar2;\n  int iVar3;\n  compression_state *pcVar4;\n  png_const_bytep ppVar5;\n  jmp_buf *data;\n  png_error_ptr p_Var6;\n  png_alloc_size_t pVar7;\n  png_compression_bufferp ppVar8;\n  png_bytep ppVar9;\n  int iVar10;\n  compression_state *pcVar11;\n  png_structrp ppVar12;\n  undefined4 uVar13;\n  png_structrp ppVar14;\n  png_structp png_ptr_00;\n  char *pcVar15;\n  png_const_charp key_00;\n  png_structrp ppVar16;\n  Bytef *pBVar17;\n  jmp_buf *pa_Var18;\n  jmp_buf *pa_Var19;\n  png_structrp ppVar20;\n  compression_state *pcVar21;\n  png_error_ptr p_Var22;\n  png_uint_32 pVar23;\n  compression_state *unaff_s0;\n  png_error_ptr length;\n  png_structrp ppVar24;\n  png_structrp unaff_s1;\n  png_structrp ppVar25;\n  png_size_t pVar26;\n  uint uVar27;\n  png_const_charp unaff_s2;\n  ulong *puVar28;\n  ulong *puVar29;\n  png_byte pVar30;\n  png_structrp ppVar31;\n  png_byte *ppVar32;\n  compression_state *unaff_s4;\n  uint uVar33;\n  compression_state *unaff_s5;\n  undefined4 unaff_s6;\n  compression_state *new_key_00;\n  int *piVar34;\n  undefined *puVar35;\n  code *pcVar36;\n  code *pcVar37;\n  undefined *puVar38;\n  png_error_ptr p_Var39;\n  compression_state *unaff_s8;\n  undefined4 *puVar40;\n  code *pcVar41;\n  undefined1 auStackY_c38 [4];\n  png_structrp ppStackY_c34;\n  png_structp ppStackY_c30;\n  png_structrp ppStackY_c2c;\n  png_const_bytep ppStackY_c28;\n  png_uint_32 pStackY_c24;\n  uint uStackY_c20;\n  code *pcStackY_c1c;\n  undefined1 auStack_be0 [56];\n  jmp_buf *pa_Stack_ba8;\n  compression_state *pcStack_ba4;\n  undefined4 *puStack_ba0;\n  code *pcStack_b9c;\n  code *pcStack_b88;\n  png_uint_16 pStack_b82;\n  ushort uStack_b7e;\n  png_byte apStack_b7c [3];\n  png_byte pStack_b79;\n  undefined1 auStack_b78 [3];\n  png_byte pStack_b75;\n  ulong uStack_b74;\n  png_structrp ppStack_b6c;\n  ulong *puStack_b68;\n  png_structrp ppStack_b64;\n  png_structrp ppStack_b60;\n  code *pcStack_b5c;\n  code *pcStack_b48;\n  undefined1 auStack_b3c [60];\n  undefined1 auStack_b00 [68];\n  undefined1 auStack_abc [64];\n  ulong uStack_a7c;\n  png_structrp ppStack_a74;\n  png_structrp ppStack_a70;\n  png_alloc_size_t *ppStack_a6c;\n  png_structrp ppStack_a68;\n  compression_state *pcStack_a64;\n  compression_state *pcStack_a60;\n  compression_state *pcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  png_error_ptr p_Stack_a40;\n  png_rw_ptr p_Stack_a34;\n  png_rw_ptr p_Stack_a30;\n  png_voidp pvStack_a2c;\n  jmp_buf *pa_Stack_a28;\n  png_user_transform_ptr p_Stack_a24;\n  png_voidp pvStack_a20;\n  jmp_buf *pa_Stack_a1c;\n  undefined1 auStack_a18 [100];\n  png_structrp ppStack_9b4;\n  compression_state *pcStack_9b0;\n  png_structrp ppStack_9ac;\n  compression_state *pcStack_9a8;\n  compression_state *pcStack_9a4;\n  compression_state *pcStack_9a0;\n  int *piStack_99c;\n  compression_state *pcStack_998;\n  png_compression_bufferp ppStack_994;\n  jmp_buf *pa_Stack_988;\n  png_error_ptr p_Stack_984;\n  png_alloc_size_t *ppStack_980;\n  png_structrp ppStack_97c;\n  undefined1 auStack_978 [68];\n  compression_state *pcStack_934;\n  compression_state cStack_92c;\n  png_byte apStack_51f [83];\n  int iStack_4cc;\n  compression_state *pcStack_4c8;\n  png_structrp ppStack_4c4;\n  png_const_charp pcStack_4c0;\n  undefined *puStack_4bc;\n  compression_state *pcStack_4b8;\n  compression_state *pcStack_4b4;\n  png_byte apStack_4b0 [4];\n  compression_state *pcStack_48c;\n  compression_state comp;\n  png_byte new_key [81];\n  \n  puVar38 = PTR___stack_chk_guard_000534bc;\n  iVar10 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (compression == -1) {\n    compression = 0;\n    png_write_tEXt(png_ptr,key,text,0);\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\nLAB_0003b4a4:\n    if (iVar10 == *(int *)puVar38) {\n      return;\n    }\n  }\n  else {\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\n    if (compression == 0) {\n      unaff_s4 = (compression_state *)new_key;\n      pcVar11 = unaff_s4;\n      pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4);\n      unaff_s1 = png_ptr;\n      unaff_s2 = text;\n      if (pVar2 != 0) {\n        unaff_s0 = (compression_state *)(pVar2 + 2);\n        new_key[pVar2 + 1] = '\0';\n        if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }\n        unaff_s6._0_1_ = 'z';\n        unaff_s6._1_1_ = 'T';\n        unaff_s6._2_1_ = '\0';\n        unaff_s6._3_1_ = '\0';\n        unaff_s5 = &comp;\n        comp.output_len = 0;\n        pcVar11 = unaff_s5;\n        compression = (int)unaff_s0;\n        comp.input = (png_const_bytep)text;\n        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);\n        if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);\n      }\n      (*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604);\n    }\n    key = PTR_s_nt_0005301c + 0x25e4;\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar35 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  auStack_978._56_4_ = puVar35 + 0x1fac0;\n  piVar34 = *(int **)(puVar35 + 0x17f8c);\n  new_key_00 = (compression_state *)&stack0xfffffae0;\n  puStack_4bc = puVar38;\n  iStack_4cc = *piVar34;\n  pcVar4 = new_key_00;\n  pcVar21 = (compression_state *)compression;\n  pcStack_4c8 = unaff_s0;\n  ppStack_4c4 = unaff_s1;\n  pcStack_4c0 = unaff_s2;\n  pcStack_4b8 = unaff_s4;\n  pcStack_4b4 = unaff_s5;\n  apStack_4b0 = (png_byte  [4])unaff_s6;\n  pVar2 = png_check_keyword(ppVar12,(png_const_charp)pcVar11,(png_bytep)new_key_00);\n  puVar38 = (undefined *)auStack_978._56_4_;\n  if (pVar2 == 0) {\nLAB_0003b954:\n    iVar10 = *(int *)(puVar38 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10);\nLAB_0003b968:\n    pcVar11 = pcVar21;\n    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10 + 0x2650);\n  }\n  else {\n    if ((compression_state *)key != (compression_state *)0x0) {\n      if (0 < (int)key) {\n        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;\n        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      if ((compression_state *)key == (compression_state *)&DAT_ffffffff) {\nLAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;\n        apStack_51f[pVar2] = '\0';\n        apStack_51f[pVar2 + 1] = '\0';\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar38 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    pcStack_934 = (compression_state *)&DAT_00000001;\n    apStack_51f[pVar2] = '\x01';\n    apStack_51f[pVar2 + 1] = '\0';\njoined_r0x0003b780:\n    if ((compression_state *)compression == (compression_state *)0x0) {\n      key = &DAT_00000001;\n      compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;\n    }\n    else {\n      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);\n      key = (png_const_charp)(iVar10 + 1);\n    }\n    iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(&_gp);\n    unaff_s8 = (compression_state *)(iVar10 + 1);\n    if (pcStack_48c != (compression_state *)0x0) {\n      cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c);\n      if (key <= (compression_state *)(0x7fffffff - (pVar2 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      pcVar11 = (compression_state *)0x7fffffff;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (pcStack_934 != (compression_state *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      cStack_92c.output_len = 0;\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      pcVar21 = (compression_state *)0x7fffffff;\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)) {\n        cStack_92c.output_len = cStack_92c.input_len;\n        if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }\n        pcVar4 = (compression_state *)cStack_92c.output_len;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    cStack_92c.input_len = 0;\n    pcStack_48c = (compression_state *)(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84);\n    if ((compression_state *)(0x7fffffff - (pVar2 + 3)) < key) goto LAB_0003b7c8;\nLAB_0003b648:\n    if ((compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))\n        < unaff_s8) goto LAB_0003b7c8;\n    pcVar11 = (compression_state *)\n              (((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8);\n    cStack_92c.input = (png_const_bytep)pcStack_48c;\n    if (pcStack_934 == (compression_state *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    cStack_92c.output_len = 0;\n    unaff_s0 = (compression_state *)(pVar2 + 3);\n    pcStack_48c = &cStack_92c;\n    pcVar4 = pcStack_48c;\n    pcStack_934 = pcVar11;\n    iVar10 = png_text_compress(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11);\n    puVar38 = (undefined *)auStack_978._56_4_;\n    if (iVar10 == 0) {\n      pcVar4 = unaff_s8;\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);\n        pcVar21 = pcVar11;\n      }\n      else {\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }\n      png_write_compressed_data_out(ppVar12,pcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      (**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      if (iStack_4cc == *piVar34) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  pcVar15 = (ppVar12->zstream).msg;\n  pcVar36 = *(code **)(puVar38 + -0x7be4);\n  pcVar41 = png_write_oFFs;\n  ppVar31 = ppVar12;\n  (*pcVar36)(ppVar12,pcVar15);\n  ppStack_980 = (png_alloc_size_t *)(pcVar36 + 0x1f668);\n  ppVar25 = *(png_structrp *)(pcVar36 + 0x17b34);\n  auStack_978._12_4_ = ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc;\n  pcVar37 = *(code **)(pcVar36 + 0x17a50);\n  auStack_978._16_4_ = unaff_s0;\n  auStack_978._20_4_ = ppVar12;\n  auStack_978._24_4_ = pcStack_48c;\n  auStack_978._28_4_ = &_gp;\n  auStack_978._32_4_ = compression;\n  auStack_978._36_4_ = pcVar41;\n  if (1 < (int)pcVar11) {\n    (**(code **)(pcVar36 + 0x17ab8))();\n    pcVar37 = (code *)ppStack_980[-0x1f06];\n  }\n  (*pcVar37)((jmp_buf *)auStack_978,pcVar15);\n  (*(code *)ppStack_980[-0x1f06])(auStack_978 + 4,pcVar4);\n  p_Var22 = (png_error_ptr)0x9;\n  key_00 = &DAT_6f464673;\n  auStack_978[8] = SUB41(pcVar11,0);\n  ppVar12 = ppVar31;\n  pa_Var18 = (jmp_buf *)auStack_978;\n  png_write_complete_chunk(ppVar31,0x6f464673,(png_const_bytep)auStack_978,9);\n  if ((void *)auStack_978._12_4_ == ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc) {\n    return;\n  }\n  pcVar36 = (code *)ppStack_980[-0x1edb];\n  pcVar37 = png_write_pCAL;\n  (*pcVar36)();\n  pcVar21 = (compression_state *)ppStack_980;\n  p_Var39 = pcVar36 + 0x1f574;\n  p_Stack_a30 = *(png_rw_ptr *)(pcVar36 + 0x17a40);\n  p_Stack_a34 = (png_rw_ptr)auStack_978._0_4_;\n  auStack_a18._92_4_ = *(undefined4 *)p_Stack_a30;\n  ppStack_a70 = ppVar25;\n  p_Stack_a40 = p_Var39;\n  auStack_a18._96_4_ = (jmp_buf *)auStack_978;\n  ppStack_9b4 = ppVar25;\n  pcStack_9b0 = pcVar11;\n  ppStack_9ac = ppVar31;\n  pcStack_9a8 = pcVar4;\n  pcStack_9a4 = (compression_state *)key;\n  pcStack_9a0 = new_key_00;\n  piStack_99c = piVar34;\n  pcStack_998 = unaff_s8;\n  ppStack_994 = (png_compression_bufferp)pcVar37;\n  pa_Stack_988 = pa_Var18;\n  p_Stack_984 = p_Var22;\n  if ((int)ppStack_980 < 4) {\n    pa_Var18 = (jmp_buf *)(auStack_a18 + 0xc);\n    pa_Stack_a1c = pa_Var18;\n    pVar2 = png_check_keyword(ppVar12,key_00,(png_bytep)pa_Var18);\n    p_Var39 = p_Stack_a40;\n    ppStack_a70 = ppVar12;\n    if (pVar2 == 0) {\n      (**(code **)(p_Stack_a40 + -0x7be4))(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8);\n      pcVar4 = (compression_state *)0x0;\n      goto LAB_0003bebc;\n    }\n    pvStack_a2c = (png_voidp)(pVar2 + 1);\n    ppVar31 = (png_structrp)(uint)(ppStack_97c != (png_structrp)0x0);\n    p_Stack_a24 = (png_user_transform_ptr)((uint)pcVar21 & 0xff);\n    iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(p_Stack_a34);\n    pa_Stack_a28 = (jmp_buf *)((int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8);\n    piVar34 = (int *)((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3);\n    pcVar4 = (compression_state *)\n             (**(code **)(p_Stack_a40 + -0x7ce8))(ppVar12,(int)ppStack_97c << 2);\n    pvStack_a20 = (png_voidp)((uint)ppStack_97c & 0xff);\n    if ((int)ppStack_97c < 1) {\n      if (ppVar12 == (png_structrp)0x0) {\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);\n      }\n    }\n    else {\n      ppVar31 = (png_structrp)0x0;\n      key = (png_const_charp)auStack_978._4_4_;\n      pcVar11 = pcVar4;\n      do {\n        uVar13 = *(undefined4 *)key;\n        key = (png_const_charp)((int)key + 4);\n        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);\n        ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);\n        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        pcVar11->input = ppVar5;\n        piVar34 = (int *)((int)piVar34 + (int)ppVar5);\n        pcVar11 = (compression_state *)&pcVar11->input_len;\n      } while (ppStack_97c != ppVar31);\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }\n      new_key_00 = (compression_state *)0x0;\n      pcVar21 = pcVar4;\n      puVar40 = (undefined4 *)auStack_978._4_4_;\n      do {\n        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);\n        pa_Var18 = (jmp_buf *)pcVar21->input;\n        uVar13 = *puVar40;\n        pcVar21 = (compression_state *)&pcVar21->input_len;\n        puVar40 = puVar40 + 1;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);\n        ppVar25 = ppStack_97c;\n        auStack_978._4_4_ = puVar40;\n      } while ((int)new_key_00 < (int)ppStack_97c);\n    }\n    pcVar11 = pcVar4;\n    (**(code **)(p_Stack_a40 + -0x7ccc))(ppVar12);\n    (**(code **)(p_Stack_a40 + -0x7be8))();\n    ppStack_a74 = ppVar25;\n    p_Var39 = p_Stack_a40;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n    if (auStack_a18._92_4_ == *(uInt *)p_Stack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pcVar11 = (compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c);\n    (**(code **)(p_Var39 + -0x7be4))();\n    ppStack_a74 = ppStack_97c;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n  }\n  pcVar36 = *(code **)(p_Var39 + -0x7b6c);\n  pcVar37 = png_write_sCAL_s;\n  (*pcVar36)();\n  auStack_b00._56_4_ = pcVar36 + 0x1f118;\n  puVar28 = *(ulong **)(pcVar36 + 0x175e4);\n  uStack_a7c = *puVar28;\n  pa_Var19 = pa_Var18;\n  p_Var39 = p_Var22;\n  ppStack_a6c = (png_alloc_size_t *)pcVar21;\n  ppStack_a68 = ppVar31;\n  pcStack_a64 = pcVar4;\n  pcStack_a60 = (compression_state *)key;\n  pcStack_a5c = new_key_00;\n  piStack_a58 = piVar34;\n  pcStack_a54 = pcVar37;\n  data = (jmp_buf *)(**(code **)(pcVar36 + 0x174fc))(pa_Var18);\n  p_Var6 = (png_error_ptr)(**(code **)(auStack_b00._56_4_ + -0x7c1c))(p_Var22);\n  length = p_Var6 + (int)((int)&(*data)[0].__jmpbuf[0].__pc + 2);\n  ppVar31 = ppVar12;\n  if (&DAT_00000040 < length) {\n    iVar10 = *(int *)(auStack_b00._56_4_ + -0x7fd4) + 0x26e0;\n    (**(code **)(auStack_b00._56_4_ + -0x7bb0))(ppVar12,iVar10);\n  }\n  else {\n    auStack_abc[0] = (png_byte)pcVar11;\n    (**(code **)(auStack_b00._56_4_ + -0x7bf0))\n              (auStack_abc + 1,pa_Var18,(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f);\n    p_Var1 = *data;\n    data = (jmp_buf *)auStack_abc;\n    (**(code **)(auStack_b00._56_4_ + -0x7b2c))\n              ((code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,p_Var6);\n    iVar10 = 0x7343414c;\n    pa_Var19 = data;\n    p_Var39 = length;\n    png_write_complete_chunk(ppVar12,0x7343414c,(png_const_bytep)data,(size_t)length);\n  }\n  if (uStack_a7c == *puVar28) {\n    return;\n  }\n  pcVar36 = *(code **)(auStack_b00._56_4_ + -0x7b6c);\n  pcVar41 = png_write_pHYs;\n  (*pcVar36)();\n  auStack_b3c._52_4_ = pcVar36 + 0x1efc4;\n  piVar34 = *(int **)(pcVar36 + 0x17490);\n  auStack_b00._12_4_ = *piVar34;\n  pcVar37 = *(code **)(pcVar36 + 0x173b4);\n  auStack_b00._16_4_ = length;\n  auStack_b00._20_4_ = data;\n  auStack_b00._24_4_ = puVar28;\n  auStack_b00._28_4_ = p_Var22;\n  auStack_b00._32_4_ = p_Var6;\n  auStack_b00._36_4_ = pcVar41;\n  if (1 < (int)p_Var39) {\n    (**(code **)(pcVar36 + 0x17414))();\n    pcVar37 = *(code **)(auStack_b3c._52_4_ + -0x7c10);\n  }\n  (*pcVar37)((png_structrp)auStack_b00,iVar10);\n  (**(code **)(auStack_b3c._52_4_ + -0x7c10))(auStack_b00 + 4,pa_Var19);\n  ppVar16 = (png_structrp)&DAT_70485973;\n  auStack_b00[8] = SUB41(p_Var39,0);\n  ppVar25 = ppVar31;\n  ppVar20 = (png_structrp)auStack_b00;\n  png_write_complete_chunk(ppVar31,0x70485973,(png_const_bytep)auStack_b00,9);\n  if (auStack_b00._12_4_ == *piVar34) {\n    return;\n  }\n  pcVar36 = *(code **)(auStack_b3c._52_4_ + -0x7b6c);\n  pcVar37 = png_write_tIME;\n  (*pcVar36)();\n  pcStack_b48 = pcVar36 + 0x1eed0;\n  puVar28 = *(ulong **)(pcVar36 + 0x1739c);\n  auStack_b3c._8_4_ = *puVar28;\n  ppVar24 = (png_structrp)auStack_b00;\n  ppVar14 = ppVar25;\n  auStack_b3c._16_4_ = (png_structrp)auStack_b00;\n  auStack_b3c._20_4_ = piVar34;\n  auStack_b3c._24_4_ = p_Var39;\n  auStack_b3c._28_4_ = ppVar31;\n  auStack_b3c._32_4_ = pcVar37;\n  if ((((*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&\n       (ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)) &&\n      (*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18)) &&\n     (*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2) < 0x3d)) {\n    ppVar31 = (png_structrp)auStack_b3c;\n    (**(code **)(pcVar36 + 0x17200))\n              (ppVar31,*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc);\n    auStack_b3c[6] = *(undefined1 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2);\n    pVar2 = 0x74494d45;\n    auStack_b3c._2_2_ = *(undefined2 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\n    auStack_b3c._4_2_ = *(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp;\n    ppVar20 = ppVar31;\n    png_write_complete_chunk(ppVar25,0x74494d45,(png_const_bytep)ppVar31,7);\n  }\n  else {\n    pVar2 = *(int *)(pcVar36 + 0x16efc) + 0x272c;\n    (**(code **)(pcVar36 + 0x17320))();\n    ppVar16 = ppVar24;\n  }\n  if (auStack_b3c._8_4_ == *puVar28) {\n    return;\n  }\n  pcVar36 = *(code **)(pcStack_b48 + -0x7b6c);\n  pcVar37 = png_write_acTL;\n  (*pcVar36)();\n  pcStack_b88 = pcVar36 + 0x1edb0;\n  puVar29 = *(ulong **)(pcVar36 + 0x1727c);\n  ppVar14->num_frames_to_write = pVar2;\n  uStack_b74 = *puVar29;\n  ppStack_b6c = ppVar16;\n  puStack_b68 = puVar28;\n  ppStack_b64 = ppVar25;\n  ppStack_b60 = ppVar31;\n  pcStack_b5c = pcVar37;\n  (**(code **)(pcVar36 + 0x171a0))(apStack_b7c);\n  (**(code **)(pcStack_b88 + -0x7c10))(auStack_b78,ppVar20);\n  pVar23 = 8;\n  pVar2 = 0x6163544c;\n  ppVar31 = ppVar14;\n  ppVar5 = apStack_b7c;\n  png_write_complete_chunk(ppVar14,0x6163544c,apStack_b7c,8);\n  if (uStack_b74 == *puVar29) {\n    return;\n  }\n  pcVar36 = *(code **)(pcStack_b88 + -0x7b6c);\n  pcVar37 = png_write_fcTL;\n  (*pcVar36)();\n  piVar34 = *(int **)(pcVar36 + 0x171ac);\n  ppVar25 = (png_structrp)*piVar34;\n  uVar33 = (uint)uStack_b7e;\n  auStack_be0._28_4_ = ppVar25;\n  auStack_be0._32_4_ = apStack_b7c;\n  auStack_be0._36_4_ = ppVar14;\n  auStack_be0._40_4_ = puVar29;\n  auStack_be0._44_4_ = ppVar20;\n  auStack_be0._48_4_ = pa_Var19;\n  auStack_be0._52_4_ = ppVar12;\n  pa_Stack_ba8 = pa_Var18;\n  pcStack_ba4 = pcVar11;\n  puStack_ba0 = puVar40;\n  pcStack_b9c = pcVar37;\n  if (ppVar31->num_frames_written == 0) {\n    if (pVar23 == 0 && pcStack_b88 == (code *)0x0) {\n      if ((ppVar31->first_frame_width == pVar2) &&\n         ((png_const_bytep)ppVar31->first_frame_height == ppVar5)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar36 + 0x170fc))();\n    }\n    pBVar17 = (Bytef *)(*(int *)(pcVar36 + 0x16d0c) + 0x2784);\n    png_ptr_00 = ppVar31;\n    (**(code **)(pcVar36 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    png_ensure_fcTL_is_valid\n              (ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,\n               uStack_b7e,pStack_b79,pStack_b75);\n    (**(code **)(pcVar36 + 0x170d0))((png_structrp)auStack_be0,ppVar31->next_seq_num);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 4,pVar2);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 8,ppVar5);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0xc,pVar23);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0x10,pcStack_b88);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x14,pStack_b82);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x16,uVar33);\n    pVar23 = 0x1a;\n    pBVar17 = (Bytef *)0x6663544c;\n    auStack_be0[0x18] = pStack_b79;\n    auStack_be0[0x19] = pStack_b75;\n    ppVar25 = (png_structrp)auStack_be0;\n    png_write_complete_chunk(ppVar31,0x6663544c,(png_const_bytep)auStack_be0,0x1a);\n    ppVar12 = (png_structrp)*piVar34;\n    ppVar31->next_seq_num = ppVar31->next_seq_num + 1;\n    png_ptr_00 = (png_structp)auStack_be0._28_4_;\n    ppVar14 = (png_structrp)auStack_be0;\n    if ((png_structrp)auStack_be0._28_4_ == ppVar12) {\n      return;\n    }\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x17174);\n  pcVar37 = png_write_fdAT;\n  (*pcVar36)();\n  piVar34 = *(int **)(pcVar36 + 0x16fac);\n  ppStackY_c34 = (png_structrp)*piVar34;\n  ppStackY_c30 = ppVar31;\n  ppStackY_c2c = ppVar14;\n  ppStackY_c28 = ppVar5;\n  pStackY_c24 = pVar2;\n  uStackY_c20 = uVar33;\n  pcStackY_c1c = pcVar37;\n  if (png_ptr_00 != (png_structrp)0x0) {\n    png_write_chunk_header\n              (png_ptr_00,0x66644154,(png_uint_32)&ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp);\n  }\n  (**(code **)(pcVar36 + 0x16ed0))(auStackY_c38,png_ptr_00->next_seq_num);\n  (**(code **)(pcVar36 + 0x16fec))(png_ptr_00,auStackY_c38,4);\n  (**(code **)(pcVar36 + 0x16fec))(png_ptr_00);\n  (**(code **)(pcVar36 + 0x16ef8))(png_ptr_00);\n  ppVar12 = (png_structrp)*piVar34;\n  png_ptr_00->next_seq_num = png_ptr_00->next_seq_num + 1;\n  if (ppStackY_c34 == ppVar12) {\n    return;\n  }\n  pcVar36 = *(code **)(pcVar36 + 0x16f74);\n  ppVar12 = ppStackY_c34;\n  (*pcVar36)();\n  if (ppVar12->zowner == 0x49444154) goto LAB_0003c6d0;\n  if (ppVar12->zbuffer_list == (png_compression_bufferp)0x0) goto LAB_0003c8fc;\n  png_free_buffer_list(ppVar12,&ppVar12->zbuffer_list->next);\n  while( true ) {\n    pVar7 = png_image_size(ppVar12);\n    iVar10 = png_deflate_claim(ppVar12,0x49444154,pVar7);\n    if (iVar10 != 0) break;\n    ppVar8 = ppVar12->zbuffer_list;\n    (ppVar12->zstream).avail_out = ppVar12->zbuffer_size;\n    (ppVar12->zstream).next_out = ppVar8->output;\nLAB_0003c6d0:\n    (ppVar12->zstream).next_in = pBVar17;\n    do {\n      pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      do {\n        (ppVar12->zstream).avail_in = (uInt)ppVar25;\n        pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);\n        ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;\n        (ppVar12->zstream).avail_in = 0;\n        if ((ppVar12->zstream).avail_out != 0) {\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        pVar26 = ppVar12->zbuffer_size;\n        ppVar32 = ppVar12->zbuffer_list->output;\n        if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n          optimize_cmf(ppVar32,pVar7);\n        }\n        if (pVar26 != 0) {\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }\n        uVar33 = ppVar12->mode;\n        (ppVar12->zstream).next_out = ppVar32;\n        (ppVar12->zstream).avail_out = pVar26;\n        ppVar12->mode = uVar33 | 4;\n        if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;\n        pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      } while (pVar23 != 0);\n    } while (ppVar25 != (png_structrp)0x0);\n    if (pVar23 != 4) {\n      return;\n    }\n    (**(code **)(pcVar36 + 0x16dfc))(ppVar12,*(int *)(pcVar36 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    ppVar8 = (png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))();\n    ppVar12->zbuffer_list = ppVar8;\n    ppVar8->next = (png_compression_buffer *)0x0;\n  }\n  (**(code **)(pcVar36 + 0x16dfc))(ppVar12,(ppVar12->zstream).msg);\nLAB_0003c944:\n  pcVar37 = *(code **)(pcVar36 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar37)(ppVar12,pBVar17);\n  pcVar36 = *(code **)(pcVar36 + 0x16dfc);\n  (*pcVar36)(ppVar12,(ppVar12->zstream).msg);\n  uVar33 = (uint)ppVar12->usr_channels * (uint)ppVar12->usr_bit_depth;\n  if (uVar33 < 8) {\n    uVar27 = ppVar12->width * uVar33 + 7 >> 3;\n  }\n  else {\n    uVar27 = (uVar33 >> 3) * ppVar12->width;\n  }\n  iVar10 = uVar27 + 1;\n  pcVar37 = *(code **)(pcVar36 + 0x169a0);\n  ppVar12->maximum_pixel_depth = (png_byte)uVar33;\n  ppVar12->transformed_pixel_depth = ppVar12->pixel_depth;\n  ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n  pVar2 = ppVar12->height;\n  uVar33 = (uint)ppVar12->do_filter;\n  ppVar12->row_buf = ppVar9;\n  *ppVar9 = '\0';\n  if (pVar2 == 1) {\n    uVar33 = uVar33 & 0x1f;\n  }\n  pVar23 = ppVar12->width;\n  if (pVar23 == 1) {\n    uVar33 = uVar33 & 0x2f;\n  }\n  if (uVar33 == 0) {\n    ppVar12->do_filter = '\b';\n    goto LAB_0003ca48;\n  }\n  pVar30 = (png_byte)uVar33;\n  ppVar12->do_filter = pVar30;\n  if (((uVar33 & 0xf0) == 0) || (ppVar12->try_row != (png_bytep)0x0)) {\nLAB_0003ca24:\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if ((uVar33 & 0xe0) == 0) {\n      pVar2 = ppVar12->height;\n      pVar23 = ppVar12->width;\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    ppVar9 = (png_bytep)(**(code **)(pcVar36 + 0x169a0))(ppVar12,iVar10);\n    ppVar12->try_row = ppVar9;\n    iVar3 = -((int)(uVar33 << 0x1b) >> 0x1f);\n    if ((uVar33 & 0x20) != 0) {\n      iVar3 = iVar3 + 1;\n    }\n    if ((uVar33 & 0x40) != 0) {\n      iVar3 = iVar3 + 1;\n      if (-1 < (char)pVar30) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\nLAB_0003cb10:\n      ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n      ppVar12->tst_row = ppVar9;\n      goto LAB_0003ca24;\n    }\n    if (-1 < (char)pVar30) {\nLAB_0003cb38:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\n      if (iVar3 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if (iVar3 != 0) goto LAB_0003cb08;\n  }\n  ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n  pVar2 = ppVar12->height;\n  pVar23 = ppVar12->width;\n  ppVar12->prev_row = ppVar9;\nLAB_0003ca48:\n  if ((ppVar12->interlaced != '\0') && ((ppVar12->transformations & 2) == 0)) {\n    ppVar12->num_rows = pVar2 + 7 >> 3;\n    ppVar12->usr_width = pVar23 + 7 >> 3;\n    return;\n  }\n  ppVar12->num_rows = pVar2;\n  ppVar12->usr_width = pVar23;\n  return;\n}" { (declaration "__jmp_buf_tag *p_Var1;" type_identifier (pointer_declarator "*p_Var1" * identifier) ;) (declaration "png_uint_32 pVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "compression_state *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "png_const_bytep ppVar5;" type_identifier identifier ;) (declaration "jmp_buf *data;" type_identifier (pointer_declarator "*data" * identifier) ;) (declaration "png_error_ptr p_Var6;" type_identifier identifier ;) (declaration "png_alloc_size_t pVar7;" type_identifier identifier ;) (declaration "png_compression_bufferp ppVar8;" type_identifier identifier ;) (declaration "png_bytep ppVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "compression_state *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "png_structrp ppVar12;" type_identifier identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "png_structrp ppVar14;" type_identifier identifier ;) (declaration "png_structp png_ptr_00;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "png_const_charp key_00;" type_identifier identifier ;) (declaration "png_structrp ppVar16;" type_identifier identifier ;) (declaration "Bytef *pBVar17;" type_identifier (pointer_declarator "*pBVar17" * identifier) ;) (declaration "jmp_buf *pa_Var18;" type_identifier (pointer_declarator "*pa_Var18" * identifier) ;) (declaration "jmp_buf *pa_Var19;" type_identifier (pointer_declarator "*pa_Var19" * identifier) ;) (declaration "png_structrp ppVar20;" type_identifier identifier ;) (declaration "compression_state *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "png_error_ptr p_Var22;" type_identifier identifier ;) (declaration "png_uint_32 pVar23;" type_identifier identifier ;) (declaration "compression_state *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "png_error_ptr length;" type_identifier identifier ;) (declaration "png_structrp ppVar24;" type_identifier identifier ;) (declaration "png_structrp unaff_s1;" type_identifier identifier ;) (declaration "png_structrp ppVar25;" type_identifier identifier ;) (declaration "png_size_t pVar26;" type_identifier identifier ;) (declaration "uint uVar27;" type_identifier identifier ;) (declaration "png_const_charp unaff_s2;" type_identifier identifier ;) (declaration "ulong *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "ulong *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "png_byte pVar30;" type_identifier identifier ;) (declaration "png_structrp ppVar31;" type_identifier identifier ;) (declaration "png_byte *ppVar32;" type_identifier (pointer_declarator "*ppVar32" * identifier) ;) (declaration "compression_state *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "compression_state *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined4 unaff_s6;" type_identifier identifier ;) (declaration "compression_state *new_key_00;" type_identifier (pointer_declarator "*new_key_00" * identifier) ;) (declaration "int *piVar34;" primitive_type (pointer_declarator "*piVar34" * identifier) ;) (declaration "undefined *puVar35;" type_identifier (pointer_declarator "*puVar35" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "undefined *puVar38;" type_identifier (pointer_declarator "*puVar38" * identifier) ;) (declaration "png_error_ptr p_Var39;" type_identifier identifier ;) (declaration "compression_state *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined4 *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "code *pcVar41;" type_identifier (pointer_declarator "*pcVar41" * identifier) ;) (declaration "undefined1 auStackY_c38 [4];" type_identifier (array_declarator "auStackY_c38 [4]" identifier [ number_literal ]) ;) (declaration "png_structrp ppStackY_c34;" type_identifier identifier ;) (declaration "png_structp ppStackY_c30;" type_identifier identifier ;) (declaration "png_structrp ppStackY_c2c;" type_identifier identifier ;) (declaration "png_const_bytep ppStackY_c28;" type_identifier identifier ;) (declaration "png_uint_32 pStackY_c24;" type_identifier identifier ;) (declaration "uint uStackY_c20;" type_identifier identifier ;) (declaration "code *pcStackY_c1c;" type_identifier (pointer_declarator "*pcStackY_c1c" * identifier) ;) (declaration "undefined1 auStack_be0 [56];" type_identifier (array_declarator "auStack_be0 [56]" identifier [ number_literal ]) ;) (declaration "jmp_buf *pa_Stack_ba8;" type_identifier (pointer_declarator "*pa_Stack_ba8" * identifier) ;) (declaration "compression_state *pcStack_ba4;" type_identifier (pointer_declarator "*pcStack_ba4" * identifier) ;) (declaration "undefined4 *puStack_ba0;" type_identifier (pointer_declarator "*puStack_ba0" * identifier) ;) (declaration "code *pcStack_b9c;" type_identifier (pointer_declarator "*pcStack_b9c" * identifier) ;) (declaration "code *pcStack_b88;" type_identifier (pointer_declarator "*pcStack_b88" * identifier) ;) (declaration "png_uint_16 pStack_b82;" type_identifier identifier ;) (declaration "ushort uStack_b7e;" type_identifier identifier ;) (declaration "png_byte apStack_b7c [3];" type_identifier (array_declarator "apStack_b7c [3]" identifier [ number_literal ]) ;) (declaration "png_byte pStack_b79;" type_identifier identifier ;) (declaration "undefined1 auStack_b78 [3];" type_identifier (array_declarator "auStack_b78 [3]" identifier [ number_literal ]) ;) (declaration "png_byte pStack_b75;" type_identifier identifier ;) (declaration "ulong uStack_b74;" type_identifier identifier ;) (declaration "png_structrp ppStack_b6c;" type_identifier identifier ;) (declaration "ulong *puStack_b68;" type_identifier (pointer_declarator "*puStack_b68" * identifier) ;) (declaration "png_structrp ppStack_b64;" type_identifier identifier ;) (declaration "png_structrp ppStack_b60;" type_identifier identifier ;) (declaration "code *pcStack_b5c;" type_identifier (pointer_declarator "*pcStack_b5c" * identifier) ;) (declaration "code *pcStack_b48;" type_identifier (pointer_declarator "*pcStack_b48" * identifier) ;) (declaration "undefined1 auStack_b3c [60];" type_identifier (array_declarator "auStack_b3c [60]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_b00 [68];" type_identifier (array_declarator "auStack_b00 [68]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_abc [64];" type_identifier (array_declarator "auStack_abc [64]" identifier [ number_literal ]) ;) (declaration "ulong uStack_a7c;" type_identifier identifier ;) (declaration "png_structrp ppStack_a74;" type_identifier identifier ;) (declaration "png_structrp ppStack_a70;" type_identifier identifier ;) (declaration "png_alloc_size_t *ppStack_a6c;" type_identifier (pointer_declarator "*ppStack_a6c" * identifier) ;) (declaration "png_structrp ppStack_a68;" type_identifier identifier ;) (declaration "compression_state *pcStack_a64;" type_identifier (pointer_declarator "*pcStack_a64" * identifier) ;) (declaration "compression_state *pcStack_a60;" type_identifier (pointer_declarator "*pcStack_a60" * identifier) ;) (declaration "compression_state *pcStack_a5c;" type_identifier (pointer_declarator "*pcStack_a5c" * identifier) ;) (declaration "int *piStack_a58;" primitive_type (pointer_declarator "*piStack_a58" * identifier) ;) (declaration "code *pcStack_a54;" type_identifier (pointer_declarator "*pcStack_a54" * identifier) ;) (declaration "png_error_ptr p_Stack_a40;" type_identifier identifier ;) (declaration "png_rw_ptr p_Stack_a34;" type_identifier identifier ;) (declaration "png_rw_ptr p_Stack_a30;" type_identifier identifier ;) (declaration "png_voidp pvStack_a2c;" type_identifier identifier ;) (declaration "jmp_buf *pa_Stack_a28;" type_identifier (pointer_declarator "*pa_Stack_a28" * identifier) ;) (declaration "png_user_transform_ptr p_Stack_a24;" type_identifier identifier ;) (declaration "png_voidp pvStack_a20;" type_identifier identifier ;) (declaration "jmp_buf *pa_Stack_a1c;" type_identifier (pointer_declarator "*pa_Stack_a1c" * identifier) ;) (declaration "undefined1 auStack_a18 [100];" type_identifier (array_declarator "auStack_a18 [100]" identifier [ number_literal ]) ;) (declaration "png_structrp ppStack_9b4;" type_identifier identifier ;) (declaration "compression_state *pcStack_9b0;" type_identifier (pointer_declarator "*pcStack_9b0" * identifier) ;) (declaration "png_structrp ppStack_9ac;" type_identifier identifier ;) (declaration "compression_state *pcStack_9a8;" type_identifier (pointer_declarator "*pcStack_9a8" * identifier) ;) (declaration "compression_state *pcStack_9a4;" type_identifier (pointer_declarator "*pcStack_9a4" * identifier) ;) (declaration "compression_state *pcStack_9a0;" type_identifier (pointer_declarator "*pcStack_9a0" * identifier) ;) (declaration "int *piStack_99c;" primitive_type (pointer_declarator "*piStack_99c" * identifier) ;) (declaration "compression_state *pcStack_998;" type_identifier (pointer_declarator "*pcStack_998" * identifier) ;) (declaration "png_compression_bufferp ppStack_994;" type_identifier identifier ;) (declaration "jmp_buf *pa_Stack_988;" type_identifier (pointer_declarator "*pa_Stack_988" * identifier) ;) (declaration "png_error_ptr p_Stack_984;" type_identifier identifier ;) (declaration "png_alloc_size_t *ppStack_980;" type_identifier (pointer_declarator "*ppStack_980" * identifier) ;) (declaration "png_structrp ppStack_97c;" type_identifier identifier ;) (declaration "undefined1 auStack_978 [68];" type_identifier (array_declarator "auStack_978 [68]" identifier [ number_literal ]) ;) (declaration "compression_state *pcStack_934;" type_identifier (pointer_declarator "*pcStack_934" * identifier) ;) (declaration "compression_state cStack_92c;" type_identifier identifier ;) (declaration "png_byte apStack_51f [83];" type_identifier (array_declarator "apStack_51f [83]" identifier [ number_literal ]) ;) (declaration "int iStack_4cc;" primitive_type identifier ;) (declaration "compression_state *pcStack_4c8;" type_identifier (pointer_declarator "*pcStack_4c8" * identifier) ;) (declaration "png_structrp ppStack_4c4;" type_identifier identifier ;) (declaration "png_const_charp pcStack_4c0;" type_identifier identifier ;) (declaration "undefined *puStack_4bc;" type_identifier (pointer_declarator "*puStack_4bc" * identifier) ;) (declaration "compression_state *pcStack_4b8;" type_identifier (pointer_declarator "*pcStack_4b8" * identifier) ;) (declaration "compression_state *pcStack_4b4;" type_identifier (pointer_declarator "*pcStack_4b4" * identifier) ;) (declaration "png_byte apStack_4b0 [4];" type_identifier (array_declarator "apStack_4b0 [4]" identifier [ number_literal ]) ;) (declaration "compression_state *pcStack_48c;" type_identifier (pointer_declarator "*pcStack_48c" * identifier) ;) (declaration "compression_state comp;" type_identifier identifier ;) (declaration "png_byte new_key [81];" type_identifier (array_declarator "new_key [81]" identifier [ number_literal ]) ;) (expression_statement "puVar38 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar38 = PTR___stack_chk_guard_000534bc" identifier = identifier) ;) (expression_statement "iVar10 = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "iVar10 = *(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))) ;) (if_statement "if (compression == -1) {\n    compression = 0;\n    png_write_tEXt(png_ptr,key,text,0);\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\nLAB_0003b4a4:\n    if (iVar10 == *(int *)puVar38) {\n      return;\n    }\n  }\n  else {\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\n    if (compression == 0) {\n      unaff_s4 = (compression_state *)new_key;\n      pcVar11 = unaff_s4;\n      pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4);\n      unaff_s1 = png_ptr;\n      unaff_s2 = text;\n      if (pVar2 != 0) {\n        unaff_s0 = (compression_state *)(pVar2 + 2);\n        new_key[pVar2 + 1] = '\0';\n        if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }\n        unaff_s6._0_1_ = 'z';\n        unaff_s6._1_1_ = 'T';\n        unaff_s6._2_1_ = '\0';\n        unaff_s6._3_1_ = '\0';\n        unaff_s5 = &comp;\n        comp.output_len = 0;\n        pcVar11 = unaff_s5;\n        compression = (int)unaff_s0;\n        comp.input = (png_const_bytep)text;\n        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);\n        if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);\n      }\n      (*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604);\n    }\n    key = PTR_s_nt_0005301c + 0x25e4;\n    (*(code *)PTR_png_error_0005340c)();\n  }" if (parenthesized_expression "(compression == -1)" ( (binary_expression "compression == -1" identifier == number_literal) )) (compound_statement "{\n    compression = 0;\n    png_write_tEXt(png_ptr,key,text,0);\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\nLAB_0003b4a4:\n    if (iVar10 == *(int *)puVar38) {\n      return;\n    }\n  }" { (expression_statement "compression = 0;" (assignment_expression "compression = 0" identifier = number_literal) ;) (expression_statement "png_write_tEXt(png_ptr,key,text,0);" (call_expression "png_write_tEXt(png_ptr,key,text,0)" identifier (argument_list "(png_ptr,key,text,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "ppVar12 = png_ptr;" (assignment_expression "ppVar12 = png_ptr" identifier = identifier) ;) (expression_statement "pcVar11 = (compression_state *)text;" (assignment_expression "pcVar11 = (compression_state *)text" identifier = (cast_expression "(compression_state *)text" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0003b4a4:\n    if (iVar10 == *(int *)puVar38) {\n      return;\n    }" statement_identifier : (if_statement "if (iVar10 == *(int *)puVar38) {\n      return;\n    }" if (parenthesized_expression "(iVar10 == *(int *)puVar38)" ( (binary_expression "iVar10 == *(int *)puVar38" identifier == (pointer_expression "*(int *)puVar38" * (cast_expression "(int *)puVar38" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) }) (else_clause "else {\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\n    if (compression == 0) {\n      unaff_s4 = (compression_state *)new_key;\n      pcVar11 = unaff_s4;\n      pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4);\n      unaff_s1 = png_ptr;\n      unaff_s2 = text;\n      if (pVar2 != 0) {\n        unaff_s0 = (compression_state *)(pVar2 + 2);\n        new_key[pVar2 + 1] = '\0';\n        if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }\n        unaff_s6._0_1_ = 'z';\n        unaff_s6._1_1_ = 'T';\n        unaff_s6._2_1_ = '\0';\n        unaff_s6._3_1_ = '\0';\n        unaff_s5 = &comp;\n        comp.output_len = 0;\n        pcVar11 = unaff_s5;\n        compression = (int)unaff_s0;\n        comp.input = (png_const_bytep)text;\n        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);\n        if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);\n      }\n      (*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604);\n    }\n    key = PTR_s_nt_0005301c + 0x25e4;\n    (*(code *)PTR_png_error_0005340c)();\n  }" else (compound_statement "{\n    ppVar12 = png_ptr;\n    pcVar11 = (compression_state *)text;\n    if (compression == 0) {\n      unaff_s4 = (compression_state *)new_key;\n      pcVar11 = unaff_s4;\n      pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4);\n      unaff_s1 = png_ptr;\n      unaff_s2 = text;\n      if (pVar2 != 0) {\n        unaff_s0 = (compression_state *)(pVar2 + 2);\n        new_key[pVar2 + 1] = '\0';\n        if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }\n        unaff_s6._0_1_ = 'z';\n        unaff_s6._1_1_ = 'T';\n        unaff_s6._2_1_ = '\0';\n        unaff_s6._3_1_ = '\0';\n        unaff_s5 = &comp;\n        comp.output_len = 0;\n        pcVar11 = unaff_s5;\n        compression = (int)unaff_s0;\n        comp.input = (png_const_bytep)text;\n        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);\n        if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);\n      }\n      (*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604);\n    }\n    key = PTR_s_nt_0005301c + 0x25e4;\n    (*(code *)PTR_png_error_0005340c)();\n  }" { (expression_statement "ppVar12 = png_ptr;" (assignment_expression "ppVar12 = png_ptr" identifier = identifier) ;) (expression_statement "pcVar11 = (compression_state *)text;" (assignment_expression "pcVar11 = (compression_state *)text" identifier = (cast_expression "(compression_state *)text" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (compression == 0) {\n      unaff_s4 = (compression_state *)new_key;\n      pcVar11 = unaff_s4;\n      pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4);\n      unaff_s1 = png_ptr;\n      unaff_s2 = text;\n      if (pVar2 != 0) {\n        unaff_s0 = (compression_state *)(pVar2 + 2);\n        new_key[pVar2 + 1] = '\0';\n        if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }\n        unaff_s6._0_1_ = 'z';\n        unaff_s6._1_1_ = 'T';\n        unaff_s6._2_1_ = '\0';\n        unaff_s6._3_1_ = '\0';\n        unaff_s5 = &comp;\n        comp.output_len = 0;\n        pcVar11 = unaff_s5;\n        compression = (int)unaff_s0;\n        comp.input = (png_const_bytep)text;\n        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);\n        if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);\n      }\n      (*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604);\n    }" if (parenthesized_expression "(compression == 0)" ( (binary_expression "compression == 0" identifier == number_literal) )) (compound_statement "{\n      unaff_s4 = (compression_state *)new_key;\n      pcVar11 = unaff_s4;\n      pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4);\n      unaff_s1 = png_ptr;\n      unaff_s2 = text;\n      if (pVar2 != 0) {\n        unaff_s0 = (compression_state *)(pVar2 + 2);\n        new_key[pVar2 + 1] = '\0';\n        if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }\n        unaff_s6._0_1_ = 'z';\n        unaff_s6._1_1_ = 'T';\n        unaff_s6._2_1_ = '\0';\n        unaff_s6._3_1_ = '\0';\n        unaff_s5 = &comp;\n        comp.output_len = 0;\n        pcVar11 = unaff_s5;\n        compression = (int)unaff_s0;\n        comp.input = (png_const_bytep)text;\n        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);\n        if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);\n      }\n      (*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604);\n    }" { (expression_statement "unaff_s4 = (compression_state *)new_key;" (assignment_expression "unaff_s4 = (compression_state *)new_key" identifier = (cast_expression "(compression_state *)new_key" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar11 = unaff_s4;" (assignment_expression "pcVar11 = unaff_s4" identifier = identifier) ;) (expression_statement "pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4);" (assignment_expression "pVar2 = png_check_keyword(png_ptr,key,(png_bytep)unaff_s4)" identifier = (call_expression "png_check_keyword(png_ptr,key,(png_bytep)unaff_s4)" identifier (argument_list "(png_ptr,key,(png_bytep)unaff_s4)" ( identifier , identifier , (cast_expression "(png_bytep)unaff_s4" ( (type_descriptor "png_bytep" type_identifier) ) identifier) )))) ;) (expression_statement "unaff_s1 = png_ptr;" (assignment_expression "unaff_s1 = png_ptr" identifier = identifier) ;) (expression_statement "unaff_s2 = text;" (assignment_expression "unaff_s2 = text" identifier = identifier) ;) (if_statement "if (pVar2 != 0) {\n        unaff_s0 = (compression_state *)(pVar2 + 2);\n        new_key[pVar2 + 1] = '\0';\n        if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }\n        unaff_s6._0_1_ = 'z';\n        unaff_s6._1_1_ = 'T';\n        unaff_s6._2_1_ = '\0';\n        unaff_s6._3_1_ = '\0';\n        unaff_s5 = &comp;\n        comp.output_len = 0;\n        pcVar11 = unaff_s5;\n        compression = (int)unaff_s0;\n        comp.input = (png_const_bytep)text;\n        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);\n        if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);\n      }" if (parenthesized_expression "(pVar2 != 0)" ( (binary_expression "pVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        unaff_s0 = (compression_state *)(pVar2 + 2);\n        new_key[pVar2 + 1] = '\0';\n        if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }\n        unaff_s6._0_1_ = 'z';\n        unaff_s6._1_1_ = 'T';\n        unaff_s6._2_1_ = '\0';\n        unaff_s6._3_1_ = '\0';\n        unaff_s5 = &comp;\n        comp.output_len = 0;\n        pcVar11 = unaff_s5;\n        compression = (int)unaff_s0;\n        comp.input = (png_const_bytep)text;\n        iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);\n        if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);\n      }" { (expression_statement "unaff_s0 = (compression_state *)(pVar2 + 2);" (assignment_expression "unaff_s0 = (compression_state *)(pVar2 + 2)" identifier = (cast_expression "(compression_state *)(pVar2 + 2)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVar2 + 2)" ( (binary_expression "pVar2 + 2" identifier + number_literal) )))) ;) (expression_statement "new_key[pVar2 + 1] = '\0';" (assignment_expression "new_key[pVar2 + 1] = '\0'" (subscript_expression "new_key[pVar2 + 1]" identifier [ (binary_expression "pVar2 + 1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (text == (png_const_charp)0x0) {\n          comp.input_len = 0;\n        }\n        else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }" if (parenthesized_expression "(text == (png_const_charp)0x0)" ( (binary_expression "text == (png_const_charp)0x0" identifier == (cast_expression "(png_const_charp)0x0" ( (type_descriptor "png_const_charp" type_identifier) ) number_literal)) )) (compound_statement "{\n          comp.input_len = 0;\n        }" { (expression_statement "comp.input_len = 0;" (assignment_expression "comp.input_len = 0" (field_expression "comp.input_len" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }" else (compound_statement "{\n          comp.input_len = (*(code *)PTR_strlen_000533d4)(text);\n        }" { (expression_statement "comp.input_len = (*(code *)PTR_strlen_000533d4)(text);" (assignment_expression "comp.input_len = (*(code *)PTR_strlen_000533d4)(text)" (field_expression "comp.input_len" identifier . field_identifier) = (call_expression "(*(code *)PTR_strlen_000533d4)(text)" (parenthesized_expression "(*(code *)PTR_strlen_000533d4)" ( (pointer_expression "*(code *)PTR_strlen_000533d4" * (cast_expression "(code *)PTR_strlen_000533d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(text)" ( identifier )))) ;) }))) (expression_statement "unaff_s6._0_1_ = 'z';" (assignment_expression "unaff_s6._0_1_ = 'z'" (field_expression "unaff_s6._0_1_" identifier . field_identifier) = (char_literal "'z'" ' character ')) ;) (expression_statement "unaff_s6._1_1_ = 'T';" (assignment_expression "unaff_s6._1_1_ = 'T'" (field_expression "unaff_s6._1_1_" identifier . field_identifier) = (char_literal "'T'" ' character ')) ;) (expression_statement "unaff_s6._2_1_ = '\0';" (assignment_expression "unaff_s6._2_1_ = '\0'" (field_expression "unaff_s6._2_1_" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "unaff_s6._3_1_ = '\0';" (assignment_expression "unaff_s6._3_1_ = '\0'" (field_expression "unaff_s6._3_1_" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "unaff_s5 = &comp;" (assignment_expression "unaff_s5 = &comp" identifier = (pointer_expression "&comp" & identifier)) ;) (expression_statement "comp.output_len = 0;" (assignment_expression "comp.output_len = 0" (field_expression "comp.output_len" identifier . field_identifier) = number_literal) ;) (expression_statement "pcVar11 = unaff_s5;" (assignment_expression "pcVar11 = unaff_s5" identifier = identifier) ;) (expression_statement "compression = (int)unaff_s0;" (assignment_expression "compression = (int)unaff_s0" identifier = (cast_expression "(int)unaff_s0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "comp.input = (png_const_bytep)text;" (assignment_expression "comp.input = (png_const_bytep)text" (field_expression "comp.input" identifier . field_identifier) = (cast_expression "(png_const_bytep)text" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier)) ;) (expression_statement "iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0);" (assignment_expression "iVar3 = png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0)" identifier = (call_expression "png_text_compress(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0)" identifier (argument_list "(png_ptr,0x7a545874,unaff_s5,(png_uint_32)unaff_s0)" ( identifier , number_literal , identifier , (cast_expression "(png_uint_32)unaff_s0" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }\n          pcVar11 = unaff_s0;\n          (*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);\n          key = (png_const_charp)unaff_s5;\n          png_write_compressed_data_out(png_ptr,unaff_s5);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }" { (if_statement "if (png_ptr != (png_structrp)0x0) {\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }" if (parenthesized_expression "(png_ptr != (png_structrp)0x0)" ( (binary_expression "png_ptr != (png_structrp)0x0" identifier != (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n            png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;\n          }" { (expression_statement "png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))\n            ;" (call_expression "png_write_chunk_header\n                      (png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))" identifier (argument_list "(png_ptr,0x7a545874,(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc)))" ( identifier , number_literal , (call_expression "(png_uint_32)(unaff_s0->output + (comp.output_len - 0xc))" (parenthesized_expression "(png_uint_32)" ( identifier )) (argument_list "(unaff_s0->output + (comp.output_len - 0xc))" ( (binary_expression "unaff_s0->output + (comp.output_len - 0xc)" (field_expression "unaff_s0->output" identifier -> field_identifier) + (parenthesized_expression "(comp.output_len - 0xc)" ( (binary_expression "comp.output_len - 0xc" (field_expression "comp.output_len" identifier . field_identifier) - number_literal) ))) ))) ))) ;) })) (expression_statement "pcVar11 = unaff_s0;" (assignment_expression "pcVar11 = unaff_s0" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4);" (call_expression "(*(code *)PTR_png_write_chunk_data_000534fc)(png_ptr,unaff_s4)" (parenthesized_expression "(*(code *)PTR_png_write_chunk_data_000534fc)" ( (pointer_expression "*(code *)PTR_png_write_chunk_data_000534fc" * (cast_expression "(code *)PTR_png_write_chunk_data_000534fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,unaff_s4)" ( identifier , identifier ))) ;) (expression_statement "key = (png_const_charp)unaff_s5;" (assignment_expression "key = (png_const_charp)unaff_s5" identifier = (cast_expression "(png_const_charp)unaff_s5" ( (type_descriptor "png_const_charp" type_identifier) ) identifier)) ;) (expression_statement "png_write_compressed_data_out(png_ptr,unaff_s5);" (call_expression "png_write_compressed_data_out(png_ptr,unaff_s5)" identifier (argument_list "(png_ptr,unaff_s5)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_png_write_chunk_end_00053408)();" (call_expression "(*(code *)PTR_png_write_chunk_end_00053408)()" (parenthesized_expression "(*(code *)PTR_png_write_chunk_end_00053408)" ( (pointer_expression "*(code *)PTR_png_write_chunk_end_00053408" * (cast_expression "(code *)PTR_png_write_chunk_end_00053408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0003b4a4;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg);" (call_expression "(*(code *)PTR_png_error_0005340c)(png_ptr,(png_ptr->zstream).msg)" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" ( (pointer_expression "*(code *)PTR_png_error_0005340c" * (cast_expression "(code *)PTR_png_error_0005340c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,(png_ptr->zstream).msg)" ( identifier , (field_expression "(png_ptr->zstream).msg" (parenthesized_expression "(png_ptr->zstream)" ( (field_expression "png_ptr->zstream" identifier -> field_identifier) )) . field_identifier) ))) ;) })) (expression_statement "(*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604);" (call_expression "(*(code *)PTR_png_error_0005340c)(png_ptr,PTR_s_nt_0005301c + 0x2604)" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" ( (pointer_expression "*(code *)PTR_png_error_0005340c" * (cast_expression "(code *)PTR_png_error_0005340c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,PTR_s_nt_0005301c + 0x2604)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x2604" identifier + number_literal) ))) ;) })) (expression_statement "key = PTR_s_nt_0005301c + 0x25e4;" (assignment_expression "key = PTR_s_nt_0005301c + 0x25e4" identifier = (binary_expression "PTR_s_nt_0005301c + 0x25e4" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR_png_error_0005340c)();" (call_expression "(*(code *)PTR_png_error_0005340c)()" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" ( (pointer_expression "*(code *)PTR_png_error_0005340c" * (cast_expression "(code *)PTR_png_error_0005340c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "puVar35 = PTR___stack_chk_fail_00053484;" (assignment_expression "puVar35 = PTR___stack_chk_fail_00053484" identifier = identifier) ;) (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 "auStack_978._56_4_ = puVar35 + 0x1fac0;" (assignment_expression "auStack_978._56_4_ = puVar35 + 0x1fac0" (field_expression "auStack_978._56_4_" identifier . field_identifier) = (binary_expression "puVar35 + 0x1fac0" identifier + number_literal)) ;) (expression_statement "piVar34 = *(int **)(puVar35 + 0x17f8c);" (assignment_expression "piVar34 = *(int **)(puVar35 + 0x17f8c)" identifier = (pointer_expression "*(int **)(puVar35 + 0x17f8c)" * (cast_expression "(int **)(puVar35 + 0x17f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar35 + 0x17f8c)" ( (binary_expression "puVar35 + 0x17f8c" identifier + number_literal) ))))) ;) (expression_statement "new_key_00 = (compression_state *)&stack0xfffffae0;" (assignment_expression "new_key_00 = (compression_state *)&stack0xfffffae0" identifier = (cast_expression "(compression_state *)&stack0xfffffae0" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xfffffae0" & identifier))) ;) (expression_statement "puStack_4bc = puVar38;" (assignment_expression "puStack_4bc = puVar38" identifier = identifier) ;) (expression_statement "iStack_4cc = *piVar34;" (assignment_expression "iStack_4cc = *piVar34" identifier = (pointer_expression "*piVar34" * identifier)) ;) (expression_statement "pcVar4 = new_key_00;" (assignment_expression "pcVar4 = new_key_00" identifier = identifier) ;) (expression_statement "pcVar21 = (compression_state *)compression;" (assignment_expression "pcVar21 = (compression_state *)compression" identifier = (cast_expression "(compression_state *)compression" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_4c8 = unaff_s0;" (assignment_expression "pcStack_4c8 = unaff_s0" identifier = identifier) ;) (expression_statement "ppStack_4c4 = unaff_s1;" (assignment_expression "ppStack_4c4 = unaff_s1" identifier = identifier) ;) (expression_statement "pcStack_4c0 = unaff_s2;" (assignment_expression "pcStack_4c0 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_4b8 = unaff_s4;" (assignment_expression "pcStack_4b8 = unaff_s4" identifier = identifier) ;) (expression_statement "pcStack_4b4 = unaff_s5;" (assignment_expression "pcStack_4b4 = unaff_s5" identifier = identifier) ;) (expression_statement "apStack_4b0 = (png_byte  [4])unaff_s6;" (assignment_expression "apStack_4b0 = (png_byte  [4])unaff_s6" identifier = (cast_expression "(png_byte  [4])unaff_s6" ( (type_descriptor "png_byte  [4]" type_identifier (abstract_array_declarator "[4]" [ number_literal ])) ) identifier)) ;) (expression_statement "pVar2 = png_check_keyword(ppVar12,(png_const_charp)pcVar11,(png_bytep)new_key_00);" (assignment_expression "pVar2 = png_check_keyword(ppVar12,(png_const_charp)pcVar11,(png_bytep)new_key_00)" identifier = (call_expression "png_check_keyword(ppVar12,(png_const_charp)pcVar11,(png_bytep)new_key_00)" identifier (argument_list "(ppVar12,(png_const_charp)pcVar11,(png_bytep)new_key_00)" ( identifier , (cast_expression "(png_const_charp)pcVar11" ( (type_descriptor "png_const_charp" type_identifier) ) identifier) , (cast_expression "(png_bytep)new_key_00" ( (type_descriptor "png_bytep" type_identifier) ) identifier) )))) ;) (expression_statement "puVar38 = (undefined *)auStack_978._56_4_;" (assignment_expression "puVar38 = (undefined *)auStack_978._56_4_" identifier = (cast_expression "(undefined *)auStack_978._56_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_978._56_4_" identifier . field_identifier))) ;) (if_statement "if (pVar2 == 0) {\nLAB_0003b954:\n    iVar10 = *(int *)(puVar38 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10);\nLAB_0003b968:\n    pcVar11 = pcVar21;\n    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10 + 0x2650);\n  }\n  else {\n    if ((compression_state *)key != (compression_state *)0x0) {\n      if (0 < (int)key) {\n        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;\n        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      if ((compression_state *)key == (compression_state *)&DAT_ffffffff) {\nLAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;\n        apStack_51f[pVar2] = '\0';\n        apStack_51f[pVar2 + 1] = '\0';\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar38 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    pcStack_934 = (compression_state *)&DAT_00000001;\n    apStack_51f[pVar2] = '\x01';\n    apStack_51f[pVar2 + 1] = '\0';\njoined_r0x0003b780:\n    if ((compression_state *)compression == (compression_state *)0x0) {\n      key = &DAT_00000001;\n      compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;\n    }\n    else {\n      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);\n      key = (png_const_charp)(iVar10 + 1);\n    }\n    iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(&_gp);\n    unaff_s8 = (compression_state *)(iVar10 + 1);\n    if (pcStack_48c != (compression_state *)0x0) {\n      cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c);\n      if (key <= (compression_state *)(0x7fffffff - (pVar2 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      pcVar11 = (compression_state *)0x7fffffff;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (pcStack_934 != (compression_state *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      cStack_92c.output_len = 0;\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      pcVar21 = (compression_state *)0x7fffffff;\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)) {\n        cStack_92c.output_len = cStack_92c.input_len;\n        if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }\n        pcVar4 = (compression_state *)cStack_92c.output_len;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    cStack_92c.input_len = 0;\n    pcStack_48c = (compression_state *)(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84);\n    if ((compression_state *)(0x7fffffff - (pVar2 + 3)) < key) goto LAB_0003b7c8;\nLAB_0003b648:\n    if ((compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))\n        < unaff_s8) goto LAB_0003b7c8;\n    pcVar11 = (compression_state *)\n              (((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8);\n    cStack_92c.input = (png_const_bytep)pcStack_48c;\n    if (pcStack_934 == (compression_state *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    cStack_92c.output_len = 0;\n    unaff_s0 = (compression_state *)(pVar2 + 3);\n    pcStack_48c = &cStack_92c;\n    pcVar4 = pcStack_48c;\n    pcStack_934 = pcVar11;\n    iVar10 = png_text_compress(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11);\n    puVar38 = (undefined *)auStack_978._56_4_;\n    if (iVar10 == 0) {\n      pcVar4 = unaff_s8;\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);\n        pcVar21 = pcVar11;\n      }\n      else {\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }\n      png_write_compressed_data_out(ppVar12,pcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      (**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      if (iStack_4cc == *piVar34) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" if (parenthesized_expression "(pVar2 == 0)" ( (binary_expression "pVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0003b954:\n    iVar10 = *(int *)(puVar38 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10);\nLAB_0003b968:\n    pcVar11 = pcVar21;\n    (**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10 + 0x2650);\n  }" { (labeled_statement "LAB_0003b954:\n    iVar10 = *(int *)(puVar38 + -0x7fd4) + 0x261c;" statement_identifier : (expression_statement "iVar10 = *(int *)(puVar38 + -0x7fd4) + 0x261c;" (assignment_expression "iVar10 = *(int *)(puVar38 + -0x7fd4) + 0x261c" identifier = (binary_expression "*(int *)(puVar38 + -0x7fd4) + 0x261c" (pointer_expression "*(int *)(puVar38 + -0x7fd4)" * (cast_expression "(int *)(puVar38 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar38 + -0x7fd4)" ( (binary_expression "puVar38 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "(**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10);" (call_expression "(**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10)" (parenthesized_expression "(**(code **)(puVar38 + -0x7be4))" ( (pointer_expression "**(code **)(puVar38 + -0x7be4)" * (pointer_expression "*(code **)(puVar38 + -0x7be4)" * (cast_expression "(code **)(puVar38 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x7be4)" ( (binary_expression "puVar38 + -0x7be4" identifier + number_literal) ))))) )) (argument_list "(ppVar12,iVar10)" ( identifier , identifier ))) ;) (labeled_statement "LAB_0003b968:\n    pcVar11 = pcVar21;" statement_identifier : (expression_statement "pcVar11 = pcVar21;" (assignment_expression "pcVar11 = pcVar21" identifier = identifier) ;)) (expression_statement "(**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10 + 0x2650);" (call_expression "(**(code **)(puVar38 + -0x7be4))(ppVar12,iVar10 + 0x2650)" (parenthesized_expression "(**(code **)(puVar38 + -0x7be4))" ( (pointer_expression "**(code **)(puVar38 + -0x7be4)" * (pointer_expression "*(code **)(puVar38 + -0x7be4)" * (cast_expression "(code **)(puVar38 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x7be4)" ( (binary_expression "puVar38 + -0x7be4" identifier + number_literal) ))))) )) (argument_list "(ppVar12,iVar10 + 0x2650)" ( identifier , (binary_expression "iVar10 + 0x2650" identifier + number_literal) ))) ;) }) (else_clause "else {\n    if ((compression_state *)key != (compression_state *)0x0) {\n      if (0 < (int)key) {\n        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;\n        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      if ((compression_state *)key == (compression_state *)&DAT_ffffffff) {\nLAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;\n        apStack_51f[pVar2] = '\0';\n        apStack_51f[pVar2 + 1] = '\0';\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar38 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    pcStack_934 = (compression_state *)&DAT_00000001;\n    apStack_51f[pVar2] = '\x01';\n    apStack_51f[pVar2 + 1] = '\0';\njoined_r0x0003b780:\n    if ((compression_state *)compression == (compression_state *)0x0) {\n      key = &DAT_00000001;\n      compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;\n    }\n    else {\n      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);\n      key = (png_const_charp)(iVar10 + 1);\n    }\n    iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(&_gp);\n    unaff_s8 = (compression_state *)(iVar10 + 1);\n    if (pcStack_48c != (compression_state *)0x0) {\n      cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c);\n      if (key <= (compression_state *)(0x7fffffff - (pVar2 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      pcVar11 = (compression_state *)0x7fffffff;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (pcStack_934 != (compression_state *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      cStack_92c.output_len = 0;\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      pcVar21 = (compression_state *)0x7fffffff;\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)) {\n        cStack_92c.output_len = cStack_92c.input_len;\n        if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }\n        pcVar4 = (compression_state *)cStack_92c.output_len;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    cStack_92c.input_len = 0;\n    pcStack_48c = (compression_state *)(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84);\n    if ((compression_state *)(0x7fffffff - (pVar2 + 3)) < key) goto LAB_0003b7c8;\nLAB_0003b648:\n    if ((compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))\n        < unaff_s8) goto LAB_0003b7c8;\n    pcVar11 = (compression_state *)\n              (((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8);\n    cStack_92c.input = (png_const_bytep)pcStack_48c;\n    if (pcStack_934 == (compression_state *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    cStack_92c.output_len = 0;\n    unaff_s0 = (compression_state *)(pVar2 + 3);\n    pcStack_48c = &cStack_92c;\n    pcVar4 = pcStack_48c;\n    pcStack_934 = pcVar11;\n    iVar10 = png_text_compress(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11);\n    puVar38 = (undefined *)auStack_978._56_4_;\n    if (iVar10 == 0) {\n      pcVar4 = unaff_s8;\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);\n        pcVar21 = pcVar11;\n      }\n      else {\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }\n      png_write_compressed_data_out(ppVar12,pcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      (**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      if (iStack_4cc == *piVar34) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" else (compound_statement "{\n    if ((compression_state *)key != (compression_state *)0x0) {\n      if (0 < (int)key) {\n        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;\n        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      if ((compression_state *)key == (compression_state *)&DAT_ffffffff) {\nLAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;\n        apStack_51f[pVar2] = '\0';\n        apStack_51f[pVar2 + 1] = '\0';\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar38 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    pcStack_934 = (compression_state *)&DAT_00000001;\n    apStack_51f[pVar2] = '\x01';\n    apStack_51f[pVar2 + 1] = '\0';\njoined_r0x0003b780:\n    if ((compression_state *)compression == (compression_state *)0x0) {\n      key = &DAT_00000001;\n      compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;\n    }\n    else {\n      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);\n      key = (png_const_charp)(iVar10 + 1);\n    }\n    iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(&_gp);\n    unaff_s8 = (compression_state *)(iVar10 + 1);\n    if (pcStack_48c != (compression_state *)0x0) {\n      cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c);\n      if (key <= (compression_state *)(0x7fffffff - (pVar2 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      pcVar11 = (compression_state *)0x7fffffff;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (pcStack_934 != (compression_state *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      cStack_92c.output_len = 0;\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      pcVar21 = (compression_state *)0x7fffffff;\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)) {\n        cStack_92c.output_len = cStack_92c.input_len;\n        if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }\n        pcVar4 = (compression_state *)cStack_92c.output_len;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    cStack_92c.input_len = 0;\n    pcStack_48c = (compression_state *)(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84);\n    if ((compression_state *)(0x7fffffff - (pVar2 + 3)) < key) goto LAB_0003b7c8;\nLAB_0003b648:\n    if ((compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))\n        < unaff_s8) goto LAB_0003b7c8;\n    pcVar11 = (compression_state *)\n              (((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8);\n    cStack_92c.input = (png_const_bytep)pcStack_48c;\n    if (pcStack_934 == (compression_state *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    cStack_92c.output_len = 0;\n    unaff_s0 = (compression_state *)(pVar2 + 3);\n    pcStack_48c = &cStack_92c;\n    pcVar4 = pcStack_48c;\n    pcStack_934 = pcVar11;\n    iVar10 = png_text_compress(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11);\n    puVar38 = (undefined *)auStack_978._56_4_;\n    if (iVar10 == 0) {\n      pcVar4 = unaff_s8;\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);\n        pcVar21 = pcVar11;\n      }\n      else {\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }\n      png_write_compressed_data_out(ppVar12,pcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      (**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      if (iStack_4cc == *piVar34) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" { (if_statement "if ((compression_state *)key != (compression_state *)0x0) {\n      if (0 < (int)key) {\n        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;\n        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      if ((compression_state *)key == (compression_state *)&DAT_ffffffff) {\nLAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;\n        apStack_51f[pVar2] = '\0';\n        apStack_51f[pVar2 + 1] = '\0';\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar38 + -0x7b6c))();\n      goto LAB_0003b954;\n    }" if (parenthesized_expression "((compression_state *)key != (compression_state *)0x0)" ( (binary_expression "(compression_state *)key != (compression_state *)0x0" (cast_expression "(compression_state *)key" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(compression_state *)0x0" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (0 < (int)key) {\n        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;\n        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      if ((compression_state *)key == (compression_state *)&DAT_ffffffff) {\nLAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;\n        apStack_51f[pVar2] = '\0';\n        apStack_51f[pVar2 + 1] = '\0';\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar38 + -0x7b6c))();\n      goto LAB_0003b954;\n    }" { (if_statement "if (0 < (int)key) {\n        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;\n        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }" if (parenthesized_expression "(0 < (int)key)" ( (binary_expression "0 < (int)key" number_literal < (cast_expression "(int)key" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;\n        iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n        if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }" { (if_statement "if ((compression_state *)key == (compression_state *)&DAT_00000001) goto LAB_0003b768;" if (parenthesized_expression "((compression_state *)key == (compression_state *)&DAT_00000001)" ( (binary_expression "(compression_state *)key == (compression_state *)&DAT_00000001" (cast_expression "(compression_state *)key" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(compression_state *)&DAT_00000001" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) )) (goto_statement "goto LAB_0003b768;" goto statement_identifier ;)) (expression_statement "iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);" (assignment_expression "iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4)" identifier = (pointer_expression "*(int *)(auStack_978._56_4_ + -0x7fd4)" * (cast_expression "(int *)(auStack_978._56_4_ + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7fd4)" ( (binary_expression "auStack_978._56_4_ + -0x7fd4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) ;) (if_statement "if ((compression_state *)key != (compression_state *)&DAT_00000002) goto LAB_0003b938;" if (parenthesized_expression "((compression_state *)key != (compression_state *)&DAT_00000002)" ( (binary_expression "(compression_state *)key != (compression_state *)&DAT_00000002" (cast_expression "(compression_state *)key" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (cast_expression "(compression_state *)&DAT_00000002" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000002" & identifier))) )) (goto_statement "goto LAB_0003b938;" goto statement_identifier ;)) (goto_statement "goto LAB_0003b5d0;" goto statement_identifier ;) })) (expression_statement "iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);" (assignment_expression "iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4)" identifier = (pointer_expression "*(int *)(auStack_978._56_4_ + -0x7fd4)" * (cast_expression "(int *)(auStack_978._56_4_ + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7fd4)" ( (binary_expression "auStack_978._56_4_ + -0x7fd4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) ;) (if_statement "if ((compression_state *)key == (compression_state *)&DAT_ffffffff) {\nLAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;\n        apStack_51f[pVar2] = '\0';\n        apStack_51f[pVar2 + 1] = '\0';\n        goto joined_r0x0003b780;\n      }" if (parenthesized_expression "((compression_state *)key == (compression_state *)&DAT_ffffffff)" ( (binary_expression "(compression_state *)key == (compression_state *)&DAT_ffffffff" (cast_expression "(compression_state *)key" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(compression_state *)&DAT_ffffffff" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_ffffffff" & identifier))) )) (compound_statement "{\nLAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;\n        apStack_51f[pVar2] = '\0';\n        apStack_51f[pVar2 + 1] = '\0';\n        goto joined_r0x0003b780;\n      }" { (labeled_statement "LAB_0003b768:\n        pcStack_934 = (compression_state *)0x0;" statement_identifier : (expression_statement "pcStack_934 = (compression_state *)0x0;" (assignment_expression "pcStack_934 = (compression_state *)0x0" identifier = (cast_expression "(compression_state *)0x0" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "apStack_51f[pVar2] = '\0';" (assignment_expression "apStack_51f[pVar2] = '\0'" (subscript_expression "apStack_51f[pVar2]" identifier [ identifier ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "apStack_51f[pVar2 + 1] = '\0';" (assignment_expression "apStack_51f[pVar2 + 1] = '\0'" (subscript_expression "apStack_51f[pVar2 + 1]" identifier [ (binary_expression "pVar2 + 1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto joined_r0x0003b780;" goto statement_identifier ;) })) (labeled_statement "LAB_0003b938:\n      (**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);" statement_identifier : (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7be4))(ppVar12,iVar10 + 0x2634)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7be4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7be4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7be4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7be4)" ( (binary_expression "auStack_978._56_4_ + -0x7be4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(ppVar12,iVar10 + 0x2634)" ( identifier , (binary_expression "iVar10 + 0x2634" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0003b948:\n      (**(code **)(puVar38 + -0x7b6c))();" statement_identifier : (expression_statement "(**(code **)(puVar38 + -0x7b6c))();" (call_expression "(**(code **)(puVar38 + -0x7b6c))()" (parenthesized_expression "(**(code **)(puVar38 + -0x7b6c))" ( (pointer_expression "**(code **)(puVar38 + -0x7b6c)" * (pointer_expression "*(code **)(puVar38 + -0x7b6c)" * (cast_expression "(code **)(puVar38 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x7b6c)" ( (binary_expression "puVar38 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0003b954;" goto statement_identifier ;) })) (labeled_statement "LAB_0003b5d0:\n    pcStack_934 = (compression_state *)&DAT_00000001;" statement_identifier : (expression_statement "pcStack_934 = (compression_state *)&DAT_00000001;" (assignment_expression "pcStack_934 = (compression_state *)&DAT_00000001" identifier = (cast_expression "(compression_state *)&DAT_00000001" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;)) (expression_statement "apStack_51f[pVar2] = '\x01';" (assignment_expression "apStack_51f[pVar2] = '\x01'" (subscript_expression "apStack_51f[pVar2]" identifier [ identifier ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "apStack_51f[pVar2 + 1] = '\0';" (assignment_expression "apStack_51f[pVar2 + 1] = '\0'" (subscript_expression "apStack_51f[pVar2 + 1]" identifier [ (binary_expression "pVar2 + 1" identifier + number_literal) ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "joined_r0x0003b780:\n    if ((compression_state *)compression == (compression_state *)0x0) {\n      key = &DAT_00000001;\n      compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;\n    }\n    else {\n      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);\n      key = (png_const_charp)(iVar10 + 1);\n    }" statement_identifier : (if_statement "if ((compression_state *)compression == (compression_state *)0x0) {\n      key = &DAT_00000001;\n      compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;\n    }\n    else {\n      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);\n      key = (png_const_charp)(iVar10 + 1);\n    }" if (parenthesized_expression "((compression_state *)compression == (compression_state *)0x0)" ( (binary_expression "(compression_state *)compression == (compression_state *)0x0" (cast_expression "(compression_state *)compression" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(compression_state *)0x0" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      key = &DAT_00000001;\n      compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;\n    }" { (expression_statement "key = &DAT_00000001;" (assignment_expression "key = &DAT_00000001" identifier = (pointer_expression "&DAT_00000001" & identifier)) ;) (expression_statement "compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84;" (assignment_expression "compression = *(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84" identifier = (binary_expression "*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84" (pointer_expression "*(int *)(auStack_978._56_4_ + -0x7fd4)" * (cast_expression "(int *)(auStack_978._56_4_ + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7fd4)" ( (binary_expression "auStack_978._56_4_ + -0x7fd4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);\n      key = (png_const_charp)(iVar10 + 1);\n    }" else (compound_statement "{\n      iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);\n      key = (png_const_charp)(iVar10 + 1);\n    }" { (expression_statement "iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression);" (assignment_expression "iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(compression)" identifier = (call_expression "(**(code **)(auStack_978._56_4_ + -0x7c1c))(compression)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7c1c))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7c1c)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7c1c)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7c1c)" ( (binary_expression "auStack_978._56_4_ + -0x7c1c" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(compression)" ( identifier )))) ;) (expression_statement "key = (png_const_charp)(iVar10 + 1);" (assignment_expression "key = (png_const_charp)(iVar10 + 1)" identifier = (call_expression "(png_const_charp)(iVar10 + 1)" (parenthesized_expression "(png_const_charp)" ( identifier )) (argument_list "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) ;) })))) (expression_statement "iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(&_gp);" (assignment_expression "iVar10 = (**(code **)(auStack_978._56_4_ + -0x7c1c))(&_gp)" identifier = (call_expression "(**(code **)(auStack_978._56_4_ + -0x7c1c))(&_gp)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7c1c))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7c1c)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7c1c)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7c1c)" ( (binary_expression "auStack_978._56_4_ + -0x7c1c" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(&_gp)" ( (pointer_expression "&_gp" & identifier) )))) ;) (expression_statement "unaff_s8 = (compression_state *)(iVar10 + 1);" (assignment_expression "unaff_s8 = (compression_state *)(iVar10 + 1)" identifier = (cast_expression "(compression_state *)(iVar10 + 1)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 1)" ( (binary_expression "iVar10 + 1" identifier + number_literal) )))) ;) (if_statement "if (pcStack_48c != (compression_state *)0x0) {\n      cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c);\n      if (key <= (compression_state *)(0x7fffffff - (pVar2 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      pcVar11 = (compression_state *)0x7fffffff;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (pcStack_934 != (compression_state *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      cStack_92c.output_len = 0;\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      pcVar21 = (compression_state *)0x7fffffff;\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)) {\n        cStack_92c.output_len = cStack_92c.input_len;\n        if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }\n        pcVar4 = (compression_state *)cStack_92c.output_len;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }" if (parenthesized_expression "(pcStack_48c != (compression_state *)0x0)" ( (binary_expression "pcStack_48c != (compression_state *)0x0" identifier != (cast_expression "(compression_state *)0x0" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c);\n      if (key <= (compression_state *)(0x7fffffff - (pVar2 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      pcVar11 = (compression_state *)0x7fffffff;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (pcStack_934 != (compression_state *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      cStack_92c.output_len = 0;\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      pcVar21 = (compression_state *)0x7fffffff;\n      iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      cStack_92c.input = (png_const_bytep)pcStack_48c;\n      if (cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)) {\n        cStack_92c.output_len = cStack_92c.input_len;\n        if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }\n        pcVar4 = (compression_state *)cStack_92c.output_len;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }" { (expression_statement "cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c);" (assignment_expression "cStack_92c.input_len = (**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c)" (field_expression "cStack_92c.input_len" identifier . field_identifier) = (call_expression "(**(code **)(auStack_978._56_4_ + -0x7c1c))(pcStack_48c)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7c1c))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7c1c)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7c1c)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7c1c)" ( (binary_expression "auStack_978._56_4_ + -0x7c1c" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(pcStack_48c)" ( identifier )))) ;) (if_statement "if (key <= (compression_state *)(0x7fffffff - (pVar2 + 3))) goto LAB_0003b648;" if (parenthesized_expression "(key <= (compression_state *)(0x7fffffff - (pVar2 + 3)))" ( (binary_expression "key <= (compression_state *)(0x7fffffff - (pVar2 + 3))" identifier <= (cast_expression "(compression_state *)(0x7fffffff - (pVar2 + 3))" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffff - (pVar2 + 3))" ( (binary_expression "0x7fffffff - (pVar2 + 3)" number_literal - (parenthesized_expression "(pVar2 + 3)" ( (binary_expression "pVar2 + 3" identifier + number_literal) ))) )))) )) (goto_statement "goto LAB_0003b648;" goto statement_identifier ;)) (labeled_statement "LAB_0003b7c8:\n      pcVar11 = (compression_state *)0x7fffffff;" statement_identifier : (expression_statement "pcVar11 = (compression_state *)0x7fffffff;" (assignment_expression "pcVar11 = (compression_state *)0x7fffffff" identifier = (cast_expression "(compression_state *)0x7fffffff" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "cStack_92c.input = (png_const_bytep)pcStack_48c;" (assignment_expression "cStack_92c.input = (png_const_bytep)pcStack_48c" (field_expression "cStack_92c.input" identifier . field_identifier) = (cast_expression "(png_const_bytep)pcStack_48c" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier)) ;) (if_statement "if (pcStack_934 != (compression_state *)0x0) goto LAB_0003b7e0;" if (parenthesized_expression "(pcStack_934 != (compression_state *)0x0)" ( (binary_expression "pcStack_934 != (compression_state *)0x0" identifier != (cast_expression "(compression_state *)0x0" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003b7e0;" goto statement_identifier ;)) (labeled_statement "LAB_0003b670:\n      cStack_92c.output_len = 0;" statement_identifier : (expression_statement "cStack_92c.output_len = 0;" (assignment_expression "cStack_92c.output_len = 0" (field_expression "cStack_92c.output_len" identifier . field_identifier) = number_literal) ;)) (expression_statement "unaff_s0 = (compression_state *)(pVar2 + 3);" (assignment_expression "unaff_s0 = (compression_state *)(pVar2 + 3)" identifier = (cast_expression "(compression_state *)(pVar2 + 3)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVar2 + 3)" ( (binary_expression "pVar2 + 3" identifier + number_literal) )))) ;) (expression_statement "pcVar21 = (compression_state *)0x7fffffff;" (assignment_expression "pcVar21 = (compression_state *)0x7fffffff" identifier = (cast_expression "(compression_state *)0x7fffffff" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4);" (assignment_expression "iVar10 = *(int *)(auStack_978._56_4_ + -0x7fd4)" identifier = (pointer_expression "*(int *)(auStack_978._56_4_ + -0x7fd4)" * (cast_expression "(int *)(auStack_978._56_4_ + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7fd4)" ( (binary_expression "auStack_978._56_4_ + -0x7fd4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "puVar38 = (undefined *)auStack_978._56_4_;" (assignment_expression "puVar38 = (undefined *)auStack_978._56_4_" identifier = (cast_expression "(undefined *)auStack_978._56_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_978._56_4_" identifier . field_identifier))) ;) (expression_statement "cStack_92c.input = (png_const_bytep)pcStack_48c;" (assignment_expression "cStack_92c.input = (png_const_bytep)pcStack_48c" (field_expression "cStack_92c.input" identifier . field_identifier) = (cast_expression "(png_const_bytep)pcStack_48c" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier)) ;) (if_statement "if (cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)) {\n        cStack_92c.output_len = cStack_92c.input_len;\n        if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }\n        pcVar4 = (compression_state *)cStack_92c.output_len;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);\n        goto LAB_0003b710;\n      }" if (parenthesized_expression "(cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11))" ( (binary_expression "cStack_92c.input_len <= (compression_state *)(0x7fffffffU - (int)pcVar11)" (field_expression "cStack_92c.input_len" identifier . field_identifier) <= (cast_expression "(compression_state *)(0x7fffffffU - (int)pcVar11)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffffU - (int)pcVar11)" ( (binary_expression "0x7fffffffU - (int)pcVar11" number_literal - (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n        cStack_92c.output_len = cStack_92c.input_len;\n        if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }\n        pcVar4 = (compression_state *)cStack_92c.output_len;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);\n        goto LAB_0003b710;\n      }" { (expression_statement "cStack_92c.output_len = cStack_92c.input_len;" (assignment_expression "cStack_92c.output_len = cStack_92c.input_len" (field_expression "cStack_92c.output_len" identifier . field_identifier) = (field_expression "cStack_92c.input_len" identifier . field_identifier)) ;) (if_statement "if (ppVar12 == (png_structrp)0x0) {\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }\n        else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }" if (parenthesized_expression "(ppVar12 == (png_structrp)0x0)" ( (binary_expression "ppVar12 == (png_structrp)0x0" identifier == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);\n        }" { (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(0,new_key_00,unaff_s0)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(0,compression,key)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp,unaff_s8)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(0,&_gp,unaff_s8)" ( number_literal , (pointer_expression "&_gp" & identifier) , identifier ))) ;) }) (else_clause "else {\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }" else (compound_statement "{\n          png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n          (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);\n        }" { (expression_statement "png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)));" (call_expression "png_write_chunk_header\n                    (ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)))" identifier (argument_list "(ppVar12,0x69545874,\n                     (png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)))" ( identifier , number_literal , (call_expression "(png_uint_32)\n                     (((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18))" (parenthesized_expression "(png_uint_32)" ( identifier )) (argument_list "(((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18))" ( (binary_expression "((compression_state *)cStack_92c.input_len)->output +\n                     (int)(pcVar11->output + -0x18)" (field_expression "((compression_state *)cStack_92c.input_len)->output" (parenthesized_expression "((compression_state *)cStack_92c.input_len)" ( (cast_expression "(compression_state *)cStack_92c.input_len" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cStack_92c.input_len" identifier . field_identifier)) )) -> field_identifier) + (cast_expression "(int)(pcVar11->output + -0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar11->output + -0x18)" ( (binary_expression "pcVar11->output + -0x18" (field_expression "pcVar11->output" identifier -> field_identifier) + number_literal) )))) ))) ))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(ppVar12,new_key_00,unaff_s0)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(ppVar12,compression,key)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp,unaff_s8)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(ppVar12,&_gp,unaff_s8)" ( identifier , (pointer_expression "&_gp" & identifier) , identifier ))) ;) }))) (expression_statement "pcVar4 = (compression_state *)cStack_92c.output_len;" (assignment_expression "pcVar4 = (compression_state *)cStack_92c.output_len" identifier = (cast_expression "(compression_state *)cStack_92c.output_len" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cStack_92c.output_len" identifier . field_identifier))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,pcStack_48c)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(ppVar12,pcStack_48c)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0003b710;" goto statement_identifier ;) })) (goto_statement "goto LAB_0003b968;" goto statement_identifier ;) })) (expression_statement "cStack_92c.input_len = 0;" (assignment_expression "cStack_92c.input_len = 0" (field_expression "cStack_92c.input_len" identifier . field_identifier) = number_literal) ;) (expression_statement "pcStack_48c = (compression_state *)(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84);" (assignment_expression "pcStack_48c = (compression_state *)(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84)" identifier = (cast_expression "(compression_state *)(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84)" ( (binary_expression "*(int *)(auStack_978._56_4_ + -0x7fd4) + -0xc84" (pointer_expression "*(int *)(auStack_978._56_4_ + -0x7fd4)" * (cast_expression "(int *)(auStack_978._56_4_ + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7fd4)" ( (binary_expression "auStack_978._56_4_ + -0x7fd4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((compression_state *)(0x7fffffff - (pVar2 + 3)) < key) goto LAB_0003b7c8;" if (parenthesized_expression "((compression_state *)(0x7fffffff - (pVar2 + 3)) < key)" ( (binary_expression "(compression_state *)(0x7fffffff - (pVar2 + 3)) < key" (cast_expression "(compression_state *)(0x7fffffff - (pVar2 + 3))" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffff - (pVar2 + 3))" ( (binary_expression "0x7fffffff - (pVar2 + 3)" number_literal - (parenthesized_expression "(pVar2 + 3)" ( (binary_expression "pVar2 + 3" identifier + number_literal) ))) ))) < identifier) )) (goto_statement "goto LAB_0003b7c8;" goto statement_identifier ;)) (labeled_statement "LAB_0003b648:\n    if ((compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))\n        < unaff_s8) goto LAB_0003b7c8;" statement_identifier : (if_statement "if ((compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))\n        < unaff_s8) goto LAB_0003b7c8;" if (parenthesized_expression "((compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))\n        < unaff_s8)" ( (binary_expression "(compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))\n        < unaff_s8" (cast_expression "(compression_state *)(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9)))" ( (binary_expression "0x7fffffffU - (int)(((compression_state *)key)->output + (pVar2 - 9))" number_literal - (cast_expression "(int)(((compression_state *)key)->output + (pVar2 - 9))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((compression_state *)key)->output + (pVar2 - 9))" ( (binary_expression "((compression_state *)key)->output + (pVar2 - 9)" (field_expression "((compression_state *)key)->output" (parenthesized_expression "((compression_state *)key)" ( (cast_expression "(compression_state *)key" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (parenthesized_expression "(pVar2 - 9)" ( (binary_expression "pVar2 - 9" identifier - number_literal) ))) )))) ))) < identifier) )) (goto_statement "goto LAB_0003b7c8;" goto statement_identifier ;))) (expression_statement "pcVar11 = (compression_state *)\n              (((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8);" (assignment_expression "pcVar11 = (compression_state *)\n              (((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8)" identifier = (cast_expression "(compression_state *)\n              (((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8)" ( (binary_expression "((compression_state *)key)->output + (pVar2 - 9) + (int)unaff_s8" (binary_expression "((compression_state *)key)->output + (pVar2 - 9)" (field_expression "((compression_state *)key)->output" (parenthesized_expression "((compression_state *)key)" ( (cast_expression "(compression_state *)key" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + (parenthesized_expression "(pVar2 - 9)" ( (binary_expression "pVar2 - 9" identifier - number_literal) ))) + (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "cStack_92c.input = (png_const_bytep)pcStack_48c;" (assignment_expression "cStack_92c.input = (png_const_bytep)pcStack_48c" (field_expression "cStack_92c.input" identifier . field_identifier) = (cast_expression "(png_const_bytep)pcStack_48c" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier)) ;) (if_statement "if (pcStack_934 == (compression_state *)0x0) goto LAB_0003b670;" if (parenthesized_expression "(pcStack_934 == (compression_state *)0x0)" ( (binary_expression "pcStack_934 == (compression_state *)0x0" identifier == (cast_expression "(compression_state *)0x0" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003b670;" goto statement_identifier ;)) (labeled_statement "LAB_0003b7e0:\n    cStack_92c.output_len = 0;" statement_identifier : (expression_statement "cStack_92c.output_len = 0;" (assignment_expression "cStack_92c.output_len = 0" (field_expression "cStack_92c.output_len" identifier . field_identifier) = number_literal) ;)) (expression_statement "unaff_s0 = (compression_state *)(pVar2 + 3);" (assignment_expression "unaff_s0 = (compression_state *)(pVar2 + 3)" identifier = (cast_expression "(compression_state *)(pVar2 + 3)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVar2 + 3)" ( (binary_expression "pVar2 + 3" identifier + number_literal) )))) ;) (expression_statement "pcStack_48c = &cStack_92c;" (assignment_expression "pcStack_48c = &cStack_92c" identifier = (pointer_expression "&cStack_92c" & identifier)) ;) (expression_statement "pcVar4 = pcStack_48c;" (assignment_expression "pcVar4 = pcStack_48c" identifier = identifier) ;) (expression_statement "pcStack_934 = pcVar11;" (assignment_expression "pcStack_934 = pcVar11" identifier = identifier) ;) (expression_statement "iVar10 = png_text_compress(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11);" (assignment_expression "iVar10 = png_text_compress(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11)" identifier = (call_expression "png_text_compress(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11)" identifier (argument_list "(ppVar12,0x69545874,pcStack_48c,(png_uint_32)pcVar11)" ( identifier , number_literal , identifier , (cast_expression "(png_uint_32)pcVar11" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) )))) ;) (expression_statement "puVar38 = (undefined *)auStack_978._56_4_;" (assignment_expression "puVar38 = (undefined *)auStack_978._56_4_" identifier = (cast_expression "(undefined *)auStack_978._56_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_978._56_4_" identifier . field_identifier))) ;) (if_statement "if (iVar10 == 0) {\n      pcVar4 = unaff_s8;\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);\n        pcVar21 = pcVar11;\n      }\n      else {\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }\n      png_write_compressed_data_out(ppVar12,pcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      (**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      if (iStack_4cc == *piVar34) {\n        return;\n      }\n      goto LAB_0003b948;\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar4 = unaff_s8;\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);\n        pcVar21 = pcVar11;\n      }\n      else {\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }\n      png_write_compressed_data_out(ppVar12,pcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (compression_state *)(pVar2 + 3);\n      (**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12);\n      puVar38 = (undefined *)auStack_978._56_4_;\n      if (iStack_4cc == *piVar34) {\n        return;\n      }\n      goto LAB_0003b948;\n    }" { (expression_statement "pcVar4 = unaff_s8;" (assignment_expression "pcVar4 = unaff_s8" identifier = identifier) ;) (if_statement "if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);\n        pcVar21 = pcVar11;\n      }\n      else {\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }" if (parenthesized_expression "(ppVar12 == (png_structrp)0x0)" ( (binary_expression "ppVar12 == (png_structrp)0x0" identifier == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);\n        pcVar21 = pcVar11;\n      }" { (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,new_key_00,unaff_s0)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(0,new_key_00,unaff_s0)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,compression,key)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(0,compression,key)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(0,&_gp)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(0,&_gp)" ( number_literal , (pointer_expression "&_gp" & identifier) ))) ;) (expression_statement "pcVar21 = pcVar11;" (assignment_expression "pcVar21 = pcVar11" identifier = identifier) ;) }) (else_clause "else {\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }" else (compound_statement "{\n        png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);\n        (**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);\n        pcVar21 = pcVar11;\n      }" { (expression_statement "png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))\n        ;" (call_expression "png_write_chunk_header\n                  (ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))" identifier (argument_list "(ppVar12,0x69545874,\n                   (png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)))" ( identifier , number_literal , (call_expression "(png_uint_32)\n                   ((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18))" (parenthesized_expression "(png_uint_32)" ( identifier )) (argument_list "((png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18))" ( (binary_expression "(png_byte *)(cStack_92c.output_len + 0xc) + (int)(pcStack_934->output + -0x18)" (cast_expression "(png_byte *)(cStack_92c.output_len + 0xc)" ( (type_descriptor "png_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cStack_92c.output_len + 0xc)" ( (binary_expression "cStack_92c.output_len + 0xc" (field_expression "cStack_92c.output_len" identifier . field_identifier) + number_literal) ))) + (cast_expression "(int)(pcStack_934->output + -0x18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcStack_934->output + -0x18)" ( (binary_expression "pcStack_934->output + -0x18" (field_expression "pcStack_934->output" identifier -> field_identifier) + number_literal) )))) ))) ))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,new_key_00,unaff_s0)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(ppVar12,new_key_00,unaff_s0)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,compression,key)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(ppVar12,compression,key)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))(ppVar12,&_gp)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7af4))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7af4)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7af4)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7af4)" ( (binary_expression "auStack_978._56_4_ + -0x7af4" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(ppVar12,&_gp)" ( identifier , (pointer_expression "&_gp" & identifier) ))) ;) (expression_statement "pcVar21 = pcVar11;" (assignment_expression "pcVar21 = pcVar11" identifier = identifier) ;) }))) (expression_statement "png_write_compressed_data_out(ppVar12,pcStack_48c);" (call_expression "png_write_compressed_data_out(ppVar12,pcStack_48c)" identifier (argument_list "(ppVar12,pcStack_48c)" ( identifier , identifier ))) ;) (labeled_statement "LAB_0003b710:\n      unaff_s0 = (compression_state *)(pVar2 + 3);" statement_identifier : (expression_statement "unaff_s0 = (compression_state *)(pVar2 + 3);" (assignment_expression "unaff_s0 = (compression_state *)(pVar2 + 3)" identifier = (cast_expression "(compression_state *)(pVar2 + 3)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pVar2 + 3)" ( (binary_expression "pVar2 + 3" identifier + number_literal) )))) ;)) (expression_statement "(**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12);" (call_expression "(**(code **)(auStack_978._56_4_ + -0x7be8))(ppVar12)" (parenthesized_expression "(**(code **)(auStack_978._56_4_ + -0x7be8))" ( (pointer_expression "**(code **)(auStack_978._56_4_ + -0x7be8)" * (pointer_expression "*(code **)(auStack_978._56_4_ + -0x7be8)" * (cast_expression "(code **)(auStack_978._56_4_ + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_978._56_4_ + -0x7be8)" ( (binary_expression "auStack_978._56_4_ + -0x7be8" (field_expression "auStack_978._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(ppVar12)" ( identifier ))) ;) (expression_statement "puVar38 = (undefined *)auStack_978._56_4_;" (assignment_expression "puVar38 = (undefined *)auStack_978._56_4_" identifier = (cast_expression "(undefined *)auStack_978._56_4_" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_978._56_4_" identifier . field_identifier))) ;) (if_statement "if (iStack_4cc == *piVar34) {\n        return;\n      }" if (parenthesized_expression "(iStack_4cc == *piVar34)" ( (binary_expression "iStack_4cc == *piVar34" identifier == (pointer_expression "*piVar34" * identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0003b948;" goto statement_identifier ;) })) }))) (expression_statement "pcVar15 = (ppVar12->zstream).msg;" (assignment_expression "pcVar15 = (ppVar12->zstream).msg" identifier = (field_expression "(ppVar12->zstream).msg" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar36 = *(code **)(puVar38 + -0x7be4);" (assignment_expression "pcVar36 = *(code **)(puVar38 + -0x7be4)" identifier = (pointer_expression "*(code **)(puVar38 + -0x7be4)" * (cast_expression "(code **)(puVar38 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar38 + -0x7be4)" ( (binary_expression "puVar38 + -0x7be4" identifier + number_literal) ))))) ;) (expression_statement "pcVar41 = png_write_oFFs;" (assignment_expression "pcVar41 = png_write_oFFs" identifier = identifier) ;) (expression_statement "ppVar31 = ppVar12;" (assignment_expression "ppVar31 = ppVar12" identifier = identifier) ;) (expression_statement "(*pcVar36)(ppVar12,pcVar15);" (call_expression "(*pcVar36)(ppVar12,pcVar15)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(ppVar12,pcVar15)" ( identifier , identifier ))) ;) (expression_statement "ppStack_980 = (png_alloc_size_t *)(pcVar36 + 0x1f668);" (assignment_expression "ppStack_980 = (png_alloc_size_t *)(pcVar36 + 0x1f668)" identifier = (cast_expression "(png_alloc_size_t *)(pcVar36 + 0x1f668)" ( (type_descriptor "png_alloc_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x1f668)" ( (binary_expression "pcVar36 + 0x1f668" identifier + number_literal) )))) ;) (expression_statement "ppVar25 = *(png_structrp *)(pcVar36 + 0x17b34);" (assignment_expression "ppVar25 = *(png_structrp *)(pcVar36 + 0x17b34)" identifier = (pointer_expression "*(png_structrp *)(pcVar36 + 0x17b34)" * (cast_expression "(png_structrp *)(pcVar36 + 0x17b34)" ( (type_descriptor "png_structrp *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x17b34)" ( (binary_expression "pcVar36 + 0x17b34" identifier + number_literal) ))))) ;) (expression_statement "auStack_978._12_4_ = ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc;" (assignment_expression "auStack_978._12_4_ = ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc" (field_expression "auStack_978._12_4_" identifier . field_identifier) = (field_expression "ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar25->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar25->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar25->jmp_buf_local[0]" (field_expression "ppVar25->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x17a50);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x17a50)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x17a50)" * (cast_expression "(code **)(pcVar36 + 0x17a50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x17a50)" ( (binary_expression "pcVar36 + 0x17a50" identifier + number_literal) ))))) ;) (expression_statement "auStack_978._16_4_ = unaff_s0;" (assignment_expression "auStack_978._16_4_ = unaff_s0" (field_expression "auStack_978._16_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_978._20_4_ = ppVar12;" (assignment_expression "auStack_978._20_4_ = ppVar12" (field_expression "auStack_978._20_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_978._24_4_ = pcStack_48c;" (assignment_expression "auStack_978._24_4_ = pcStack_48c" (field_expression "auStack_978._24_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_978._28_4_ = &_gp;" (assignment_expression "auStack_978._28_4_ = &_gp" (field_expression "auStack_978._28_4_" identifier . field_identifier) = (pointer_expression "&_gp" & identifier)) ;) (expression_statement "auStack_978._32_4_ = compression;" (assignment_expression "auStack_978._32_4_ = compression" (field_expression "auStack_978._32_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_978._36_4_ = pcVar41;" (assignment_expression "auStack_978._36_4_ = pcVar41" (field_expression "auStack_978._36_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (1 < (int)pcVar11) {\n    (**(code **)(pcVar36 + 0x17ab8))();\n    pcVar37 = (code *)ppStack_980[-0x1f06];\n  }" if (parenthesized_expression "(1 < (int)pcVar11)" ( (binary_expression "1 < (int)pcVar11" number_literal < (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    (**(code **)(pcVar36 + 0x17ab8))();\n    pcVar37 = (code *)ppStack_980[-0x1f06];\n  }" { (expression_statement "(**(code **)(pcVar36 + 0x17ab8))();" (call_expression "(**(code **)(pcVar36 + 0x17ab8))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x17ab8))" ( (pointer_expression "**(code **)(pcVar36 + 0x17ab8)" * (pointer_expression "*(code **)(pcVar36 + 0x17ab8)" * (cast_expression "(code **)(pcVar36 + 0x17ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x17ab8)" ( (binary_expression "pcVar36 + 0x17ab8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar37 = (code *)ppStack_980[-0x1f06];" (assignment_expression "pcVar37 = (code *)ppStack_980[-0x1f06]" identifier = (cast_expression "(code *)ppStack_980[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppStack_980[-0x1f06]" identifier [ number_literal ]))) ;) })) (expression_statement "(*pcVar37)((jmp_buf *)auStack_978,pcVar15);" (call_expression "(*pcVar37)((jmp_buf *)auStack_978,pcVar15)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "((jmp_buf *)auStack_978,pcVar15)" ( (cast_expression "(jmp_buf *)auStack_978" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "(*(code *)ppStack_980[-0x1f06])(auStack_978 + 4,pcVar4);" (call_expression "(*(code *)ppStack_980[-0x1f06])(auStack_978 + 4,pcVar4)" (parenthesized_expression "(*(code *)ppStack_980[-0x1f06])" ( (pointer_expression "*(code *)ppStack_980[-0x1f06]" * (cast_expression "(code *)ppStack_980[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppStack_980[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(auStack_978 + 4,pcVar4)" ( (binary_expression "auStack_978 + 4" identifier + number_literal) , identifier ))) ;) (expression_statement "p_Var22 = (png_error_ptr)0x9;" (assignment_expression "p_Var22 = (png_error_ptr)0x9" identifier = (cast_expression "(png_error_ptr)0x9" ( (type_descriptor "png_error_ptr" type_identifier) ) number_literal)) ;) (expression_statement "key_00 = &DAT_6f464673;" (assignment_expression "key_00 = &DAT_6f464673" identifier = (pointer_expression "&DAT_6f464673" & identifier)) ;) (expression_statement "auStack_978[8] = SUB41(pcVar11,0);" (assignment_expression "auStack_978[8] = SUB41(pcVar11,0)" (subscript_expression "auStack_978[8]" identifier [ number_literal ]) = (call_expression "SUB41(pcVar11,0)" identifier (argument_list "(pcVar11,0)" ( identifier , number_literal )))) ;) (expression_statement "ppVar12 = ppVar31;" (assignment_expression "ppVar12 = ppVar31" identifier = identifier) ;) (expression_statement "pa_Var18 = (jmp_buf *)auStack_978;" (assignment_expression "pa_Var18 = (jmp_buf *)auStack_978" identifier = (cast_expression "(jmp_buf *)auStack_978" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "png_write_complete_chunk(ppVar31,0x6f464673,(png_const_bytep)auStack_978,9);" (call_expression "png_write_complete_chunk(ppVar31,0x6f464673,(png_const_bytep)auStack_978,9)" identifier (argument_list "(ppVar31,0x6f464673,(png_const_bytep)auStack_978,9)" ( identifier , number_literal , (cast_expression "(png_const_bytep)auStack_978" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier) , number_literal ))) ;) (if_statement "if ((void *)auStack_978._12_4_ == ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc) {\n    return;\n  }" if (parenthesized_expression "((void *)auStack_978._12_4_ == ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc)" ( (binary_expression "(void *)auStack_978._12_4_ == ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc" (cast_expression "(void *)auStack_978._12_4_" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_978._12_4_" identifier . field_identifier)) == (field_expression "ppVar25->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar25->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar25->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar25->jmp_buf_local[0]" (field_expression "ppVar25->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar36 = (code *)ppStack_980[-0x1edb];" (assignment_expression "pcVar36 = (code *)ppStack_980[-0x1edb]" identifier = (cast_expression "(code *)ppStack_980[-0x1edb]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppStack_980[-0x1edb]" identifier [ number_literal ]))) ;) (expression_statement "pcVar37 = png_write_pCAL;" (assignment_expression "pcVar37 = png_write_pCAL" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar21 = (compression_state *)ppStack_980;" (assignment_expression "pcVar21 = (compression_state *)ppStack_980" identifier = (cast_expression "(compression_state *)ppStack_980" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "p_Var39 = pcVar36 + 0x1f574;" (assignment_expression "p_Var39 = pcVar36 + 0x1f574" identifier = (binary_expression "pcVar36 + 0x1f574" identifier + number_literal)) ;) (expression_statement "p_Stack_a30 = *(png_rw_ptr *)(pcVar36 + 0x17a40);" (assignment_expression "p_Stack_a30 = *(png_rw_ptr *)(pcVar36 + 0x17a40)" identifier = (pointer_expression "*(png_rw_ptr *)(pcVar36 + 0x17a40)" * (cast_expression "(png_rw_ptr *)(pcVar36 + 0x17a40)" ( (type_descriptor "png_rw_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x17a40)" ( (binary_expression "pcVar36 + 0x17a40" identifier + number_literal) ))))) ;) (expression_statement "p_Stack_a34 = (png_rw_ptr)auStack_978._0_4_;" (assignment_expression "p_Stack_a34 = (png_rw_ptr)auStack_978._0_4_" identifier = (cast_expression "(png_rw_ptr)auStack_978._0_4_" ( (type_descriptor "png_rw_ptr" type_identifier) ) (field_expression "auStack_978._0_4_" identifier . field_identifier))) ;) (expression_statement "auStack_a18._92_4_ = *(undefined4 *)p_Stack_a30;" (assignment_expression "auStack_a18._92_4_ = *(undefined4 *)p_Stack_a30" (field_expression "auStack_a18._92_4_" identifier . field_identifier) = (pointer_expression "*(undefined4 *)p_Stack_a30" * (cast_expression "(undefined4 *)p_Stack_a30" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "ppStack_a70 = ppVar25;" (assignment_expression "ppStack_a70 = ppVar25" identifier = identifier) ;) (expression_statement "p_Stack_a40 = p_Var39;" (assignment_expression "p_Stack_a40 = p_Var39" identifier = identifier) ;) (expression_statement "auStack_a18._96_4_ = (jmp_buf *)auStack_978;" (assignment_expression "auStack_a18._96_4_ = (jmp_buf *)auStack_978" (field_expression "auStack_a18._96_4_" identifier . field_identifier) = (cast_expression "(jmp_buf *)auStack_978" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppStack_9b4 = ppVar25;" (assignment_expression "ppStack_9b4 = ppVar25" identifier = identifier) ;) (expression_statement "pcStack_9b0 = pcVar11;" (assignment_expression "pcStack_9b0 = pcVar11" identifier = identifier) ;) (expression_statement "ppStack_9ac = ppVar31;" (assignment_expression "ppStack_9ac = ppVar31" identifier = identifier) ;) (expression_statement "pcStack_9a8 = pcVar4;" (assignment_expression "pcStack_9a8 = pcVar4" identifier = identifier) ;) (expression_statement "pcStack_9a4 = (compression_state *)key;" (assignment_expression "pcStack_9a4 = (compression_state *)key" identifier = (cast_expression "(compression_state *)key" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_9a0 = new_key_00;" (assignment_expression "pcStack_9a0 = new_key_00" identifier = identifier) ;) (expression_statement "piStack_99c = piVar34;" (assignment_expression "piStack_99c = piVar34" identifier = identifier) ;) (expression_statement "pcStack_998 = unaff_s8;" (assignment_expression "pcStack_998 = unaff_s8" identifier = identifier) ;) (expression_statement "ppStack_994 = (png_compression_bufferp)pcVar37;" (assignment_expression "ppStack_994 = (png_compression_bufferp)pcVar37" identifier = (cast_expression "(png_compression_bufferp)pcVar37" ( (type_descriptor "png_compression_bufferp" type_identifier) ) identifier)) ;) (expression_statement "pa_Stack_988 = pa_Var18;" (assignment_expression "pa_Stack_988 = pa_Var18" identifier = identifier) ;) (expression_statement "p_Stack_984 = p_Var22;" (assignment_expression "p_Stack_984 = p_Var22" identifier = identifier) ;) (if_statement "if ((int)ppStack_980 < 4) {\n    pa_Var18 = (jmp_buf *)(auStack_a18 + 0xc);\n    pa_Stack_a1c = pa_Var18;\n    pVar2 = png_check_keyword(ppVar12,key_00,(png_bytep)pa_Var18);\n    p_Var39 = p_Stack_a40;\n    ppStack_a70 = ppVar12;\n    if (pVar2 == 0) {\n      (**(code **)(p_Stack_a40 + -0x7be4))(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8);\n      pcVar4 = (compression_state *)0x0;\n      goto LAB_0003bebc;\n    }\n    pvStack_a2c = (png_voidp)(pVar2 + 1);\n    ppVar31 = (png_structrp)(uint)(ppStack_97c != (png_structrp)0x0);\n    p_Stack_a24 = (png_user_transform_ptr)((uint)pcVar21 & 0xff);\n    iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(p_Stack_a34);\n    pa_Stack_a28 = (jmp_buf *)((int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8);\n    piVar34 = (int *)((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3);\n    pcVar4 = (compression_state *)\n             (**(code **)(p_Stack_a40 + -0x7ce8))(ppVar12,(int)ppStack_97c << 2);\n    pvStack_a20 = (png_voidp)((uint)ppStack_97c & 0xff);\n    if ((int)ppStack_97c < 1) {\n      if (ppVar12 == (png_structrp)0x0) {\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);\n      }\n    }\n    else {\n      ppVar31 = (png_structrp)0x0;\n      key = (png_const_charp)auStack_978._4_4_;\n      pcVar11 = pcVar4;\n      do {\n        uVar13 = *(undefined4 *)key;\n        key = (png_const_charp)((int)key + 4);\n        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);\n        ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);\n        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        pcVar11->input = ppVar5;\n        piVar34 = (int *)((int)piVar34 + (int)ppVar5);\n        pcVar11 = (compression_state *)&pcVar11->input_len;\n      } while (ppStack_97c != ppVar31);\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }\n      new_key_00 = (compression_state *)0x0;\n      pcVar21 = pcVar4;\n      puVar40 = (undefined4 *)auStack_978._4_4_;\n      do {\n        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);\n        pa_Var18 = (jmp_buf *)pcVar21->input;\n        uVar13 = *puVar40;\n        pcVar21 = (compression_state *)&pcVar21->input_len;\n        puVar40 = puVar40 + 1;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);\n        ppVar25 = ppStack_97c;\n        auStack_978._4_4_ = puVar40;\n      } while ((int)new_key_00 < (int)ppStack_97c);\n    }\n    pcVar11 = pcVar4;\n    (**(code **)(p_Stack_a40 + -0x7ccc))(ppVar12);\n    (**(code **)(p_Stack_a40 + -0x7be8))();\n    ppStack_a74 = ppVar25;\n    p_Var39 = p_Stack_a40;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n    if (auStack_a18._92_4_ == *(uInt *)p_Stack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pcVar11 = (compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c);\n    (**(code **)(p_Var39 + -0x7be4))();\n    ppStack_a74 = ppStack_97c;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n  }" if (parenthesized_expression "((int)ppStack_980 < 4)" ( (binary_expression "(int)ppStack_980 < 4" (cast_expression "(int)ppStack_980" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    pa_Var18 = (jmp_buf *)(auStack_a18 + 0xc);\n    pa_Stack_a1c = pa_Var18;\n    pVar2 = png_check_keyword(ppVar12,key_00,(png_bytep)pa_Var18);\n    p_Var39 = p_Stack_a40;\n    ppStack_a70 = ppVar12;\n    if (pVar2 == 0) {\n      (**(code **)(p_Stack_a40 + -0x7be4))(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8);\n      pcVar4 = (compression_state *)0x0;\n      goto LAB_0003bebc;\n    }\n    pvStack_a2c = (png_voidp)(pVar2 + 1);\n    ppVar31 = (png_structrp)(uint)(ppStack_97c != (png_structrp)0x0);\n    p_Stack_a24 = (png_user_transform_ptr)((uint)pcVar21 & 0xff);\n    iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(p_Stack_a34);\n    pa_Stack_a28 = (jmp_buf *)((int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8);\n    piVar34 = (int *)((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3);\n    pcVar4 = (compression_state *)\n             (**(code **)(p_Stack_a40 + -0x7ce8))(ppVar12,(int)ppStack_97c << 2);\n    pvStack_a20 = (png_voidp)((uint)ppStack_97c & 0xff);\n    if ((int)ppStack_97c < 1) {\n      if (ppVar12 == (png_structrp)0x0) {\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);\n      }\n    }\n    else {\n      ppVar31 = (png_structrp)0x0;\n      key = (png_const_charp)auStack_978._4_4_;\n      pcVar11 = pcVar4;\n      do {\n        uVar13 = *(undefined4 *)key;\n        key = (png_const_charp)((int)key + 4);\n        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);\n        ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);\n        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        pcVar11->input = ppVar5;\n        piVar34 = (int *)((int)piVar34 + (int)ppVar5);\n        pcVar11 = (compression_state *)&pcVar11->input_len;\n      } while (ppStack_97c != ppVar31);\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }\n      new_key_00 = (compression_state *)0x0;\n      pcVar21 = pcVar4;\n      puVar40 = (undefined4 *)auStack_978._4_4_;\n      do {\n        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);\n        pa_Var18 = (jmp_buf *)pcVar21->input;\n        uVar13 = *puVar40;\n        pcVar21 = (compression_state *)&pcVar21->input_len;\n        puVar40 = puVar40 + 1;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);\n        ppVar25 = ppStack_97c;\n        auStack_978._4_4_ = puVar40;\n      } while ((int)new_key_00 < (int)ppStack_97c);\n    }\n    pcVar11 = pcVar4;\n    (**(code **)(p_Stack_a40 + -0x7ccc))(ppVar12);\n    (**(code **)(p_Stack_a40 + -0x7be8))();\n    ppStack_a74 = ppVar25;\n    p_Var39 = p_Stack_a40;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n    if (auStack_a18._92_4_ == *(uInt *)p_Stack_a30) {\n      return;\n    }\n  }" { (expression_statement "pa_Var18 = (jmp_buf *)(auStack_a18 + 0xc);" (assignment_expression "pa_Var18 = (jmp_buf *)(auStack_a18 + 0xc)" identifier = (cast_expression "(jmp_buf *)(auStack_a18 + 0xc)" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_a18 + 0xc)" ( (binary_expression "auStack_a18 + 0xc" identifier + number_literal) )))) ;) (expression_statement "pa_Stack_a1c = pa_Var18;" (assignment_expression "pa_Stack_a1c = pa_Var18" identifier = identifier) ;) (expression_statement "pVar2 = png_check_keyword(ppVar12,key_00,(png_bytep)pa_Var18);" (assignment_expression "pVar2 = png_check_keyword(ppVar12,key_00,(png_bytep)pa_Var18)" identifier = (call_expression "png_check_keyword(ppVar12,key_00,(png_bytep)pa_Var18)" identifier (argument_list "(ppVar12,key_00,(png_bytep)pa_Var18)" ( identifier , identifier , (cast_expression "(png_bytep)pa_Var18" ( (type_descriptor "png_bytep" type_identifier) ) identifier) )))) ;) (expression_statement "p_Var39 = p_Stack_a40;" (assignment_expression "p_Var39 = p_Stack_a40" identifier = identifier) ;) (expression_statement "ppStack_a70 = ppVar12;" (assignment_expression "ppStack_a70 = ppVar12" identifier = identifier) ;) (if_statement "if (pVar2 == 0) {\n      (**(code **)(p_Stack_a40 + -0x7be4))(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8);\n      pcVar4 = (compression_state *)0x0;\n      goto LAB_0003bebc;\n    }" if (parenthesized_expression "(pVar2 == 0)" ( (binary_expression "pVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      (**(code **)(p_Stack_a40 + -0x7be4))(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8);\n      pcVar4 = (compression_state *)0x0;\n      goto LAB_0003bebc;\n    }" { (expression_statement "(**(code **)(p_Stack_a40 + -0x7be4))(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8);" (call_expression "(**(code **)(p_Stack_a40 + -0x7be4))(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7be4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7be4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7be4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7be4)" ( (binary_expression "p_Stack_a40 + -0x7be4" identifier + number_literal) ))))) )) (argument_list "(ppVar12,*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8)" ( identifier , (binary_expression "*(int *)(p_Stack_a40 + -0x7fd4) + 0x26c8" (pointer_expression "*(int *)(p_Stack_a40 + -0x7fd4)" * (cast_expression "(int *)(p_Stack_a40 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Stack_a40 + -0x7fd4)" ( (binary_expression "p_Stack_a40 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar4 = (compression_state *)0x0;" (assignment_expression "pcVar4 = (compression_state *)0x0" identifier = (cast_expression "(compression_state *)0x0" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0003bebc;" goto statement_identifier ;) })) (expression_statement "pvStack_a2c = (png_voidp)(pVar2 + 1);" (assignment_expression "pvStack_a2c = (png_voidp)(pVar2 + 1)" identifier = (call_expression "(png_voidp)(pVar2 + 1)" (parenthesized_expression "(png_voidp)" ( identifier )) (argument_list "(pVar2 + 1)" ( (binary_expression "pVar2 + 1" identifier + number_literal) )))) ;) (expression_statement "ppVar31 = (png_structrp)(uint)(ppStack_97c != (png_structrp)0x0);" (assignment_expression "ppVar31 = (png_structrp)(uint)(ppStack_97c != (png_structrp)0x0)" identifier = (call_expression "(png_structrp)(uint)(ppStack_97c != (png_structrp)0x0)" (call_expression "(png_structrp)(uint)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(uint)" ( identifier ))) (argument_list "(ppStack_97c != (png_structrp)0x0)" ( (binary_expression "ppStack_97c != (png_structrp)0x0" identifier != (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )))) ;) (expression_statement "p_Stack_a24 = (png_user_transform_ptr)((uint)pcVar21 & 0xff);" (assignment_expression "p_Stack_a24 = (png_user_transform_ptr)((uint)pcVar21 & 0xff)" identifier = (call_expression "(png_user_transform_ptr)((uint)pcVar21 & 0xff)" (parenthesized_expression "(png_user_transform_ptr)" ( identifier )) (argument_list "((uint)pcVar21 & 0xff)" ( (binary_expression "(uint)pcVar21 & 0xff" (cast_expression "(uint)pcVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(p_Stack_a34);" (assignment_expression "iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(p_Stack_a34)" identifier = (call_expression "(**(code **)(p_Stack_a40 + -0x7c1c))(p_Stack_a34)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7c1c))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7c1c)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7c1c)" * (cast_expression "(code **)(p_Stack_a40 + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7c1c)" ( (binary_expression "p_Stack_a40 + -0x7c1c" identifier + number_literal) ))))) )) (argument_list "(p_Stack_a34)" ( identifier )))) ;) (expression_statement "pa_Stack_a28 = (jmp_buf *)((int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8);" (assignment_expression "pa_Stack_a28 = (jmp_buf *)((int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8)" identifier = (cast_expression "(jmp_buf *)((int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8)" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8)" ( (binary_expression "(int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10 + -8" (binary_expression "(int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs + iVar10" (cast_expression "(int)ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs" ( (type_descriptor "int" primitive_type) ) (field_expression "ppVar31->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "ppVar31->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar31->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar31->jmp_buf_local[0]" (field_expression "ppVar31->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) + identifier) + number_literal) )))) ;) (expression_statement "piVar34 = (int *)((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3);" (assignment_expression "piVar34 = (int *)((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3)" identifier = (cast_expression "(int *)((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3)" ( (binary_expression "(int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2 + 3" (binary_expression "(int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + pVar2" (cast_expression "(int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs" ( (type_descriptor "int" primitive_type) ) (field_expression "(*pa_Stack_a28)[0].__jmpbuf[0].__regs" (subscript_expression "(*pa_Stack_a28)[0].__jmpbuf[0]" (field_expression "(*pa_Stack_a28)[0].__jmpbuf" (subscript_expression "(*pa_Stack_a28)[0]" (parenthesized_expression "(*pa_Stack_a28)" ( (pointer_expression "*pa_Stack_a28" * identifier) )) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) + identifier) + number_literal) )))) ;) (expression_statement "pcVar4 = (compression_state *)\n             (**(code **)(p_Stack_a40 + -0x7ce8))(ppVar12,(int)ppStack_97c << 2);" (assignment_expression "pcVar4 = (compression_state *)\n             (**(code **)(p_Stack_a40 + -0x7ce8))(ppVar12,(int)ppStack_97c << 2)" identifier = (cast_expression "(compression_state *)\n             (**(code **)(p_Stack_a40 + -0x7ce8))(ppVar12,(int)ppStack_97c << 2)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(p_Stack_a40 + -0x7ce8))(ppVar12,(int)ppStack_97c << 2)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7ce8))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7ce8)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7ce8)" * (cast_expression "(code **)(p_Stack_a40 + -0x7ce8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7ce8)" ( (binary_expression "p_Stack_a40 + -0x7ce8" identifier + number_literal) ))))) )) (argument_list "(ppVar12,(int)ppStack_97c << 2)" ( identifier , (binary_expression "(int)ppStack_97c << 2" (cast_expression "(int)ppStack_97c" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "pvStack_a20 = (png_voidp)((uint)ppStack_97c & 0xff);" (assignment_expression "pvStack_a20 = (png_voidp)((uint)ppStack_97c & 0xff)" identifier = (call_expression "(png_voidp)((uint)ppStack_97c & 0xff)" (parenthesized_expression "(png_voidp)" ( identifier )) (argument_list "((uint)ppStack_97c & 0xff)" ( (binary_expression "(uint)ppStack_97c & 0xff" (cast_expression "(uint)ppStack_97c" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((int)ppStack_97c < 1) {\n      if (ppVar12 == (png_structrp)0x0) {\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);\n      }\n    }\n    else {\n      ppVar31 = (png_structrp)0x0;\n      key = (png_const_charp)auStack_978._4_4_;\n      pcVar11 = pcVar4;\n      do {\n        uVar13 = *(undefined4 *)key;\n        key = (png_const_charp)((int)key + 4);\n        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);\n        ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);\n        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        pcVar11->input = ppVar5;\n        piVar34 = (int *)((int)piVar34 + (int)ppVar5);\n        pcVar11 = (compression_state *)&pcVar11->input_len;\n      } while (ppStack_97c != ppVar31);\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }\n      new_key_00 = (compression_state *)0x0;\n      pcVar21 = pcVar4;\n      puVar40 = (undefined4 *)auStack_978._4_4_;\n      do {\n        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);\n        pa_Var18 = (jmp_buf *)pcVar21->input;\n        uVar13 = *puVar40;\n        pcVar21 = (compression_state *)&pcVar21->input_len;\n        puVar40 = puVar40 + 1;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);\n        ppVar25 = ppStack_97c;\n        auStack_978._4_4_ = puVar40;\n      } while ((int)new_key_00 < (int)ppStack_97c);\n    }" if (parenthesized_expression "((int)ppStack_97c < 1)" ( (binary_expression "(int)ppStack_97c < 1" (cast_expression "(int)ppStack_97c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (ppVar12 == (png_structrp)0x0) {\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);\n      }\n    }" { (if_statement "if (ppVar12 == (png_structrp)0x0) {\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);\n      }" if (parenthesized_expression "(ppVar12 == (png_structrp)0x0)" ( (binary_expression "ppVar12 == (png_structrp)0x0" identifier == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);\n      }" { (expression_statement "ppVar25 = (png_structrp)auStack_a18;" (assignment_expression "ppVar25 = (png_structrp)auStack_a18" identifier = (cast_expression "(png_structrp)auStack_a18" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,pa_Stack_a1c,pvStack_a2c)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);" (call_expression "(**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7c18))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7c18)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7c18)" * (cast_expression "(code **)(p_Stack_a40 + -0x7c18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7c18)" ( (binary_expression "p_Stack_a40 + -0x7c18" identifier + number_literal) ))))) )) (argument_list "(ppVar25,pa_Stack_988)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);" (call_expression "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7c18))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7c18)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7c18)" * (cast_expression "(code **)(p_Stack_a40 + -0x7c18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7c18)" ( (binary_expression "p_Stack_a40 + -0x7c18" identifier + number_literal) ))))) )) (argument_list "(auStack_a18 + 4,p_Stack_984)" ( (binary_expression "auStack_a18 + 4" identifier + number_literal) , identifier ))) ;) (expression_statement "auStack_a18[8] = SUB41(p_Stack_a24,0);" (assignment_expression "auStack_a18[8] = SUB41(p_Stack_a24,0)" (subscript_expression "auStack_a18[8]" identifier [ number_literal ]) = (call_expression "SUB41(p_Stack_a24,0)" identifier (argument_list "(p_Stack_a24,0)" ( identifier , number_literal )))) ;) (expression_statement "auStack_a18[9] = SUB41(pvStack_a20,0);" (assignment_expression "auStack_a18[9] = SUB41(pvStack_a20,0)" (subscript_expression "auStack_a18[9]" identifier [ number_literal ]) = (call_expression "SUB41(pvStack_a20,0)" identifier (argument_list "(pvStack_a20,0)" ( identifier , number_literal )))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(0,ppVar25,10)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,ppVar25,10)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "pa_Var18 = pa_Stack_a28;" (assignment_expression "pa_Var18 = pa_Stack_a28" identifier = identifier) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,p_Stack_a34)" ( number_literal , identifier ))) ;) }) (else_clause "else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);\n      }" else (compound_statement "{\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        ppVar25 = (png_structrp)auStack_a18;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);\n        pa_Var18 = pa_Stack_a28;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);\n      }" { (expression_statement "png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);" (call_expression "png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34)" identifier (argument_list "(ppVar12,0x7043414c,(png_uint_32)piVar34)" ( identifier , number_literal , (cast_expression "(png_uint_32)piVar34" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "ppVar25 = (png_structrp)auStack_a18;" (assignment_expression "ppVar25 = (png_structrp)auStack_a18" identifier = (cast_expression "(png_structrp)auStack_a18" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(ppVar12,pa_Stack_a1c,pvStack_a2c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988);" (call_expression "(**(code **)(p_Stack_a40 + -0x7c18))(ppVar25,pa_Stack_988)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7c18))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7c18)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7c18)" * (cast_expression "(code **)(p_Stack_a40 + -0x7c18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7c18)" ( (binary_expression "p_Stack_a40 + -0x7c18" identifier + number_literal) ))))) )) (argument_list "(ppVar25,pa_Stack_988)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);" (call_expression "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7c18))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7c18)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7c18)" * (cast_expression "(code **)(p_Stack_a40 + -0x7c18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7c18)" ( (binary_expression "p_Stack_a40 + -0x7c18" identifier + number_literal) ))))) )) (argument_list "(auStack_a18 + 4,p_Stack_984)" ( (binary_expression "auStack_a18 + 4" identifier + number_literal) , identifier ))) ;) (expression_statement "auStack_a18[8] = SUB41(p_Stack_a24,0);" (assignment_expression "auStack_a18[8] = SUB41(p_Stack_a24,0)" (subscript_expression "auStack_a18[8]" identifier [ number_literal ]) = (call_expression "SUB41(p_Stack_a24,0)" identifier (argument_list "(p_Stack_a24,0)" ( identifier , number_literal )))) ;) (expression_statement "auStack_a18[9] = SUB41(pvStack_a20,0);" (assignment_expression "auStack_a18[9] = SUB41(pvStack_a20,0)" (subscript_expression "auStack_a18[9]" identifier [ number_literal ]) = (call_expression "SUB41(pvStack_a20,0)" identifier (argument_list "(pvStack_a20,0)" ( identifier , number_literal )))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,ppVar25,10)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(ppVar12,ppVar25,10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pa_Var18 = pa_Stack_a28;" (assignment_expression "pa_Var18 = pa_Stack_a28" identifier = identifier) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(ppVar12,p_Stack_a34)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\n      ppVar31 = (png_structrp)0x0;\n      key = (png_const_charp)auStack_978._4_4_;\n      pcVar11 = pcVar4;\n      do {\n        uVar13 = *(undefined4 *)key;\n        key = (png_const_charp)((int)key + 4);\n        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);\n        ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);\n        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        pcVar11->input = ppVar5;\n        piVar34 = (int *)((int)piVar34 + (int)ppVar5);\n        pcVar11 = (compression_state *)&pcVar11->input_len;\n      } while (ppStack_97c != ppVar31);\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }\n      new_key_00 = (compression_state *)0x0;\n      pcVar21 = pcVar4;\n      puVar40 = (undefined4 *)auStack_978._4_4_;\n      do {\n        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);\n        pa_Var18 = (jmp_buf *)pcVar21->input;\n        uVar13 = *puVar40;\n        pcVar21 = (compression_state *)&pcVar21->input_len;\n        puVar40 = puVar40 + 1;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);\n        ppVar25 = ppStack_97c;\n        auStack_978._4_4_ = puVar40;\n      } while ((int)new_key_00 < (int)ppStack_97c);\n    }" else (compound_statement "{\n      ppVar31 = (png_structrp)0x0;\n      key = (png_const_charp)auStack_978._4_4_;\n      pcVar11 = pcVar4;\n      do {\n        uVar13 = *(undefined4 *)key;\n        key = (png_const_charp)((int)key + 4);\n        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);\n        ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);\n        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        pcVar11->input = ppVar5;\n        piVar34 = (int *)((int)piVar34 + (int)ppVar5);\n        pcVar11 = (compression_state *)&pcVar11->input_len;\n      } while (ppStack_97c != ppVar31);\n      if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }\n      new_key_00 = (compression_state *)0x0;\n      pcVar21 = pcVar4;\n      puVar40 = (undefined4 *)auStack_978._4_4_;\n      do {\n        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);\n        pa_Var18 = (jmp_buf *)pcVar21->input;\n        uVar13 = *puVar40;\n        pcVar21 = (compression_state *)&pcVar21->input_len;\n        puVar40 = puVar40 + 1;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);\n        ppVar25 = ppStack_97c;\n        auStack_978._4_4_ = puVar40;\n      } while ((int)new_key_00 < (int)ppStack_97c);\n    }" { (expression_statement "ppVar31 = (png_structrp)0x0;" (assignment_expression "ppVar31 = (png_structrp)0x0" identifier = (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) ;) (expression_statement "key = (png_const_charp)auStack_978._4_4_;" (assignment_expression "key = (png_const_charp)auStack_978._4_4_" identifier = (cast_expression "(png_const_charp)auStack_978._4_4_" ( (type_descriptor "png_const_charp" type_identifier) ) (field_expression "auStack_978._4_4_" identifier . field_identifier))) ;) (expression_statement "pcVar11 = pcVar4;" (assignment_expression "pcVar11 = pcVar4" identifier = identifier) ;) (do_statement "do {\n        uVar13 = *(undefined4 *)key;\n        key = (png_const_charp)((int)key + 4);\n        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);\n        ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);\n        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        pcVar11->input = ppVar5;\n        piVar34 = (int *)((int)piVar34 + (int)ppVar5);\n        pcVar11 = (compression_state *)&pcVar11->input_len;\n      } while (ppStack_97c != ppVar31);" do (compound_statement "{\n        uVar13 = *(undefined4 *)key;\n        key = (png_const_charp)((int)key + 4);\n        iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);\n        ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);\n        ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        pcVar11->input = ppVar5;\n        piVar34 = (int *)((int)piVar34 + (int)ppVar5);\n        pcVar11 = (compression_state *)&pcVar11->input_len;\n      }" { (expression_statement "uVar13 = *(undefined4 *)key;" (assignment_expression "uVar13 = *(undefined4 *)key" identifier = (pointer_expression "*(undefined4 *)key" * (cast_expression "(undefined4 *)key" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "key = (png_const_charp)((int)key + 4);" (assignment_expression "key = (png_const_charp)((int)key + 4)" identifier = (call_expression "(png_const_charp)((int)key + 4)" (parenthesized_expression "(png_const_charp)" ( identifier )) (argument_list "((int)key + 4)" ( (binary_expression "(int)key + 4" (cast_expression "(int)key" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13);" (assignment_expression "iVar10 = (**(code **)(p_Stack_a40 + -0x7c1c))(uVar13)" identifier = (call_expression "(**(code **)(p_Stack_a40 + -0x7c1c))(uVar13)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7c1c))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7c1c)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7c1c)" * (cast_expression "(code **)(p_Stack_a40 + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7c1c)" ( (binary_expression "p_Stack_a40 + -0x7c1c" identifier + number_literal) ))))) )) (argument_list "(uVar13)" ( identifier )))) ;) (expression_statement "ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10);" (assignment_expression "ppVar5 = (png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10)" identifier = (call_expression "(png_const_bytep)\n                 ((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10)" (parenthesized_expression "(png_const_bytep)" ( identifier )) (argument_list "((uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10)" ( (binary_expression "(uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7) + iVar10" (call_expression "(uint)(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7)" ( (binary_expression "ppVar31 != (png_structrp)&ppStack_97c[-1].field_0x3e7" (binary_expression "ppVar31 != (png_structrp)" identifier != (parenthesized_expression "(png_structrp)" ( identifier ))) & (field_expression "ppStack_97c[-1].field_0x3e7" (subscript_expression "ppStack_97c[-1]" identifier [ number_literal ]) . field_identifier)) ))) + identifier) )))) ;) (expression_statement "ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1);" (assignment_expression "ppVar31 = (png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" identifier = (call_expression "(png_structrp)((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "((int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" ( (binary_expression "(int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc + 1" (cast_expression "(int)&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar31->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar31->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar31->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar31->jmp_buf_local[0]" (field_expression "ppVar31->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "pcVar11->input = ppVar5;" (assignment_expression "pcVar11->input = ppVar5" (field_expression "pcVar11->input" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar34 = (int *)((int)piVar34 + (int)ppVar5);" (assignment_expression "piVar34 = (int *)((int)piVar34 + (int)ppVar5)" identifier = (cast_expression "(int *)((int)piVar34 + (int)ppVar5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar34 + (int)ppVar5)" ( (binary_expression "(int)piVar34 + (int)ppVar5" (cast_expression "(int)piVar34" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pcVar11 = (compression_state *)&pcVar11->input_len;" (assignment_expression "pcVar11 = (compression_state *)&pcVar11->input_len" identifier = (cast_expression "(compression_state *)&pcVar11->input_len" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pcVar11->input_len" & (field_expression "pcVar11->input_len" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "(ppStack_97c != ppVar31)" ( (binary_expression "ppStack_97c != ppVar31" identifier != identifier) )) ;) (if_statement "if (ppVar12 == (png_structrp)0x0) {\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);\n      }\n      else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }" if (parenthesized_expression "(ppVar12 == (png_structrp)0x0)" ( (binary_expression "ppVar12 == (png_structrp)0x0" identifier == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);\n      }" { (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,pa_Stack_a1c,pvStack_a2c)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);" (call_expression "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7c18))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7c18)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7c18)" * (cast_expression "(code **)(p_Stack_a40 + -0x7c18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7c18)" ( (binary_expression "p_Stack_a40 + -0x7c18" identifier + number_literal) ))))) )) (argument_list "(auStack_a18,pa_Stack_988)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);" (call_expression "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7c18))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7c18)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7c18)" * (cast_expression "(code **)(p_Stack_a40 + -0x7c18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7c18)" ( (binary_expression "p_Stack_a40 + -0x7c18" identifier + number_literal) ))))) )) (argument_list "(auStack_a18 + 4,p_Stack_984)" ( (binary_expression "auStack_a18 + 4" identifier + number_literal) , identifier ))) ;) (expression_statement "auStack_a18[8] = SUB41(p_Stack_a24,0);" (assignment_expression "auStack_a18[8] = SUB41(p_Stack_a24,0)" (subscript_expression "auStack_a18[8]" identifier [ number_literal ]) = (call_expression "SUB41(p_Stack_a24,0)" identifier (argument_list "(p_Stack_a24,0)" ( identifier , number_literal )))) ;) (expression_statement "auStack_a18[9] = SUB41(pvStack_a20,0);" (assignment_expression "auStack_a18[9] = SUB41(pvStack_a20,0)" (subscript_expression "auStack_a18[9]" identifier [ number_literal ]) = (call_expression "SUB41(pvStack_a20,0)" identifier (argument_list "(pvStack_a20,0)" ( identifier , number_literal )))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(0,auStack_a18,10)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,auStack_a18,10)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,p_Stack_a34,pa_Stack_a28)" ( number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }" else (compound_statement "{\n        png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);\n        (**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);\n        auStack_a18[8] = SUB41(p_Stack_a24,0);\n        auStack_a18[9] = SUB41(pvStack_a20,0);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);\n      }" { (expression_statement "png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34);" (call_expression "png_write_chunk_header(ppVar12,0x7043414c,(png_uint_32)piVar34)" identifier (argument_list "(ppVar12,0x7043414c,(png_uint_32)piVar34)" ( identifier , number_literal , (cast_expression "(png_uint_32)piVar34" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,pa_Stack_a1c,pvStack_a2c)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(ppVar12,pa_Stack_a1c,pvStack_a2c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988);" (call_expression "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18,pa_Stack_988)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7c18))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7c18)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7c18)" * (cast_expression "(code **)(p_Stack_a40 + -0x7c18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7c18)" ( (binary_expression "p_Stack_a40 + -0x7c18" identifier + number_literal) ))))) )) (argument_list "(auStack_a18,pa_Stack_988)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984);" (call_expression "(**(code **)(p_Stack_a40 + -0x7c18))(auStack_a18 + 4,p_Stack_984)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7c18))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7c18)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7c18)" * (cast_expression "(code **)(p_Stack_a40 + -0x7c18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7c18)" ( (binary_expression "p_Stack_a40 + -0x7c18" identifier + number_literal) ))))) )) (argument_list "(auStack_a18 + 4,p_Stack_984)" ( (binary_expression "auStack_a18 + 4" identifier + number_literal) , identifier ))) ;) (expression_statement "auStack_a18[8] = SUB41(p_Stack_a24,0);" (assignment_expression "auStack_a18[8] = SUB41(p_Stack_a24,0)" (subscript_expression "auStack_a18[8]" identifier [ number_literal ]) = (call_expression "SUB41(p_Stack_a24,0)" identifier (argument_list "(p_Stack_a24,0)" ( identifier , number_literal )))) ;) (expression_statement "auStack_a18[9] = SUB41(pvStack_a20,0);" (assignment_expression "auStack_a18[9] = SUB41(pvStack_a20,0)" (subscript_expression "auStack_a18[9]" identifier [ number_literal ]) = (call_expression "SUB41(pvStack_a20,0)" identifier (argument_list "(pvStack_a20,0)" ( identifier , number_literal )))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,auStack_a18,10)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(ppVar12,auStack_a18,10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,p_Stack_a34,pa_Stack_a28)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(ppVar12,p_Stack_a34,pa_Stack_a28)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "new_key_00 = (compression_state *)0x0;" (assignment_expression "new_key_00 = (compression_state *)0x0" identifier = (cast_expression "(compression_state *)0x0" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar21 = pcVar4;" (assignment_expression "pcVar21 = pcVar4" identifier = identifier) ;) (expression_statement "puVar40 = (undefined4 *)auStack_978._4_4_;" (assignment_expression "puVar40 = (undefined4 *)auStack_978._4_4_" identifier = (cast_expression "(undefined4 *)auStack_978._4_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_978._4_4_" identifier . field_identifier))) ;) (do_statement "do {\n        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);\n        pa_Var18 = (jmp_buf *)pcVar21->input;\n        uVar13 = *puVar40;\n        pcVar21 = (compression_state *)&pcVar21->input_len;\n        puVar40 = puVar40 + 1;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);\n        ppVar25 = ppStack_97c;\n        auStack_978._4_4_ = puVar40;\n      } while ((int)new_key_00 < (int)ppStack_97c);" do (compound_statement "{\n        new_key_00 = (compression_state *)((int)&new_key_00->input + 1);\n        pa_Var18 = (jmp_buf *)pcVar21->input;\n        uVar13 = *puVar40;\n        pcVar21 = (compression_state *)&pcVar21->input_len;\n        puVar40 = puVar40 + 1;\n        (**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);\n        ppVar25 = ppStack_97c;\n        auStack_978._4_4_ = puVar40;\n      }" { (expression_statement "new_key_00 = (compression_state *)((int)&new_key_00->input + 1);" (assignment_expression "new_key_00 = (compression_state *)((int)&new_key_00->input + 1)" identifier = (cast_expression "(compression_state *)((int)&new_key_00->input + 1)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&new_key_00->input + 1)" ( (binary_expression "(int)&new_key_00->input + 1" (cast_expression "(int)&new_key_00->input" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&new_key_00->input" & (field_expression "new_key_00->input" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pa_Var18 = (jmp_buf *)pcVar21->input;" (assignment_expression "pa_Var18 = (jmp_buf *)pcVar21->input" identifier = (cast_expression "(jmp_buf *)pcVar21->input" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pcVar21->input" identifier -> field_identifier))) ;) (expression_statement "uVar13 = *puVar40;" (assignment_expression "uVar13 = *puVar40" identifier = (pointer_expression "*puVar40" * identifier)) ;) (expression_statement "pcVar21 = (compression_state *)&pcVar21->input_len;" (assignment_expression "pcVar21 = (compression_state *)&pcVar21->input_len" identifier = (cast_expression "(compression_state *)&pcVar21->input_len" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pcVar21->input_len" & (field_expression "pcVar21->input_len" identifier -> field_identifier)))) ;) (expression_statement "puVar40 = puVar40 + 1;" (assignment_expression "puVar40 = puVar40 + 1" identifier = (binary_expression "puVar40 + 1" identifier + number_literal)) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13);" (call_expression "(**(code **)(p_Stack_a40 + -0x7af4))(ppVar12,uVar13)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7af4))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7af4)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7af4)" * (cast_expression "(code **)(p_Stack_a40 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7af4)" ( (binary_expression "p_Stack_a40 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(ppVar12,uVar13)" ( identifier , identifier ))) ;) (expression_statement "ppVar25 = ppStack_97c;" (assignment_expression "ppVar25 = ppStack_97c" identifier = identifier) ;) (expression_statement "auStack_978._4_4_ = puVar40;" (assignment_expression "auStack_978._4_4_ = puVar40" (field_expression "auStack_978._4_4_" identifier . field_identifier) = identifier) ;) }) while (parenthesized_expression "((int)new_key_00 < (int)ppStack_97c)" ( (binary_expression "(int)new_key_00 < (int)ppStack_97c" (cast_expression "(int)new_key_00" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)ppStack_97c" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) (expression_statement "pcVar11 = pcVar4;" (assignment_expression "pcVar11 = pcVar4" identifier = identifier) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7ccc))(ppVar12);" (call_expression "(**(code **)(p_Stack_a40 + -0x7ccc))(ppVar12)" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7ccc))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7ccc)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7ccc)" * (cast_expression "(code **)(p_Stack_a40 + -0x7ccc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7ccc)" ( (binary_expression "p_Stack_a40 + -0x7ccc" identifier + number_literal) ))))) )) (argument_list "(ppVar12)" ( identifier ))) ;) (expression_statement "(**(code **)(p_Stack_a40 + -0x7be8))();" (call_expression "(**(code **)(p_Stack_a40 + -0x7be8))()" (parenthesized_expression "(**(code **)(p_Stack_a40 + -0x7be8))" ( (pointer_expression "**(code **)(p_Stack_a40 + -0x7be8)" * (pointer_expression "*(code **)(p_Stack_a40 + -0x7be8)" * (cast_expression "(code **)(p_Stack_a40 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Stack_a40 + -0x7be8)" ( (binary_expression "p_Stack_a40 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppStack_a74 = ppVar25;" (assignment_expression "ppStack_a74 = ppVar25" identifier = identifier) ;) (expression_statement "p_Var39 = p_Stack_a40;" (assignment_expression "p_Var39 = p_Stack_a40" identifier = identifier) ;) (expression_statement "puVar40 = (undefined4 *)auStack_978._4_4_;" (assignment_expression "puVar40 = (undefined4 *)auStack_978._4_4_" identifier = (cast_expression "(undefined4 *)auStack_978._4_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_978._4_4_" identifier . field_identifier))) ;) (if_statement "if (auStack_a18._92_4_ == *(uInt *)p_Stack_a30) {\n      return;\n    }" if (parenthesized_expression "(auStack_a18._92_4_ == *(uInt *)p_Stack_a30)" ( (binary_expression "auStack_a18._92_4_ == *(uInt *)p_Stack_a30" (field_expression "auStack_a18._92_4_" identifier . field_identifier) == (pointer_expression "*(uInt *)p_Stack_a30" * (cast_expression "(uInt *)p_Stack_a30" ( (type_descriptor "uInt *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else {\nLAB_0003bebc:\n    pcVar11 = (compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c);\n    (**(code **)(p_Var39 + -0x7be4))();\n    ppStack_a74 = ppStack_97c;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n  }" else (compound_statement "{\nLAB_0003bebc:\n    pcVar11 = (compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c);\n    (**(code **)(p_Var39 + -0x7be4))();\n    ppStack_a74 = ppStack_97c;\n    puVar40 = (undefined4 *)auStack_978._4_4_;\n  }" { (labeled_statement "LAB_0003bebc:\n    pcVar11 = (compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c);" statement_identifier : (expression_statement "pcVar11 = (compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c);" (assignment_expression "pcVar11 = (compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c)" identifier = (cast_expression "(compression_state *)(*(int *)(p_Var39 + -0x7fd4) + 0x269c)" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(p_Var39 + -0x7fd4) + 0x269c)" ( (binary_expression "*(int *)(p_Var39 + -0x7fd4) + 0x269c" (pointer_expression "*(int *)(p_Var39 + -0x7fd4)" * (cast_expression "(int *)(p_Var39 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(p_Var39 + -0x7fd4)" ( (binary_expression "p_Var39 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;)) (expression_statement "(**(code **)(p_Var39 + -0x7be4))();" (call_expression "(**(code **)(p_Var39 + -0x7be4))()" (parenthesized_expression "(**(code **)(p_Var39 + -0x7be4))" ( (pointer_expression "**(code **)(p_Var39 + -0x7be4)" * (pointer_expression "*(code **)(p_Var39 + -0x7be4)" * (cast_expression "(code **)(p_Var39 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Var39 + -0x7be4)" ( (binary_expression "p_Var39 + -0x7be4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppStack_a74 = ppStack_97c;" (assignment_expression "ppStack_a74 = ppStack_97c" identifier = identifier) ;) (expression_statement "puVar40 = (undefined4 *)auStack_978._4_4_;" (assignment_expression "puVar40 = (undefined4 *)auStack_978._4_4_" identifier = (cast_expression "(undefined4 *)auStack_978._4_4_" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "auStack_978._4_4_" identifier . field_identifier))) ;) }))) (expression_statement "pcVar36 = *(code **)(p_Var39 + -0x7b6c);" (assignment_expression "pcVar36 = *(code **)(p_Var39 + -0x7b6c)" identifier = (pointer_expression "*(code **)(p_Var39 + -0x7b6c)" * (cast_expression "(code **)(p_Var39 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(p_Var39 + -0x7b6c)" ( (binary_expression "p_Var39 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = png_write_sCAL_s;" (assignment_expression "pcVar37 = png_write_sCAL_s" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "auStack_b00._56_4_ = pcVar36 + 0x1f118;" (assignment_expression "auStack_b00._56_4_ = pcVar36 + 0x1f118" (field_expression "auStack_b00._56_4_" identifier . field_identifier) = (binary_expression "pcVar36 + 0x1f118" identifier + number_literal)) ;) (expression_statement "puVar28 = *(ulong **)(pcVar36 + 0x175e4);" (assignment_expression "puVar28 = *(ulong **)(pcVar36 + 0x175e4)" identifier = (pointer_expression "*(ulong **)(pcVar36 + 0x175e4)" * (cast_expression "(ulong **)(pcVar36 + 0x175e4)" ( (type_descriptor "ulong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x175e4)" ( (binary_expression "pcVar36 + 0x175e4" identifier + number_literal) ))))) ;) (expression_statement "uStack_a7c = *puVar28;" (assignment_expression "uStack_a7c = *puVar28" identifier = (pointer_expression "*puVar28" * identifier)) ;) (expression_statement "pa_Var19 = pa_Var18;" (assignment_expression "pa_Var19 = pa_Var18" identifier = identifier) ;) (expression_statement "p_Var39 = p_Var22;" (assignment_expression "p_Var39 = p_Var22" identifier = identifier) ;) (expression_statement "ppStack_a6c = (png_alloc_size_t *)pcVar21;" (assignment_expression "ppStack_a6c = (png_alloc_size_t *)pcVar21" identifier = (cast_expression "(png_alloc_size_t *)pcVar21" ( (type_descriptor "png_alloc_size_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppStack_a68 = ppVar31;" (assignment_expression "ppStack_a68 = ppVar31" identifier = identifier) ;) (expression_statement "pcStack_a64 = pcVar4;" (assignment_expression "pcStack_a64 = pcVar4" identifier = identifier) ;) (expression_statement "pcStack_a60 = (compression_state *)key;" (assignment_expression "pcStack_a60 = (compression_state *)key" identifier = (cast_expression "(compression_state *)key" ( (type_descriptor "compression_state *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_a5c = new_key_00;" (assignment_expression "pcStack_a5c = new_key_00" identifier = identifier) ;) (expression_statement "piStack_a58 = piVar34;" (assignment_expression "piStack_a58 = piVar34" identifier = identifier) ;) (expression_statement "pcStack_a54 = pcVar37;" (assignment_expression "pcStack_a54 = pcVar37" identifier = identifier) ;) (expression_statement "data = (jmp_buf *)(**(code **)(pcVar36 + 0x174fc))(pa_Var18);" (assignment_expression "data = (jmp_buf *)(**(code **)(pcVar36 + 0x174fc))(pa_Var18)" identifier = (cast_expression "(jmp_buf *)(**(code **)(pcVar36 + 0x174fc))(pa_Var18)" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar36 + 0x174fc))(pa_Var18)" (parenthesized_expression "(**(code **)(pcVar36 + 0x174fc))" ( (pointer_expression "**(code **)(pcVar36 + 0x174fc)" * (pointer_expression "*(code **)(pcVar36 + 0x174fc)" * (cast_expression "(code **)(pcVar36 + 0x174fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x174fc)" ( (binary_expression "pcVar36 + 0x174fc" identifier + number_literal) ))))) )) (argument_list "(pa_Var18)" ( identifier ))))) ;) (expression_statement "p_Var6 = (png_error_ptr)(**(code **)(auStack_b00._56_4_ + -0x7c1c))(p_Var22);" (assignment_expression "p_Var6 = (png_error_ptr)(**(code **)(auStack_b00._56_4_ + -0x7c1c))(p_Var22)" identifier = (call_expression "(png_error_ptr)(**(code **)(auStack_b00._56_4_ + -0x7c1c))(p_Var22)" (call_expression "(png_error_ptr)(**(code **)(auStack_b00._56_4_ + -0x7c1c))" (parenthesized_expression "(png_error_ptr)" ( identifier )) (argument_list "(**(code **)(auStack_b00._56_4_ + -0x7c1c))" ( (pointer_expression "**(code **)(auStack_b00._56_4_ + -0x7c1c)" * (pointer_expression "*(code **)(auStack_b00._56_4_ + -0x7c1c)" * (cast_expression "(code **)(auStack_b00._56_4_ + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_b00._56_4_ + -0x7c1c)" ( (binary_expression "auStack_b00._56_4_ + -0x7c1c" (field_expression "auStack_b00._56_4_" identifier . field_identifier) + number_literal) ))))) ))) (argument_list "(p_Var22)" ( identifier )))) ;) (expression_statement "length = p_Var6 + (int)((int)&(*data)[0].__jmpbuf[0].__pc + 2);" (assignment_expression "length = p_Var6 + (int)((int)&(*data)[0].__jmpbuf[0].__pc + 2)" identifier = (binary_expression "p_Var6 + (int)((int)&(*data)[0].__jmpbuf[0].__pc + 2)" identifier + (cast_expression "(int)((int)&(*data)[0].__jmpbuf[0].__pc + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&(*data)[0].__jmpbuf[0].__pc + 2)" ( (binary_expression "(int)&(*data)[0].__jmpbuf[0].__pc + 2" (cast_expression "(int)&(*data)[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(*data)[0].__jmpbuf[0].__pc" & (field_expression "(*data)[0].__jmpbuf[0].__pc" (subscript_expression "(*data)[0].__jmpbuf[0]" (field_expression "(*data)[0].__jmpbuf" (subscript_expression "(*data)[0]" (parenthesized_expression "(*data)" ( (pointer_expression "*data" * identifier) )) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "ppVar31 = ppVar12;" (assignment_expression "ppVar31 = ppVar12" identifier = identifier) ;) (if_statement "if (&DAT_00000040 < length) {\n    iVar10 = *(int *)(auStack_b00._56_4_ + -0x7fd4) + 0x26e0;\n    (**(code **)(auStack_b00._56_4_ + -0x7bb0))(ppVar12,iVar10);\n  }\n  else {\n    auStack_abc[0] = (png_byte)pcVar11;\n    (**(code **)(auStack_b00._56_4_ + -0x7bf0))\n              (auStack_abc + 1,pa_Var18,(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f);\n    p_Var1 = *data;\n    data = (jmp_buf *)auStack_abc;\n    (**(code **)(auStack_b00._56_4_ + -0x7b2c))\n              ((code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,p_Var6);\n    iVar10 = 0x7343414c;\n    pa_Var19 = data;\n    p_Var39 = length;\n    png_write_complete_chunk(ppVar12,0x7343414c,(png_const_bytep)data,(size_t)length);\n  }" if (parenthesized_expression "(&DAT_00000040 < length)" ( (binary_expression "&DAT_00000040 < length" (pointer_expression "&DAT_00000040" & identifier) < identifier) )) (compound_statement "{\n    iVar10 = *(int *)(auStack_b00._56_4_ + -0x7fd4) + 0x26e0;\n    (**(code **)(auStack_b00._56_4_ + -0x7bb0))(ppVar12,iVar10);\n  }" { (expression_statement "iVar10 = *(int *)(auStack_b00._56_4_ + -0x7fd4) + 0x26e0;" (assignment_expression "iVar10 = *(int *)(auStack_b00._56_4_ + -0x7fd4) + 0x26e0" identifier = (binary_expression "*(int *)(auStack_b00._56_4_ + -0x7fd4) + 0x26e0" (pointer_expression "*(int *)(auStack_b00._56_4_ + -0x7fd4)" * (cast_expression "(int *)(auStack_b00._56_4_ + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(auStack_b00._56_4_ + -0x7fd4)" ( (binary_expression "auStack_b00._56_4_ + -0x7fd4" (field_expression "auStack_b00._56_4_" identifier . field_identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(auStack_b00._56_4_ + -0x7bb0))(ppVar12,iVar10);" (call_expression "(**(code **)(auStack_b00._56_4_ + -0x7bb0))(ppVar12,iVar10)" (parenthesized_expression "(**(code **)(auStack_b00._56_4_ + -0x7bb0))" ( (pointer_expression "**(code **)(auStack_b00._56_4_ + -0x7bb0)" * (pointer_expression "*(code **)(auStack_b00._56_4_ + -0x7bb0)" * (cast_expression "(code **)(auStack_b00._56_4_ + -0x7bb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_b00._56_4_ + -0x7bb0)" ( (binary_expression "auStack_b00._56_4_ + -0x7bb0" (field_expression "auStack_b00._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(ppVar12,iVar10)" ( identifier , identifier ))) ;) }) (else_clause "else {\n    auStack_abc[0] = (png_byte)pcVar11;\n    (**(code **)(auStack_b00._56_4_ + -0x7bf0))\n              (auStack_abc + 1,pa_Var18,(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f);\n    p_Var1 = *data;\n    data = (jmp_buf *)auStack_abc;\n    (**(code **)(auStack_b00._56_4_ + -0x7b2c))\n              ((code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,p_Var6);\n    iVar10 = 0x7343414c;\n    pa_Var19 = data;\n    p_Var39 = length;\n    png_write_complete_chunk(ppVar12,0x7343414c,(png_const_bytep)data,(size_t)length);\n  }" else (compound_statement "{\n    auStack_abc[0] = (png_byte)pcVar11;\n    (**(code **)(auStack_b00._56_4_ + -0x7bf0))\n              (auStack_abc + 1,pa_Var18,(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f);\n    p_Var1 = *data;\n    data = (jmp_buf *)auStack_abc;\n    (**(code **)(auStack_b00._56_4_ + -0x7b2c))\n              ((code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,p_Var6);\n    iVar10 = 0x7343414c;\n    pa_Var19 = data;\n    p_Var39 = length;\n    png_write_complete_chunk(ppVar12,0x7343414c,(png_const_bytep)data,(size_t)length);\n  }" { (expression_statement "auStack_abc[0] = (png_byte)pcVar11;" (assignment_expression "auStack_abc[0] = (png_byte)pcVar11" (subscript_expression "auStack_abc[0]" identifier [ number_literal ]) = (cast_expression "(png_byte)pcVar11" ( (type_descriptor "png_byte" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(auStack_b00._56_4_ + -0x7bf0))\n              (auStack_abc + 1,pa_Var18,(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f);" (call_expression "(**(code **)(auStack_b00._56_4_ + -0x7bf0))\n              (auStack_abc + 1,pa_Var18,(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f)" (parenthesized_expression "(**(code **)(auStack_b00._56_4_ + -0x7bf0))" ( (pointer_expression "**(code **)(auStack_b00._56_4_ + -0x7bf0)" * (pointer_expression "*(code **)(auStack_b00._56_4_ + -0x7bf0)" * (cast_expression "(code **)(auStack_b00._56_4_ + -0x7bf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_b00._56_4_ + -0x7bf0)" ( (binary_expression "auStack_b00._56_4_ + -0x7bf0" (field_expression "auStack_b00._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(auStack_abc + 1,pa_Var18,(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f)" ( (binary_expression "auStack_abc + 1" identifier + number_literal) , identifier , (cast_expression "(code *)((int)&(*data)[0].__jmpbuf[0].__pc + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(*data)[0].__jmpbuf[0].__pc + 1)" ( (binary_expression "(int)&(*data)[0].__jmpbuf[0].__pc + 1" (cast_expression "(int)&(*data)[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(*data)[0].__jmpbuf[0].__pc" & (field_expression "(*data)[0].__jmpbuf[0].__pc" (subscript_expression "(*data)[0].__jmpbuf[0]" (field_expression "(*data)[0].__jmpbuf" (subscript_expression "(*data)[0]" (parenthesized_expression "(*data)" ( (pointer_expression "*data" * identifier) )) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) ))) , number_literal ))) ;) (expression_statement "p_Var1 = *data;" (assignment_expression "p_Var1 = *data" identifier = (pointer_expression "*data" * identifier)) ;) (expression_statement "data = (jmp_buf *)auStack_abc;" (assignment_expression "data = (jmp_buf *)auStack_abc" identifier = (cast_expression "(jmp_buf *)auStack_abc" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(**(code **)(auStack_b00._56_4_ + -0x7b2c))\n              ((code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,p_Var6);" (call_expression "(**(code **)(auStack_b00._56_4_ + -0x7b2c))\n              ((code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,p_Var6)" (parenthesized_expression "(**(code **)(auStack_b00._56_4_ + -0x7b2c))" ( (pointer_expression "**(code **)(auStack_b00._56_4_ + -0x7b2c)" * (pointer_expression "*(code **)(auStack_b00._56_4_ + -0x7b2c)" * (cast_expression "(code **)(auStack_b00._56_4_ + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_b00._56_4_ + -0x7b2c)" ( (binary_expression "auStack_b00._56_4_ + -0x7b2c" (field_expression "auStack_b00._56_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "((code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,p_Var6)" ( (binary_expression "(code *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data" (cast_expression "(code *)((int)&p_Var1->__jmpbuf[0].__pc + 2)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&p_Var1->__jmpbuf[0].__pc + 2)" ( (binary_expression "(int)&p_Var1->__jmpbuf[0].__pc + 2" (cast_expression "(int)&p_Var1->__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var1->__jmpbuf[0].__pc" & (field_expression "p_Var1->__jmpbuf[0].__pc" (subscript_expression "p_Var1->__jmpbuf[0]" (field_expression "p_Var1->__jmpbuf" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)*data" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*data" * identifier))) , identifier , identifier ))) ;) (expression_statement "iVar10 = 0x7343414c;" (assignment_expression "iVar10 = 0x7343414c" identifier = number_literal) ;) (expression_statement "pa_Var19 = data;" (assignment_expression "pa_Var19 = data" identifier = identifier) ;) (expression_statement "p_Var39 = length;" (assignment_expression "p_Var39 = length" identifier = identifier) ;) (expression_statement "png_write_complete_chunk(ppVar12,0x7343414c,(png_const_bytep)data,(size_t)length);" (call_expression "png_write_complete_chunk(ppVar12,0x7343414c,(png_const_bytep)data,(size_t)length)" identifier (argument_list "(ppVar12,0x7343414c,(png_const_bytep)data,(size_t)length)" ( identifier , number_literal , (cast_expression "(png_const_bytep)data" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier) , (cast_expression "(size_t)length" ( (type_descriptor "size_t" primitive_type) ) identifier) ))) ;) }))) (if_statement "if (uStack_a7c == *puVar28) {\n    return;\n  }" if (parenthesized_expression "(uStack_a7c == *puVar28)" ( (binary_expression "uStack_a7c == *puVar28" identifier == (pointer_expression "*puVar28" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar36 = *(code **)(auStack_b00._56_4_ + -0x7b6c);" (assignment_expression "pcVar36 = *(code **)(auStack_b00._56_4_ + -0x7b6c)" identifier = (pointer_expression "*(code **)(auStack_b00._56_4_ + -0x7b6c)" * (cast_expression "(code **)(auStack_b00._56_4_ + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_b00._56_4_ + -0x7b6c)" ( (binary_expression "auStack_b00._56_4_ + -0x7b6c" (field_expression "auStack_b00._56_4_" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "pcVar41 = png_write_pHYs;" (assignment_expression "pcVar41 = png_write_pHYs" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "auStack_b3c._52_4_ = pcVar36 + 0x1efc4;" (assignment_expression "auStack_b3c._52_4_ = pcVar36 + 0x1efc4" (field_expression "auStack_b3c._52_4_" identifier . field_identifier) = (binary_expression "pcVar36 + 0x1efc4" identifier + number_literal)) ;) (expression_statement "piVar34 = *(int **)(pcVar36 + 0x17490);" (assignment_expression "piVar34 = *(int **)(pcVar36 + 0x17490)" identifier = (pointer_expression "*(int **)(pcVar36 + 0x17490)" * (cast_expression "(int **)(pcVar36 + 0x17490)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x17490)" ( (binary_expression "pcVar36 + 0x17490" identifier + number_literal) ))))) ;) (expression_statement "auStack_b00._12_4_ = *piVar34;" (assignment_expression "auStack_b00._12_4_ = *piVar34" (field_expression "auStack_b00._12_4_" identifier . field_identifier) = (pointer_expression "*piVar34" * identifier)) ;) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x173b4);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x173b4)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x173b4)" * (cast_expression "(code **)(pcVar36 + 0x173b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x173b4)" ( (binary_expression "pcVar36 + 0x173b4" identifier + number_literal) ))))) ;) (expression_statement "auStack_b00._16_4_ = length;" (assignment_expression "auStack_b00._16_4_ = length" (field_expression "auStack_b00._16_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_b00._20_4_ = data;" (assignment_expression "auStack_b00._20_4_ = data" (field_expression "auStack_b00._20_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_b00._24_4_ = puVar28;" (assignment_expression "auStack_b00._24_4_ = puVar28" (field_expression "auStack_b00._24_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_b00._28_4_ = p_Var22;" (assignment_expression "auStack_b00._28_4_ = p_Var22" (field_expression "auStack_b00._28_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_b00._32_4_ = p_Var6;" (assignment_expression "auStack_b00._32_4_ = p_Var6" (field_expression "auStack_b00._32_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_b00._36_4_ = pcVar41;" (assignment_expression "auStack_b00._36_4_ = pcVar41" (field_expression "auStack_b00._36_4_" identifier . field_identifier) = identifier) ;) (if_statement "if (1 < (int)p_Var39) {\n    (**(code **)(pcVar36 + 0x17414))();\n    pcVar37 = *(code **)(auStack_b3c._52_4_ + -0x7c10);\n  }" if (parenthesized_expression "(1 < (int)p_Var39)" ( (binary_expression "1 < (int)p_Var39" number_literal < (cast_expression "(int)p_Var39" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    (**(code **)(pcVar36 + 0x17414))();\n    pcVar37 = *(code **)(auStack_b3c._52_4_ + -0x7c10);\n  }" { (expression_statement "(**(code **)(pcVar36 + 0x17414))();" (call_expression "(**(code **)(pcVar36 + 0x17414))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x17414))" ( (pointer_expression "**(code **)(pcVar36 + 0x17414)" * (pointer_expression "*(code **)(pcVar36 + 0x17414)" * (cast_expression "(code **)(pcVar36 + 0x17414)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x17414)" ( (binary_expression "pcVar36 + 0x17414" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar37 = *(code **)(auStack_b3c._52_4_ + -0x7c10);" (assignment_expression "pcVar37 = *(code **)(auStack_b3c._52_4_ + -0x7c10)" identifier = (pointer_expression "*(code **)(auStack_b3c._52_4_ + -0x7c10)" * (cast_expression "(code **)(auStack_b3c._52_4_ + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_b3c._52_4_ + -0x7c10)" ( (binary_expression "auStack_b3c._52_4_ + -0x7c10" (field_expression "auStack_b3c._52_4_" identifier . field_identifier) + number_literal) ))))) ;) })) (expression_statement "(*pcVar37)((png_structrp)auStack_b00,iVar10);" (call_expression "(*pcVar37)((png_structrp)auStack_b00,iVar10)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "((png_structrp)auStack_b00,iVar10)" ( (cast_expression "(png_structrp)auStack_b00" ( (type_descriptor "png_structrp" type_identifier) ) identifier) , identifier ))) ;) (expression_statement "(**(code **)(auStack_b3c._52_4_ + -0x7c10))(auStack_b00 + 4,pa_Var19);" (call_expression "(**(code **)(auStack_b3c._52_4_ + -0x7c10))(auStack_b00 + 4,pa_Var19)" (parenthesized_expression "(**(code **)(auStack_b3c._52_4_ + -0x7c10))" ( (pointer_expression "**(code **)(auStack_b3c._52_4_ + -0x7c10)" * (pointer_expression "*(code **)(auStack_b3c._52_4_ + -0x7c10)" * (cast_expression "(code **)(auStack_b3c._52_4_ + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_b3c._52_4_ + -0x7c10)" ( (binary_expression "auStack_b3c._52_4_ + -0x7c10" (field_expression "auStack_b3c._52_4_" identifier . field_identifier) + number_literal) ))))) )) (argument_list "(auStack_b00 + 4,pa_Var19)" ( (binary_expression "auStack_b00 + 4" identifier + number_literal) , identifier ))) ;) (expression_statement "ppVar16 = (png_structrp)&DAT_70485973;" (assignment_expression "ppVar16 = (png_structrp)&DAT_70485973" identifier = (binary_expression "(png_structrp)&DAT_70485973" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier)) ;) (expression_statement "auStack_b00[8] = SUB41(p_Var39,0);" (assignment_expression "auStack_b00[8] = SUB41(p_Var39,0)" (subscript_expression "auStack_b00[8]" identifier [ number_literal ]) = (call_expression "SUB41(p_Var39,0)" identifier (argument_list "(p_Var39,0)" ( identifier , number_literal )))) ;) (expression_statement "ppVar25 = ppVar31;" (assignment_expression "ppVar25 = ppVar31" identifier = identifier) ;) (expression_statement "ppVar20 = (png_structrp)auStack_b00;" (assignment_expression "ppVar20 = (png_structrp)auStack_b00" identifier = (cast_expression "(png_structrp)auStack_b00" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "png_write_complete_chunk(ppVar31,0x70485973,(png_const_bytep)auStack_b00,9);" (call_expression "png_write_complete_chunk(ppVar31,0x70485973,(png_const_bytep)auStack_b00,9)" identifier (argument_list "(ppVar31,0x70485973,(png_const_bytep)auStack_b00,9)" ( identifier , number_literal , (cast_expression "(png_const_bytep)auStack_b00" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier) , number_literal ))) ;) (if_statement "if (auStack_b00._12_4_ == *piVar34) {\n    return;\n  }" if (parenthesized_expression "(auStack_b00._12_4_ == *piVar34)" ( (binary_expression "auStack_b00._12_4_ == *piVar34" (field_expression "auStack_b00._12_4_" identifier . field_identifier) == (pointer_expression "*piVar34" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar36 = *(code **)(auStack_b3c._52_4_ + -0x7b6c);" (assignment_expression "pcVar36 = *(code **)(auStack_b3c._52_4_ + -0x7b6c)" identifier = (pointer_expression "*(code **)(auStack_b3c._52_4_ + -0x7b6c)" * (cast_expression "(code **)(auStack_b3c._52_4_ + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_b3c._52_4_ + -0x7b6c)" ( (binary_expression "auStack_b3c._52_4_ + -0x7b6c" (field_expression "auStack_b3c._52_4_" identifier . field_identifier) + number_literal) ))))) ;) (expression_statement "pcVar37 = png_write_tIME;" (assignment_expression "pcVar37 = png_write_tIME" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_b48 = pcVar36 + 0x1eed0;" (assignment_expression "pcStack_b48 = pcVar36 + 0x1eed0" identifier = (binary_expression "pcVar36 + 0x1eed0" identifier + number_literal)) ;) (expression_statement "puVar28 = *(ulong **)(pcVar36 + 0x1739c);" (assignment_expression "puVar28 = *(ulong **)(pcVar36 + 0x1739c)" identifier = (pointer_expression "*(ulong **)(pcVar36 + 0x1739c)" * (cast_expression "(ulong **)(pcVar36 + 0x1739c)" ( (type_descriptor "ulong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x1739c)" ( (binary_expression "pcVar36 + 0x1739c" identifier + number_literal) ))))) ;) (expression_statement "auStack_b3c._8_4_ = *puVar28;" (assignment_expression "auStack_b3c._8_4_ = *puVar28" (field_expression "auStack_b3c._8_4_" identifier . field_identifier) = (pointer_expression "*puVar28" * identifier)) ;) (expression_statement "ppVar24 = (png_structrp)auStack_b00;" (assignment_expression "ppVar24 = (png_structrp)auStack_b00" identifier = (cast_expression "(png_structrp)auStack_b00" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "ppVar14 = ppVar25;" (assignment_expression "ppVar14 = ppVar25" identifier = identifier) ;) (expression_statement "auStack_b3c._16_4_ = (png_structrp)auStack_b00;" (assignment_expression "auStack_b3c._16_4_ = (png_structrp)auStack_b00" (field_expression "auStack_b3c._16_4_" identifier . field_identifier) = (cast_expression "(png_structrp)auStack_b00" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "auStack_b3c._20_4_ = piVar34;" (assignment_expression "auStack_b3c._20_4_ = piVar34" (field_expression "auStack_b3c._20_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_b3c._24_4_ = p_Var39;" (assignment_expression "auStack_b3c._24_4_ = p_Var39" (field_expression "auStack_b3c._24_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_b3c._28_4_ = ppVar31;" (assignment_expression "auStack_b3c._28_4_ = ppVar31" (field_expression "auStack_b3c._28_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_b3c._32_4_ = pcVar37;" (assignment_expression "auStack_b3c._32_4_ = pcVar37" (field_expression "auStack_b3c._32_4_" identifier . field_identifier) = identifier) ;) (if_statement "if ((((*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&\n       (ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)) &&\n      (*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18)) &&\n     (*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2) < 0x3d)) {\n    ppVar31 = (png_structrp)auStack_b3c;\n    (**(code **)(pcVar36 + 0x17200))\n              (ppVar31,*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc);\n    auStack_b3c[6] = *(undefined1 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2);\n    pVar2 = 0x74494d45;\n    auStack_b3c._2_2_ = *(undefined2 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\n    auStack_b3c._4_2_ = *(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp;\n    ppVar20 = ppVar31;\n    png_write_complete_chunk(ppVar25,0x74494d45,(png_const_bytep)ppVar31,7);\n  }\n  else {\n    pVar2 = *(int *)(pcVar36 + 0x16efc) + 0x272c;\n    (**(code **)(pcVar36 + 0x17320))();\n    ppVar16 = ppVar24;\n  }" if (parenthesized_expression "((((*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&\n       (ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)) &&\n      (*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18)) &&\n     (*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2) < 0x3d))" ( (binary_expression "(((*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&\n       (ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)) &&\n      (*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18)) &&\n     (*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2) < 0x3d)" (parenthesized_expression "(((*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&\n       (ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)) &&\n      (*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18))" ( (binary_expression "((*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&\n       (ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)) &&\n      (*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18)" (parenthesized_expression "((*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&\n       (ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f))" ( (binary_expression "(*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&\n       (ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)" (parenthesized_expression "(*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc)" ( (binary_expression "*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc" (binary_expression "*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1" (pointer_expression "*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" * (cast_expression "(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" ( (binary_expression "(int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2" (cast_expression "(int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar16->jmp_buf_local[0]" (field_expression "ppVar16->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) - number_literal) < number_literal) )) && (parenthesized_expression "(ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)" ( (comma_expression "ppVar24 = ppVar16,\n       *(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f" (assignment_expression "ppVar24 = ppVar16" identifier = identifier) , (binary_expression "*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f" (binary_expression "*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1" (pointer_expression "*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3)" * (cast_expression "(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3)" ( (binary_expression "(int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3" (cast_expression "(int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar16->jmp_buf_local[0]" (field_expression "ppVar16->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) - number_literal) < number_literal)) ))) )) && (parenthesized_expression "(*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18)" ( (binary_expression "*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18" (pointer_expression "*(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" * (cast_expression "(byte *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" & (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" (subscript_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar16->jmp_buf_local[0]" (field_expression "ppVar16->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)))) < number_literal) ))) )) && (parenthesized_expression "(*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2) < 0x3d)" ( (binary_expression "*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2) < 0x3d" (pointer_expression "*(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2)" * (cast_expression "(byte *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2)" ( (binary_expression "(int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2" (cast_expression "(int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" & (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" (subscript_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar16->jmp_buf_local[0]" (field_expression "ppVar16->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n    ppVar31 = (png_structrp)auStack_b3c;\n    (**(code **)(pcVar36 + 0x17200))\n              (ppVar31,*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc);\n    auStack_b3c[6] = *(undefined1 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2);\n    pVar2 = 0x74494d45;\n    auStack_b3c._2_2_ = *(undefined2 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\n    auStack_b3c._4_2_ = *(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp;\n    ppVar20 = ppVar31;\n    png_write_complete_chunk(ppVar25,0x74494d45,(png_const_bytep)ppVar31,7);\n  }" { (expression_statement "ppVar31 = (png_structrp)auStack_b3c;" (assignment_expression "ppVar31 = (png_structrp)auStack_b3c" identifier = (cast_expression "(png_structrp)auStack_b3c" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(pcVar36 + 0x17200))\n              (ppVar31,*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc);" (call_expression "(**(code **)(pcVar36 + 0x17200))\n              (ppVar31,*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc)" (parenthesized_expression "(**(code **)(pcVar36 + 0x17200))" ( (pointer_expression "**(code **)(pcVar36 + 0x17200)" * (pointer_expression "*(code **)(pcVar36 + 0x17200)" * (cast_expression "(code **)(pcVar36 + 0x17200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x17200)" ( (binary_expression "pcVar36 + 0x17200" identifier + number_literal) ))))) )) (argument_list "(ppVar31,*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc)" ( identifier , (pointer_expression "*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" * (cast_expression "(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar16->jmp_buf_local[0]" (field_expression "ppVar16->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)))) ))) ;) (expression_statement "auStack_b3c[6] = *(undefined1 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2);" (assignment_expression "auStack_b3c[6] = *(undefined1 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2)" (subscript_expression "auStack_b3c[6]" identifier [ number_literal ]) = (pointer_expression "*(undefined1 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2)" * (cast_expression "(undefined1 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2)" ( (binary_expression "(int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2" (cast_expression "(int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" & (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" (subscript_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar16->jmp_buf_local[0]" (field_expression "ppVar16->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "pVar2 = 0x74494d45;" (assignment_expression "pVar2 = 0x74494d45" identifier = number_literal) ;) (expression_statement "auStack_b3c._2_2_ = *(undefined2 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2);" (assignment_expression "auStack_b3c._2_2_ = *(undefined2 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" (field_expression "auStack_b3c._2_2_" identifier . field_identifier) = (pointer_expression "*(undefined2 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" * (cast_expression "(undefined2 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" ( (binary_expression "(int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2" (cast_expression "(int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar16->jmp_buf_local[0]" (field_expression "ppVar16->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) ))))) ;) (expression_statement "auStack_b3c._4_2_ = *(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp;" (assignment_expression "auStack_b3c._4_2_ = *(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" (field_expression "auStack_b3c._4_2_" identifier . field_identifier) = (pointer_expression "*(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" * (cast_expression "(undefined2 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" & (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp" (subscript_expression "ppVar16->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar16->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar16->jmp_buf_local[0]" (field_expression "ppVar16->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))))) ;) (expression_statement "ppVar20 = ppVar31;" (assignment_expression "ppVar20 = ppVar31" identifier = identifier) ;) (expression_statement "png_write_complete_chunk(ppVar25,0x74494d45,(png_const_bytep)ppVar31,7);" (call_expression "png_write_complete_chunk(ppVar25,0x74494d45,(png_const_bytep)ppVar31,7)" identifier (argument_list "(ppVar25,0x74494d45,(png_const_bytep)ppVar31,7)" ( identifier , number_literal , (cast_expression "(png_const_bytep)ppVar31" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier) , number_literal ))) ;) }) (else_clause "else {\n    pVar2 = *(int *)(pcVar36 + 0x16efc) + 0x272c;\n    (**(code **)(pcVar36 + 0x17320))();\n    ppVar16 = ppVar24;\n  }" else (compound_statement "{\n    pVar2 = *(int *)(pcVar36 + 0x16efc) + 0x272c;\n    (**(code **)(pcVar36 + 0x17320))();\n    ppVar16 = ppVar24;\n  }" { (expression_statement "pVar2 = *(int *)(pcVar36 + 0x16efc) + 0x272c;" (assignment_expression "pVar2 = *(int *)(pcVar36 + 0x16efc) + 0x272c" identifier = (binary_expression "*(int *)(pcVar36 + 0x16efc) + 0x272c" (pointer_expression "*(int *)(pcVar36 + 0x16efc)" * (cast_expression "(int *)(pcVar36 + 0x16efc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x16efc)" ( (binary_expression "pcVar36 + 0x16efc" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "(**(code **)(pcVar36 + 0x17320))();" (call_expression "(**(code **)(pcVar36 + 0x17320))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x17320))" ( (pointer_expression "**(code **)(pcVar36 + 0x17320)" * (pointer_expression "*(code **)(pcVar36 + 0x17320)" * (cast_expression "(code **)(pcVar36 + 0x17320)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x17320)" ( (binary_expression "pcVar36 + 0x17320" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppVar16 = ppVar24;" (assignment_expression "ppVar16 = ppVar24" identifier = identifier) ;) }))) (if_statement "if (auStack_b3c._8_4_ == *puVar28) {\n    return;\n  }" if (parenthesized_expression "(auStack_b3c._8_4_ == *puVar28)" ( (binary_expression "auStack_b3c._8_4_ == *puVar28" (field_expression "auStack_b3c._8_4_" identifier . field_identifier) == (pointer_expression "*puVar28" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar36 = *(code **)(pcStack_b48 + -0x7b6c);" (assignment_expression "pcVar36 = *(code **)(pcStack_b48 + -0x7b6c)" identifier = (pointer_expression "*(code **)(pcStack_b48 + -0x7b6c)" * (cast_expression "(code **)(pcStack_b48 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b48 + -0x7b6c)" ( (binary_expression "pcStack_b48 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = png_write_acTL;" (assignment_expression "pcVar37 = png_write_acTL" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_b88 = pcVar36 + 0x1edb0;" (assignment_expression "pcStack_b88 = pcVar36 + 0x1edb0" identifier = (binary_expression "pcVar36 + 0x1edb0" identifier + number_literal)) ;) (expression_statement "puVar29 = *(ulong **)(pcVar36 + 0x1727c);" (assignment_expression "puVar29 = *(ulong **)(pcVar36 + 0x1727c)" identifier = (pointer_expression "*(ulong **)(pcVar36 + 0x1727c)" * (cast_expression "(ulong **)(pcVar36 + 0x1727c)" ( (type_descriptor "ulong **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x1727c)" ( (binary_expression "pcVar36 + 0x1727c" identifier + number_literal) ))))) ;) (expression_statement "ppVar14->num_frames_to_write = pVar2;" (assignment_expression "ppVar14->num_frames_to_write = pVar2" (field_expression "ppVar14->num_frames_to_write" identifier -> field_identifier) = identifier) ;) (expression_statement "uStack_b74 = *puVar29;" (assignment_expression "uStack_b74 = *puVar29" identifier = (pointer_expression "*puVar29" * identifier)) ;) (expression_statement "ppStack_b6c = ppVar16;" (assignment_expression "ppStack_b6c = ppVar16" identifier = identifier) ;) (expression_statement "puStack_b68 = puVar28;" (assignment_expression "puStack_b68 = puVar28" identifier = identifier) ;) (expression_statement "ppStack_b64 = ppVar25;" (assignment_expression "ppStack_b64 = ppVar25" identifier = identifier) ;) (expression_statement "ppStack_b60 = ppVar31;" (assignment_expression "ppStack_b60 = ppVar31" identifier = identifier) ;) (expression_statement "pcStack_b5c = pcVar37;" (assignment_expression "pcStack_b5c = pcVar37" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar36 + 0x171a0))(apStack_b7c);" (call_expression "(**(code **)(pcVar36 + 0x171a0))(apStack_b7c)" (parenthesized_expression "(**(code **)(pcVar36 + 0x171a0))" ( (pointer_expression "**(code **)(pcVar36 + 0x171a0)" * (pointer_expression "*(code **)(pcVar36 + 0x171a0)" * (cast_expression "(code **)(pcVar36 + 0x171a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x171a0)" ( (binary_expression "pcVar36 + 0x171a0" identifier + number_literal) ))))) )) (argument_list "(apStack_b7c)" ( identifier ))) ;) (expression_statement "(**(code **)(pcStack_b88 + -0x7c10))(auStack_b78,ppVar20);" (call_expression "(**(code **)(pcStack_b88 + -0x7c10))(auStack_b78,ppVar20)" (parenthesized_expression "(**(code **)(pcStack_b88 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_b88 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_b88 + -0x7c10)" * (cast_expression "(code **)(pcStack_b88 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b88 + -0x7c10)" ( (binary_expression "pcStack_b88 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(auStack_b78,ppVar20)" ( identifier , identifier ))) ;) (expression_statement "pVar23 = 8;" (assignment_expression "pVar23 = 8" identifier = number_literal) ;) (expression_statement "pVar2 = 0x6163544c;" (assignment_expression "pVar2 = 0x6163544c" identifier = number_literal) ;) (expression_statement "ppVar31 = ppVar14;" (assignment_expression "ppVar31 = ppVar14" identifier = identifier) ;) (expression_statement "ppVar5 = apStack_b7c;" (assignment_expression "ppVar5 = apStack_b7c" identifier = identifier) ;) (expression_statement "png_write_complete_chunk(ppVar14,0x6163544c,apStack_b7c,8);" (call_expression "png_write_complete_chunk(ppVar14,0x6163544c,apStack_b7c,8)" identifier (argument_list "(ppVar14,0x6163544c,apStack_b7c,8)" ( identifier , number_literal , identifier , number_literal ))) ;) (if_statement "if (uStack_b74 == *puVar29) {\n    return;\n  }" if (parenthesized_expression "(uStack_b74 == *puVar29)" ( (binary_expression "uStack_b74 == *puVar29" identifier == (pointer_expression "*puVar29" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar36 = *(code **)(pcStack_b88 + -0x7b6c);" (assignment_expression "pcVar36 = *(code **)(pcStack_b88 + -0x7b6c)" identifier = (pointer_expression "*(code **)(pcStack_b88 + -0x7b6c)" * (cast_expression "(code **)(pcStack_b88 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_b88 + -0x7b6c)" ( (binary_expression "pcStack_b88 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = png_write_fcTL;" (assignment_expression "pcVar37 = png_write_fcTL" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar34 = *(int **)(pcVar36 + 0x171ac);" (assignment_expression "piVar34 = *(int **)(pcVar36 + 0x171ac)" identifier = (pointer_expression "*(int **)(pcVar36 + 0x171ac)" * (cast_expression "(int **)(pcVar36 + 0x171ac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x171ac)" ( (binary_expression "pcVar36 + 0x171ac" identifier + number_literal) ))))) ;) (expression_statement "ppVar25 = (png_structrp)*piVar34;" (assignment_expression "ppVar25 = (png_structrp)*piVar34" identifier = (binary_expression "(png_structrp)*piVar34" (parenthesized_expression "(png_structrp)" ( identifier )) * identifier)) ;) (expression_statement "uVar33 = (uint)uStack_b7e;" (assignment_expression "uVar33 = (uint)uStack_b7e" identifier = (cast_expression "(uint)uStack_b7e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "auStack_be0._28_4_ = ppVar25;" (assignment_expression "auStack_be0._28_4_ = ppVar25" (field_expression "auStack_be0._28_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_be0._32_4_ = apStack_b7c;" (assignment_expression "auStack_be0._32_4_ = apStack_b7c" (field_expression "auStack_be0._32_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_be0._36_4_ = ppVar14;" (assignment_expression "auStack_be0._36_4_ = ppVar14" (field_expression "auStack_be0._36_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_be0._40_4_ = puVar29;" (assignment_expression "auStack_be0._40_4_ = puVar29" (field_expression "auStack_be0._40_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_be0._44_4_ = ppVar20;" (assignment_expression "auStack_be0._44_4_ = ppVar20" (field_expression "auStack_be0._44_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_be0._48_4_ = pa_Var19;" (assignment_expression "auStack_be0._48_4_ = pa_Var19" (field_expression "auStack_be0._48_4_" identifier . field_identifier) = identifier) ;) (expression_statement "auStack_be0._52_4_ = ppVar12;" (assignment_expression "auStack_be0._52_4_ = ppVar12" (field_expression "auStack_be0._52_4_" identifier . field_identifier) = identifier) ;) (expression_statement "pa_Stack_ba8 = pa_Var18;" (assignment_expression "pa_Stack_ba8 = pa_Var18" identifier = identifier) ;) (expression_statement "pcStack_ba4 = pcVar11;" (assignment_expression "pcStack_ba4 = pcVar11" identifier = identifier) ;) (expression_statement "puStack_ba0 = puVar40;" (assignment_expression "puStack_ba0 = puVar40" identifier = identifier) ;) (expression_statement "pcStack_b9c = pcVar37;" (assignment_expression "pcStack_b9c = pcVar37" identifier = identifier) ;) (if_statement "if (ppVar31->num_frames_written == 0) {\n    if (pVar23 == 0 && pcStack_b88 == (code *)0x0) {\n      if ((ppVar31->first_frame_width == pVar2) &&\n         ((png_const_bytep)ppVar31->first_frame_height == ppVar5)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar36 + 0x170fc))();\n    }\n    pBVar17 = (Bytef *)(*(int *)(pcVar36 + 0x16d0c) + 0x2784);\n    png_ptr_00 = ppVar31;\n    (**(code **)(pcVar36 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    png_ensure_fcTL_is_valid\n              (ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,\n               uStack_b7e,pStack_b79,pStack_b75);\n    (**(code **)(pcVar36 + 0x170d0))((png_structrp)auStack_be0,ppVar31->next_seq_num);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 4,pVar2);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 8,ppVar5);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0xc,pVar23);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0x10,pcStack_b88);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x14,pStack_b82);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x16,uVar33);\n    pVar23 = 0x1a;\n    pBVar17 = (Bytef *)0x6663544c;\n    auStack_be0[0x18] = pStack_b79;\n    auStack_be0[0x19] = pStack_b75;\n    ppVar25 = (png_structrp)auStack_be0;\n    png_write_complete_chunk(ppVar31,0x6663544c,(png_const_bytep)auStack_be0,0x1a);\n    ppVar12 = (png_structrp)*piVar34;\n    ppVar31->next_seq_num = ppVar31->next_seq_num + 1;\n    png_ptr_00 = (png_structp)auStack_be0._28_4_;\n    ppVar14 = (png_structrp)auStack_be0;\n    if ((png_structrp)auStack_be0._28_4_ == ppVar12) {\n      return;\n    }\n  }" if (parenthesized_expression "(ppVar31->num_frames_written == 0)" ( (binary_expression "ppVar31->num_frames_written == 0" (field_expression "ppVar31->num_frames_written" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    if (pVar23 == 0 && pcStack_b88 == (code *)0x0) {\n      if ((ppVar31->first_frame_width == pVar2) &&\n         ((png_const_bytep)ppVar31->first_frame_height == ppVar5)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar36 + 0x170fc))();\n    }\n    pBVar17 = (Bytef *)(*(int *)(pcVar36 + 0x16d0c) + 0x2784);\n    png_ptr_00 = ppVar31;\n    (**(code **)(pcVar36 + 0x170fc))();\n  }" { (if_statement "if (pVar23 == 0 && pcStack_b88 == (code *)0x0) {\n      if ((ppVar31->first_frame_width == pVar2) &&\n         ((png_const_bytep)ppVar31->first_frame_height == ppVar5)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar36 + 0x170fc))();\n    }" if (parenthesized_expression "(pVar23 == 0 && pcStack_b88 == (code *)0x0)" ( (binary_expression "pVar23 == 0 && pcStack_b88 == (code *)0x0" (binary_expression "pVar23 == 0" identifier == number_literal) && (binary_expression "pcStack_b88 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n      if ((ppVar31->first_frame_width == pVar2) &&\n         ((png_const_bytep)ppVar31->first_frame_height == ppVar5)) goto LAB_0003c3a8;\n    }" { (if_statement "if ((ppVar31->first_frame_width == pVar2) &&\n         ((png_const_bytep)ppVar31->first_frame_height == ppVar5)) goto LAB_0003c3a8;" if (parenthesized_expression "((ppVar31->first_frame_width == pVar2) &&\n         ((png_const_bytep)ppVar31->first_frame_height == ppVar5))" ( (binary_expression "(ppVar31->first_frame_width == pVar2) &&\n         ((png_const_bytep)ppVar31->first_frame_height == ppVar5)" (parenthesized_expression "(ppVar31->first_frame_width == pVar2)" ( (binary_expression "ppVar31->first_frame_width == pVar2" (field_expression "ppVar31->first_frame_width" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "((png_const_bytep)ppVar31->first_frame_height == ppVar5)" ( (binary_expression "(png_const_bytep)ppVar31->first_frame_height == ppVar5" (cast_expression "(png_const_bytep)ppVar31->first_frame_height" ( (type_descriptor "png_const_bytep" type_identifier) ) (field_expression "ppVar31->first_frame_height" identifier -> field_identifier)) == identifier) ))) )) (goto_statement "goto LAB_0003c3a8;" goto statement_identifier ;)) }) (else_clause "else {\n      (**(code **)(pcVar36 + 0x170fc))();\n    }" else (compound_statement "{\n      (**(code **)(pcVar36 + 0x170fc))();\n    }" { (expression_statement "(**(code **)(pcVar36 + 0x170fc))();" (call_expression "(**(code **)(pcVar36 + 0x170fc))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x170fc))" ( (pointer_expression "**(code **)(pcVar36 + 0x170fc)" * (pointer_expression "*(code **)(pcVar36 + 0x170fc)" * (cast_expression "(code **)(pcVar36 + 0x170fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x170fc)" ( (binary_expression "pcVar36 + 0x170fc" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "pBVar17 = (Bytef *)(*(int *)(pcVar36 + 0x16d0c) + 0x2784);" (assignment_expression "pBVar17 = (Bytef *)(*(int *)(pcVar36 + 0x16d0c) + 0x2784)" identifier = (cast_expression "(Bytef *)(*(int *)(pcVar36 + 0x16d0c) + 0x2784)" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar36 + 0x16d0c) + 0x2784)" ( (binary_expression "*(int *)(pcVar36 + 0x16d0c) + 0x2784" (pointer_expression "*(int *)(pcVar36 + 0x16d0c)" * (cast_expression "(int *)(pcVar36 + 0x16d0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x16d0c)" ( (binary_expression "pcVar36 + 0x16d0c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "png_ptr_00 = ppVar31;" (assignment_expression "png_ptr_00 = ppVar31" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar36 + 0x170fc))();" (call_expression "(**(code **)(pcVar36 + 0x170fc))()" (parenthesized_expression "(**(code **)(pcVar36 + 0x170fc))" ( (pointer_expression "**(code **)(pcVar36 + 0x170fc)" * (pointer_expression "*(code **)(pcVar36 + 0x170fc)" * (cast_expression "(code **)(pcVar36 + 0x170fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x170fc)" ( (binary_expression "pcVar36 + 0x170fc" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_0003c3a8:\n    png_ensure_fcTL_is_valid\n              (ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,\n               uStack_b7e,pStack_b79,pStack_b75);\n    (**(code **)(pcVar36 + 0x170d0))((png_structrp)auStack_be0,ppVar31->next_seq_num);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 4,pVar2);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 8,ppVar5);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0xc,pVar23);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0x10,pcStack_b88);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x14,pStack_b82);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x16,uVar33);\n    pVar23 = 0x1a;\n    pBVar17 = (Bytef *)0x6663544c;\n    auStack_be0[0x18] = pStack_b79;\n    auStack_be0[0x19] = pStack_b75;\n    ppVar25 = (png_structrp)auStack_be0;\n    png_write_complete_chunk(ppVar31,0x6663544c,(png_const_bytep)auStack_be0,0x1a);\n    ppVar12 = (png_structrp)*piVar34;\n    ppVar31->next_seq_num = ppVar31->next_seq_num + 1;\n    png_ptr_00 = (png_structp)auStack_be0._28_4_;\n    ppVar14 = (png_structrp)auStack_be0;\n    if ((png_structrp)auStack_be0._28_4_ == ppVar12) {\n      return;\n    }\n  }" else (compound_statement "{\nLAB_0003c3a8:\n    png_ensure_fcTL_is_valid\n              (ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,\n               uStack_b7e,pStack_b79,pStack_b75);\n    (**(code **)(pcVar36 + 0x170d0))((png_structrp)auStack_be0,ppVar31->next_seq_num);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 4,pVar2);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 8,ppVar5);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0xc,pVar23);\n    (**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0x10,pcStack_b88);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x14,pStack_b82);\n    (**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x16,uVar33);\n    pVar23 = 0x1a;\n    pBVar17 = (Bytef *)0x6663544c;\n    auStack_be0[0x18] = pStack_b79;\n    auStack_be0[0x19] = pStack_b75;\n    ppVar25 = (png_structrp)auStack_be0;\n    png_write_complete_chunk(ppVar31,0x6663544c,(png_const_bytep)auStack_be0,0x1a);\n    ppVar12 = (png_structrp)*piVar34;\n    ppVar31->next_seq_num = ppVar31->next_seq_num + 1;\n    png_ptr_00 = (png_structp)auStack_be0._28_4_;\n    ppVar14 = (png_structrp)auStack_be0;\n    if ((png_structrp)auStack_be0._28_4_ == ppVar12) {\n      return;\n    }\n  }" { (labeled_statement "LAB_0003c3a8:\n    png_ensure_fcTL_is_valid\n              (ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,\n               uStack_b7e,pStack_b79,pStack_b75);" statement_identifier : (expression_statement "png_ensure_fcTL_is_valid\n              (ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,\n               uStack_b7e,pStack_b79,pStack_b75);" (call_expression "png_ensure_fcTL_is_valid\n              (ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,\n               uStack_b7e,pStack_b79,pStack_b75)" identifier (argument_list "(ppVar31,pVar2,(png_uint_32)ppVar5,pVar23,(png_uint_32)pcStack_b88,pStack_b82,\n               uStack_b7e,pStack_b79,pStack_b75)" ( identifier , identifier , (cast_expression "(png_uint_32)ppVar5" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) , identifier , (cast_expression "(png_uint_32)pcStack_b88" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) , identifier , identifier , identifier , identifier ))) ;)) (expression_statement "(**(code **)(pcVar36 + 0x170d0))((png_structrp)auStack_be0,ppVar31->next_seq_num);" (call_expression "(**(code **)(pcVar36 + 0x170d0))((png_structrp)auStack_be0,ppVar31->next_seq_num)" (parenthesized_expression "(**(code **)(pcVar36 + 0x170d0))" ( (pointer_expression "**(code **)(pcVar36 + 0x170d0)" * (pointer_expression "*(code **)(pcVar36 + 0x170d0)" * (cast_expression "(code **)(pcVar36 + 0x170d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x170d0)" ( (binary_expression "pcVar36 + 0x170d0" identifier + number_literal) ))))) )) (argument_list "((png_structrp)auStack_be0,ppVar31->next_seq_num)" ( (cast_expression "(png_structrp)auStack_be0" ( (type_descriptor "png_structrp" type_identifier) ) identifier) , (field_expression "ppVar31->next_seq_num" identifier -> field_identifier) ))) ;) (expression_statement "(**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 4,pVar2);" (call_expression "(**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 4,pVar2)" (parenthesized_expression "(**(code **)(pcVar36 + 0x170d0))" ( (pointer_expression "**(code **)(pcVar36 + 0x170d0)" * (pointer_expression "*(code **)(pcVar36 + 0x170d0)" * (cast_expression "(code **)(pcVar36 + 0x170d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x170d0)" ( (binary_expression "pcVar36 + 0x170d0" identifier + number_literal) ))))) )) (argument_list "(auStack_be0 + 4,pVar2)" ( (binary_expression "auStack_be0 + 4" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 8,ppVar5);" (call_expression "(**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 8,ppVar5)" (parenthesized_expression "(**(code **)(pcVar36 + 0x170d0))" ( (pointer_expression "**(code **)(pcVar36 + 0x170d0)" * (pointer_expression "*(code **)(pcVar36 + 0x170d0)" * (cast_expression "(code **)(pcVar36 + 0x170d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x170d0)" ( (binary_expression "pcVar36 + 0x170d0" identifier + number_literal) ))))) )) (argument_list "(auStack_be0 + 8,ppVar5)" ( (binary_expression "auStack_be0 + 8" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0xc,pVar23);" (call_expression "(**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0xc,pVar23)" (parenthesized_expression "(**(code **)(pcVar36 + 0x170d0))" ( (pointer_expression "**(code **)(pcVar36 + 0x170d0)" * (pointer_expression "*(code **)(pcVar36 + 0x170d0)" * (cast_expression "(code **)(pcVar36 + 0x170d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x170d0)" ( (binary_expression "pcVar36 + 0x170d0" identifier + number_literal) ))))) )) (argument_list "(auStack_be0 + 0xc,pVar23)" ( (binary_expression "auStack_be0 + 0xc" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0x10,pcStack_b88);" (call_expression "(**(code **)(pcVar36 + 0x170d0))(auStack_be0 + 0x10,pcStack_b88)" (parenthesized_expression "(**(code **)(pcVar36 + 0x170d0))" ( (pointer_expression "**(code **)(pcVar36 + 0x170d0)" * (pointer_expression "*(code **)(pcVar36 + 0x170d0)" * (cast_expression "(code **)(pcVar36 + 0x170d0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x170d0)" ( (binary_expression "pcVar36 + 0x170d0" identifier + number_literal) ))))) )) (argument_list "(auStack_be0 + 0x10,pcStack_b88)" ( (binary_expression "auStack_be0 + 0x10" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x14,pStack_b82);" (call_expression "(**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x14,pStack_b82)" (parenthesized_expression "(**(code **)(pcVar36 + 0x17010))" ( (pointer_expression "**(code **)(pcVar36 + 0x17010)" * (pointer_expression "*(code **)(pcVar36 + 0x17010)" * (cast_expression "(code **)(pcVar36 + 0x17010)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x17010)" ( (binary_expression "pcVar36 + 0x17010" identifier + number_literal) ))))) )) (argument_list "(auStack_be0 + 0x14,pStack_b82)" ( (binary_expression "auStack_be0 + 0x14" identifier + number_literal) , identifier ))) ;) (expression_statement "(**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x16,uVar33);" (call_expression "(**(code **)(pcVar36 + 0x17010))(auStack_be0 + 0x16,uVar33)" (parenthesized_expression "(**(code **)(pcVar36 + 0x17010))" ( (pointer_expression "**(code **)(pcVar36 + 0x17010)" * (pointer_expression "*(code **)(pcVar36 + 0x17010)" * (cast_expression "(code **)(pcVar36 + 0x17010)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x17010)" ( (binary_expression "pcVar36 + 0x17010" identifier + number_literal) ))))) )) (argument_list "(auStack_be0 + 0x16,uVar33)" ( (binary_expression "auStack_be0 + 0x16" identifier + number_literal) , identifier ))) ;) (expression_statement "pVar23 = 0x1a;" (assignment_expression "pVar23 = 0x1a" identifier = number_literal) ;) (expression_statement "pBVar17 = (Bytef *)0x6663544c;" (assignment_expression "pBVar17 = (Bytef *)0x6663544c" identifier = (cast_expression "(Bytef *)0x6663544c" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "auStack_be0[0x18] = pStack_b79;" (assignment_expression "auStack_be0[0x18] = pStack_b79" (subscript_expression "auStack_be0[0x18]" identifier [ number_literal ]) = identifier) ;) (expression_statement "auStack_be0[0x19] = pStack_b75;" (assignment_expression "auStack_be0[0x19] = pStack_b75" (subscript_expression "auStack_be0[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "ppVar25 = (png_structrp)auStack_be0;" (assignment_expression "ppVar25 = (png_structrp)auStack_be0" identifier = (cast_expression "(png_structrp)auStack_be0" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "png_write_complete_chunk(ppVar31,0x6663544c,(png_const_bytep)auStack_be0,0x1a);" (call_expression "png_write_complete_chunk(ppVar31,0x6663544c,(png_const_bytep)auStack_be0,0x1a)" identifier (argument_list "(ppVar31,0x6663544c,(png_const_bytep)auStack_be0,0x1a)" ( identifier , number_literal , (cast_expression "(png_const_bytep)auStack_be0" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier) , number_literal ))) ;) (expression_statement "ppVar12 = (png_structrp)*piVar34;" (assignment_expression "ppVar12 = (png_structrp)*piVar34" identifier = (binary_expression "(png_structrp)*piVar34" (parenthesized_expression "(png_structrp)" ( identifier )) * identifier)) ;) (expression_statement "ppVar31->next_seq_num = ppVar31->next_seq_num + 1;" (assignment_expression "ppVar31->next_seq_num = ppVar31->next_seq_num + 1" (field_expression "ppVar31->next_seq_num" identifier -> field_identifier) = (binary_expression "ppVar31->next_seq_num + 1" (field_expression "ppVar31->next_seq_num" identifier -> field_identifier) + number_literal)) ;) (expression_statement "png_ptr_00 = (png_structp)auStack_be0._28_4_;" (assignment_expression "png_ptr_00 = (png_structp)auStack_be0._28_4_" identifier = (cast_expression "(png_structp)auStack_be0._28_4_" ( (type_descriptor "png_structp" type_identifier) ) (field_expression "auStack_be0._28_4_" identifier . field_identifier))) ;) (expression_statement "ppVar14 = (png_structrp)auStack_be0;" (assignment_expression "ppVar14 = (png_structrp)auStack_be0" identifier = (cast_expression "(png_structrp)auStack_be0" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (if_statement "if ((png_structrp)auStack_be0._28_4_ == ppVar12) {\n      return;\n    }" if (parenthesized_expression "((png_structrp)auStack_be0._28_4_ == ppVar12)" ( (binary_expression "(png_structrp)auStack_be0._28_4_ == ppVar12" (cast_expression "(png_structrp)auStack_be0._28_4_" ( (type_descriptor "png_structrp" type_identifier) ) (field_expression "auStack_be0._28_4_" identifier . field_identifier)) == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "pcVar36 = *(code **)(pcVar36 + 0x17174);" (assignment_expression "pcVar36 = *(code **)(pcVar36 + 0x17174)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x17174)" * (cast_expression "(code **)(pcVar36 + 0x17174)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x17174)" ( (binary_expression "pcVar36 + 0x17174" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = png_write_fdAT;" (assignment_expression "pcVar37 = png_write_fdAT" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar34 = *(int **)(pcVar36 + 0x16fac);" (assignment_expression "piVar34 = *(int **)(pcVar36 + 0x16fac)" identifier = (pointer_expression "*(int **)(pcVar36 + 0x16fac)" * (cast_expression "(int **)(pcVar36 + 0x16fac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16fac)" ( (binary_expression "pcVar36 + 0x16fac" identifier + number_literal) ))))) ;) (expression_statement "ppStackY_c34 = (png_structrp)*piVar34;" (assignment_expression "ppStackY_c34 = (png_structrp)*piVar34" identifier = (binary_expression "(png_structrp)*piVar34" (parenthesized_expression "(png_structrp)" ( identifier )) * identifier)) ;) (expression_statement "ppStackY_c30 = ppVar31;" (assignment_expression "ppStackY_c30 = ppVar31" identifier = identifier) ;) (expression_statement "ppStackY_c2c = ppVar14;" (assignment_expression "ppStackY_c2c = ppVar14" identifier = identifier) ;) (expression_statement "ppStackY_c28 = ppVar5;" (assignment_expression "ppStackY_c28 = ppVar5" identifier = identifier) ;) (expression_statement "pStackY_c24 = pVar2;" (assignment_expression "pStackY_c24 = pVar2" identifier = identifier) ;) (expression_statement "uStackY_c20 = uVar33;" (assignment_expression "uStackY_c20 = uVar33" identifier = identifier) ;) (expression_statement "pcStackY_c1c = pcVar37;" (assignment_expression "pcStackY_c1c = pcVar37" identifier = identifier) ;) (if_statement "if (png_ptr_00 != (png_structrp)0x0) {\n    png_write_chunk_header\n              (png_ptr_00,0x66644154,(png_uint_32)&ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp);\n  }" if (parenthesized_expression "(png_ptr_00 != (png_structrp)0x0)" ( (binary_expression "png_ptr_00 != (png_structrp)0x0" identifier != (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n    png_write_chunk_header\n              (png_ptr_00,0x66644154,(png_uint_32)&ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp);\n  }" { (expression_statement "png_write_chunk_header\n              (png_ptr_00,0x66644154,(png_uint_32)&ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp);" (call_expression "png_write_chunk_header\n              (png_ptr_00,0x66644154,(png_uint_32)&ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp)" identifier (argument_list "(png_ptr_00,0x66644154,(png_uint_32)&ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp)" ( identifier , number_literal , (binary_expression "(png_uint_32)&ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp" (parenthesized_expression "(png_uint_32)" ( identifier )) & (field_expression "ppVar25->jmp_buf_local[0].__jmpbuf[0].__sp" (subscript_expression "ppVar25->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar25->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar25->jmp_buf_local[0]" (field_expression "ppVar25->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) ))) ;) })) (expression_statement "(**(code **)(pcVar36 + 0x16ed0))(auStackY_c38,png_ptr_00->next_seq_num);" (call_expression "(**(code **)(pcVar36 + 0x16ed0))(auStackY_c38,png_ptr_00->next_seq_num)" (parenthesized_expression "(**(code **)(pcVar36 + 0x16ed0))" ( (pointer_expression "**(code **)(pcVar36 + 0x16ed0)" * (pointer_expression "*(code **)(pcVar36 + 0x16ed0)" * (cast_expression "(code **)(pcVar36 + 0x16ed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16ed0)" ( (binary_expression "pcVar36 + 0x16ed0" identifier + number_literal) ))))) )) (argument_list "(auStackY_c38,png_ptr_00->next_seq_num)" ( identifier , (field_expression "png_ptr_00->next_seq_num" identifier -> field_identifier) ))) ;) (expression_statement "(**(code **)(pcVar36 + 0x16fec))(png_ptr_00,auStackY_c38,4);" (call_expression "(**(code **)(pcVar36 + 0x16fec))(png_ptr_00,auStackY_c38,4)" (parenthesized_expression "(**(code **)(pcVar36 + 0x16fec))" ( (pointer_expression "**(code **)(pcVar36 + 0x16fec)" * (pointer_expression "*(code **)(pcVar36 + 0x16fec)" * (cast_expression "(code **)(pcVar36 + 0x16fec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16fec)" ( (binary_expression "pcVar36 + 0x16fec" identifier + number_literal) ))))) )) (argument_list "(png_ptr_00,auStackY_c38,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar36 + 0x16fec))(png_ptr_00);" (call_expression "(**(code **)(pcVar36 + 0x16fec))(png_ptr_00)" (parenthesized_expression "(**(code **)(pcVar36 + 0x16fec))" ( (pointer_expression "**(code **)(pcVar36 + 0x16fec)" * (pointer_expression "*(code **)(pcVar36 + 0x16fec)" * (cast_expression "(code **)(pcVar36 + 0x16fec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16fec)" ( (binary_expression "pcVar36 + 0x16fec" identifier + number_literal) ))))) )) (argument_list "(png_ptr_00)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar36 + 0x16ef8))(png_ptr_00);" (call_expression "(**(code **)(pcVar36 + 0x16ef8))(png_ptr_00)" (parenthesized_expression "(**(code **)(pcVar36 + 0x16ef8))" ( (pointer_expression "**(code **)(pcVar36 + 0x16ef8)" * (pointer_expression "*(code **)(pcVar36 + 0x16ef8)" * (cast_expression "(code **)(pcVar36 + 0x16ef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16ef8)" ( (binary_expression "pcVar36 + 0x16ef8" identifier + number_literal) ))))) )) (argument_list "(png_ptr_00)" ( identifier ))) ;) (expression_statement "ppVar12 = (png_structrp)*piVar34;" (assignment_expression "ppVar12 = (png_structrp)*piVar34" identifier = (binary_expression "(png_structrp)*piVar34" (parenthesized_expression "(png_structrp)" ( identifier )) * identifier)) ;) (expression_statement "png_ptr_00->next_seq_num = png_ptr_00->next_seq_num + 1;" (assignment_expression "png_ptr_00->next_seq_num = png_ptr_00->next_seq_num + 1" (field_expression "png_ptr_00->next_seq_num" identifier -> field_identifier) = (binary_expression "png_ptr_00->next_seq_num + 1" (field_expression "png_ptr_00->next_seq_num" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (ppStackY_c34 == ppVar12) {\n    return;\n  }" if (parenthesized_expression "(ppStackY_c34 == ppVar12)" ( (binary_expression "ppStackY_c34 == ppVar12" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar36 = *(code **)(pcVar36 + 0x16f74);" (assignment_expression "pcVar36 = *(code **)(pcVar36 + 0x16f74)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x16f74)" * (cast_expression "(code **)(pcVar36 + 0x16f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16f74)" ( (binary_expression "pcVar36 + 0x16f74" identifier + number_literal) ))))) ;) (expression_statement "ppVar12 = ppStackY_c34;" (assignment_expression "ppVar12 = ppStackY_c34" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (ppVar12->zowner == 0x49444154) goto LAB_0003c6d0;" if (parenthesized_expression "(ppVar12->zowner == 0x49444154)" ( (binary_expression "ppVar12->zowner == 0x49444154" (field_expression "ppVar12->zowner" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0003c6d0;" goto statement_identifier ;)) (if_statement "if (ppVar12->zbuffer_list == (png_compression_bufferp)0x0) goto LAB_0003c8fc;" if (parenthesized_expression "(ppVar12->zbuffer_list == (png_compression_bufferp)0x0)" ( (binary_expression "ppVar12->zbuffer_list == (png_compression_bufferp)0x0" (field_expression "ppVar12->zbuffer_list" identifier -> field_identifier) == (cast_expression "(png_compression_bufferp)0x0" ( (type_descriptor "png_compression_bufferp" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0003c8fc;" goto statement_identifier ;)) (expression_statement "png_free_buffer_list(ppVar12,&ppVar12->zbuffer_list->next);" (call_expression "png_free_buffer_list(ppVar12,&ppVar12->zbuffer_list->next)" identifier (argument_list "(ppVar12,&ppVar12->zbuffer_list->next)" ( identifier , (pointer_expression "&ppVar12->zbuffer_list->next" & (field_expression "ppVar12->zbuffer_list->next" (field_expression "ppVar12->zbuffer_list" identifier -> field_identifier) -> field_identifier)) ))) ;) (while_statement "while( true ) {\n    pVar7 = png_image_size(ppVar12);\n    iVar10 = png_deflate_claim(ppVar12,0x49444154,pVar7);\n    if (iVar10 != 0) break;\n    ppVar8 = ppVar12->zbuffer_list;\n    (ppVar12->zstream).avail_out = ppVar12->zbuffer_size;\n    (ppVar12->zstream).next_out = ppVar8->output;\nLAB_0003c6d0:\n    (ppVar12->zstream).next_in = pBVar17;\n    do {\n      pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      do {\n        (ppVar12->zstream).avail_in = (uInt)ppVar25;\n        pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);\n        ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;\n        (ppVar12->zstream).avail_in = 0;\n        if ((ppVar12->zstream).avail_out != 0) {\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        pVar26 = ppVar12->zbuffer_size;\n        ppVar32 = ppVar12->zbuffer_list->output;\n        if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n          optimize_cmf(ppVar32,pVar7);\n        }\n        if (pVar26 != 0) {\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }\n        uVar33 = ppVar12->mode;\n        (ppVar12->zstream).next_out = ppVar32;\n        (ppVar12->zstream).avail_out = pVar26;\n        ppVar12->mode = uVar33 | 4;\n        if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;\n        pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      } while (pVar23 != 0);\n    } while (ppVar25 != (png_structrp)0x0);\n    if (pVar23 != 4) {\n      return;\n    }\n    (**(code **)(pcVar36 + 0x16dfc))(ppVar12,*(int *)(pcVar36 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    ppVar8 = (png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))();\n    ppVar12->zbuffer_list = ppVar8;\n    ppVar8->next = (png_compression_buffer *)0x0;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    pVar7 = png_image_size(ppVar12);\n    iVar10 = png_deflate_claim(ppVar12,0x49444154,pVar7);\n    if (iVar10 != 0) break;\n    ppVar8 = ppVar12->zbuffer_list;\n    (ppVar12->zstream).avail_out = ppVar12->zbuffer_size;\n    (ppVar12->zstream).next_out = ppVar8->output;\nLAB_0003c6d0:\n    (ppVar12->zstream).next_in = pBVar17;\n    do {\n      pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      do {\n        (ppVar12->zstream).avail_in = (uInt)ppVar25;\n        pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);\n        ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;\n        (ppVar12->zstream).avail_in = 0;\n        if ((ppVar12->zstream).avail_out != 0) {\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        pVar26 = ppVar12->zbuffer_size;\n        ppVar32 = ppVar12->zbuffer_list->output;\n        if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n          optimize_cmf(ppVar32,pVar7);\n        }\n        if (pVar26 != 0) {\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }\n        uVar33 = ppVar12->mode;\n        (ppVar12->zstream).next_out = ppVar32;\n        (ppVar12->zstream).avail_out = pVar26;\n        ppVar12->mode = uVar33 | 4;\n        if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;\n        pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      } while (pVar23 != 0);\n    } while (ppVar25 != (png_structrp)0x0);\n    if (pVar23 != 4) {\n      return;\n    }\n    (**(code **)(pcVar36 + 0x16dfc))(ppVar12,*(int *)(pcVar36 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    ppVar8 = (png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))();\n    ppVar12->zbuffer_list = ppVar8;\n    ppVar8->next = (png_compression_buffer *)0x0;\n  }" { (expression_statement "pVar7 = png_image_size(ppVar12);" (assignment_expression "pVar7 = png_image_size(ppVar12)" identifier = (call_expression "png_image_size(ppVar12)" identifier (argument_list "(ppVar12)" ( identifier )))) ;) (expression_statement "iVar10 = png_deflate_claim(ppVar12,0x49444154,pVar7);" (assignment_expression "iVar10 = png_deflate_claim(ppVar12,0x49444154,pVar7)" identifier = (call_expression "png_deflate_claim(ppVar12,0x49444154,pVar7)" identifier (argument_list "(ppVar12,0x49444154,pVar7)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar10 != 0) break;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "ppVar8 = ppVar12->zbuffer_list;" (assignment_expression "ppVar8 = ppVar12->zbuffer_list" identifier = (field_expression "ppVar12->zbuffer_list" identifier -> field_identifier)) ;) (expression_statement "(ppVar12->zstream).avail_out = ppVar12->zbuffer_size;" (assignment_expression "(ppVar12->zstream).avail_out = ppVar12->zbuffer_size" (field_expression "(ppVar12->zstream).avail_out" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) = (field_expression "ppVar12->zbuffer_size" identifier -> field_identifier)) ;) (expression_statement "(ppVar12->zstream).next_out = ppVar8->output;" (assignment_expression "(ppVar12->zstream).next_out = ppVar8->output" (field_expression "(ppVar12->zstream).next_out" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) = (field_expression "ppVar8->output" identifier -> field_identifier)) ;) (labeled_statement "LAB_0003c6d0:\n    (ppVar12->zstream).next_in = pBVar17;" statement_identifier : (expression_statement "(ppVar12->zstream).next_in = pBVar17;" (assignment_expression "(ppVar12->zstream).next_in = pBVar17" (field_expression "(ppVar12->zstream).next_in" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) = identifier) ;)) (do_statement "do {\n      pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      do {\n        (ppVar12->zstream).avail_in = (uInt)ppVar25;\n        pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);\n        ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;\n        (ppVar12->zstream).avail_in = 0;\n        if ((ppVar12->zstream).avail_out != 0) {\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        pVar26 = ppVar12->zbuffer_size;\n        ppVar32 = ppVar12->zbuffer_list->output;\n        if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n          optimize_cmf(ppVar32,pVar7);\n        }\n        if (pVar26 != 0) {\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }\n        uVar33 = ppVar12->mode;\n        (ppVar12->zstream).next_out = ppVar32;\n        (ppVar12->zstream).avail_out = pVar26;\n        ppVar12->mode = uVar33 | 4;\n        if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;\n        pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      } while (pVar23 != 0);\n    } while (ppVar25 != (png_structrp)0x0);" do (compound_statement "{\n      pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      do {\n        (ppVar12->zstream).avail_in = (uInt)ppVar25;\n        pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);\n        ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;\n        (ppVar12->zstream).avail_in = 0;\n        if ((ppVar12->zstream).avail_out != 0) {\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        pVar26 = ppVar12->zbuffer_size;\n        ppVar32 = ppVar12->zbuffer_list->output;\n        if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n          optimize_cmf(ppVar32,pVar7);\n        }\n        if (pVar26 != 0) {\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }\n        uVar33 = ppVar12->mode;\n        (ppVar12->zstream).next_out = ppVar32;\n        (ppVar12->zstream).avail_out = pVar26;\n        ppVar12->mode = uVar33 | 4;\n        if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;\n        pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      } while (pVar23 != 0);\n    }" { (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x16e48);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x16e48)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x16e48)" * (cast_expression "(code **)(pcVar36 + 0x16e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16e48)" ( (binary_expression "pcVar36 + 0x16e48" identifier + number_literal) ))))) ;) (do_statement "do {\n        (ppVar12->zstream).avail_in = (uInt)ppVar25;\n        pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);\n        ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;\n        (ppVar12->zstream).avail_in = 0;\n        if ((ppVar12->zstream).avail_out != 0) {\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        pVar26 = ppVar12->zbuffer_size;\n        ppVar32 = ppVar12->zbuffer_list->output;\n        if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n          optimize_cmf(ppVar32,pVar7);\n        }\n        if (pVar26 != 0) {\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }\n        uVar33 = ppVar12->mode;\n        (ppVar12->zstream).next_out = ppVar32;\n        (ppVar12->zstream).avail_out = pVar26;\n        ppVar12->mode = uVar33 | 4;\n        if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;\n        pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      } while (pVar23 != 0);" do (compound_statement "{\n        (ppVar12->zstream).avail_in = (uInt)ppVar25;\n        pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);\n        ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;\n        (ppVar12->zstream).avail_in = 0;\n        if ((ppVar12->zstream).avail_out != 0) {\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        pVar26 = ppVar12->zbuffer_size;\n        ppVar32 = ppVar12->zbuffer_list->output;\n        if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n          optimize_cmf(ppVar32,pVar7);\n        }\n        if (pVar26 != 0) {\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }\n        uVar33 = ppVar12->mode;\n        (ppVar12->zstream).next_out = ppVar32;\n        (ppVar12->zstream).avail_out = pVar26;\n        ppVar12->mode = uVar33 | 4;\n        if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;\n        pcVar37 = *(code **)(pcVar36 + 0x16e48);\n      }" { (expression_statement "(ppVar12->zstream).avail_in = (uInt)ppVar25;" (assignment_expression "(ppVar12->zstream).avail_in = (uInt)ppVar25" (field_expression "(ppVar12->zstream).avail_in" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uInt)ppVar25" ( (type_descriptor "uInt" type_identifier) ) identifier)) ;) (expression_statement "pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23);" (assignment_expression "pBVar17 = (Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23)" identifier = (cast_expression "(Bytef *)(*pcVar37)(&ppVar12->zstream,pVar23)" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar37)(&ppVar12->zstream,pVar23)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(&ppVar12->zstream,pVar23)" ( (pointer_expression "&ppVar12->zstream" & (field_expression "ppVar12->zstream" identifier -> field_identifier)) , identifier ))))) ;) (expression_statement "ppVar25 = (png_structrp)(ppVar12->zstream).avail_in;" (assignment_expression "ppVar25 = (png_structrp)(ppVar12->zstream).avail_in" identifier = (field_expression "(png_structrp)(ppVar12->zstream).avail_in" (call_expression "(png_structrp)(ppVar12->zstream)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "(ppVar12->zstream).avail_in = 0;" (assignment_expression "(ppVar12->zstream).avail_in = 0" (field_expression "(ppVar12->zstream).avail_in" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (if_statement "if ((ppVar12->zstream).avail_out != 0) {\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }" if (parenthesized_expression "((ppVar12->zstream).avail_out != 0)" ( (binary_expression "(ppVar12->zstream).avail_out != 0" (field_expression "(ppVar12->zstream).avail_out" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n          if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }" { (if_statement "if (pBVar17 != (Bytef *)0x0) {\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }" if (parenthesized_expression "(pBVar17 != (Bytef *)0x0)" ( (binary_expression "pBVar17 != (Bytef *)0x0" identifier != (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;\n            pcVar37 = *(code **)(pcVar36 + 0x16bc8);\n            if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }" { (labeled_statement "LAB_0003c7d4:\n            if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;" statement_identifier : (if_statement "if (pBVar17 != (Bytef *)0x1) goto LAB_0003c944;" if (parenthesized_expression "(pBVar17 != (Bytef *)0x1)" ( (binary_expression "pBVar17 != (Bytef *)0x1" identifier != (cast_expression "(Bytef *)0x1" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c944;" goto statement_identifier ;))) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x16bc8);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x16bc8)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x16bc8)" * (cast_expression "(code **)(pcVar36 + 0x16bc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16bc8)" ( (binary_expression "pcVar36 + 0x16bc8" identifier + number_literal) ))))) ;) (if_statement "if (pVar23 == 4) {\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }" if (parenthesized_expression "(pVar23 == 4)" ( (binary_expression "pVar23 == 4" identifier == number_literal) )) (compound_statement "{\n              ppVar32 = ppVar12->zbuffer_list->output;\n              pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;\n              if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }\n              if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              (ppVar12->zstream).avail_out = 0;\n              (ppVar12->zstream).next_out = (Bytef *)0x0;\n              ppVar12->zowner = 0;\n              ppVar12->mode = uVar33 | 0xc;\n              return;\n            }" { (expression_statement "ppVar32 = ppVar12->zbuffer_list->output;" (assignment_expression "ppVar32 = ppVar12->zbuffer_list->output" identifier = (field_expression "ppVar12->zbuffer_list->output" (field_expression "ppVar12->zbuffer_list" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out;" (assignment_expression "pVar26 = ppVar12->zbuffer_size - (ppVar12->zstream).avail_out" identifier = (binary_expression "ppVar12->zbuffer_size - (ppVar12->zstream).avail_out" (field_expression "ppVar12->zbuffer_size" identifier -> field_identifier) - (field_expression "(ppVar12->zstream).avail_out" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n                optimize_cmf(ppVar32,pVar7);\n              }" if (parenthesized_expression "((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001))" ( (binary_expression "(((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n                 (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)" (parenthesized_expression "(((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0'))" ( (binary_expression "((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')" (parenthesized_expression "((ppVar12->mode & 4) == 0)" ( (binary_expression "(ppVar12->mode & 4) == 0" (parenthesized_expression "(ppVar12->mode & 4)" ( (binary_expression "ppVar12->mode & 4" (field_expression "ppVar12->mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppVar12->compression_type == '\0')" ( (binary_expression "ppVar12->compression_type == '\0'" (field_expression "ppVar12->compression_type" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)" ( (comma_expression "pVar7 = png_image_size(ppVar12), pVar7 < 0x4001" (assignment_expression "pVar7 = png_image_size(ppVar12)" identifier = (call_expression "png_image_size(ppVar12)" identifier (argument_list "(ppVar12)" ( identifier )))) , (binary_expression "pVar7 < 0x4001" identifier < number_literal)) ))) )) (compound_statement "{\n                optimize_cmf(ppVar32,pVar7);\n              }" { (expression_statement "optimize_cmf(ppVar32,pVar7);" (call_expression "optimize_cmf(ppVar32,pVar7)" identifier (argument_list "(ppVar32,pVar7)" ( identifier , identifier ))) ;) })) (if_statement "if (pVar26 == 0) {\n                uVar33 = ppVar12->mode;\n              }\n              else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }" if (parenthesized_expression "(pVar26 == 0)" ( (binary_expression "pVar26 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar33 = ppVar12->mode;\n              }" { (expression_statement "uVar33 = ppVar12->mode;" (assignment_expression "uVar33 = ppVar12->mode" identifier = (field_expression "ppVar12->mode" identifier -> field_identifier)) ;) }) (else_clause "else if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }" else (if_statement "if (ppVar12->num_frames_written == 0) {\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }\n              else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }" if (parenthesized_expression "(ppVar12->num_frames_written == 0)" ( (binary_expression "ppVar12->num_frames_written == 0" (field_expression "ppVar12->num_frames_written" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }" { (expression_statement "png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);" (call_expression "png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26)" identifier (argument_list "(ppVar12,0x49444154,ppVar32,pVar26)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar33 = ppVar12->mode;" (assignment_expression "uVar33 = ppVar12->mode" identifier = (field_expression "ppVar12->mode" identifier -> field_identifier)) ;) }) (else_clause "else {\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }" else (compound_statement "{\n                png_write_fdAT(ppVar12,ppVar32,pVar26);\n                uVar33 = ppVar12->mode;\n              }" { (expression_statement "png_write_fdAT(ppVar12,ppVar32,pVar26);" (call_expression "png_write_fdAT(ppVar12,ppVar32,pVar26)" identifier (argument_list "(ppVar12,ppVar32,pVar26)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar33 = ppVar12->mode;" (assignment_expression "uVar33 = ppVar12->mode" identifier = (field_expression "ppVar12->mode" identifier -> field_identifier)) ;) }))))) (expression_statement "(ppVar12->zstream).avail_out = 0;" (assignment_expression "(ppVar12->zstream).avail_out = 0" (field_expression "(ppVar12->zstream).avail_out" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(ppVar12->zstream).next_out = (Bytef *)0x0;" (assignment_expression "(ppVar12->zstream).next_out = (Bytef *)0x0" (field_expression "(ppVar12->zstream).next_out" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppVar12->zowner = 0;" (assignment_expression "ppVar12->zowner = 0" (field_expression "ppVar12->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppVar12->mode = uVar33 | 0xc;" (assignment_expression "ppVar12->mode = uVar33 | 0xc" (field_expression "ppVar12->mode" identifier -> field_identifier) = (binary_expression "uVar33 | 0xc" identifier | number_literal)) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0003c948;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "pVar26 = ppVar12->zbuffer_size;" (assignment_expression "pVar26 = ppVar12->zbuffer_size" identifier = (field_expression "ppVar12->zbuffer_size" identifier -> field_identifier)) ;) (expression_statement "ppVar32 = ppVar12->zbuffer_list->output;" (assignment_expression "ppVar32 = ppVar12->zbuffer_list->output" identifier = (field_expression "ppVar12->zbuffer_list->output" (field_expression "ppVar12->zbuffer_list" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if ((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)) {\n          optimize_cmf(ppVar32,pVar7);\n        }" if (parenthesized_expression "((((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001))" ( (binary_expression "(((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')) &&\n           (pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)" (parenthesized_expression "(((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0'))" ( (binary_expression "((ppVar12->mode & 4) == 0) && (ppVar12->compression_type == '\0')" (parenthesized_expression "((ppVar12->mode & 4) == 0)" ( (binary_expression "(ppVar12->mode & 4) == 0" (parenthesized_expression "(ppVar12->mode & 4)" ( (binary_expression "ppVar12->mode & 4" (field_expression "ppVar12->mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppVar12->compression_type == '\0')" ( (binary_expression "ppVar12->compression_type == '\0'" (field_expression "ppVar12->compression_type" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(pVar7 = png_image_size(ppVar12), pVar7 < 0x4001)" ( (comma_expression "pVar7 = png_image_size(ppVar12), pVar7 < 0x4001" (assignment_expression "pVar7 = png_image_size(ppVar12)" identifier = (call_expression "png_image_size(ppVar12)" identifier (argument_list "(ppVar12)" ( identifier )))) , (binary_expression "pVar7 < 0x4001" identifier < number_literal)) ))) )) (compound_statement "{\n          optimize_cmf(ppVar32,pVar7);\n        }" { (expression_statement "optimize_cmf(ppVar32,pVar7);" (call_expression "optimize_cmf(ppVar32,pVar7)" identifier (argument_list "(ppVar32,pVar7)" ( identifier , identifier ))) ;) })) (if_statement "if (pVar26 != 0) {\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }" if (parenthesized_expression "(pVar26 != 0)" ( (binary_expression "pVar26 != 0" identifier != number_literal) )) (compound_statement "{\n          if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }\n        }" { (if_statement "if (ppVar12->num_frames_written == 0) {\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }\n          else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }" if (parenthesized_expression "(ppVar12->num_frames_written == 0)" ( (binary_expression "ppVar12->num_frames_written == 0" (field_expression "ppVar12->num_frames_written" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);\n          }" { (expression_statement "png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26);" (call_expression "png_write_complete_chunk(ppVar12,0x49444154,ppVar32,pVar26)" identifier (argument_list "(ppVar12,0x49444154,ppVar32,pVar26)" ( identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }" else (compound_statement "{\n            png_write_fdAT(ppVar12,ppVar32,pVar26);\n          }" { (expression_statement "png_write_fdAT(ppVar12,ppVar32,pVar26);" (call_expression "png_write_fdAT(ppVar12,ppVar32,pVar26)" identifier (argument_list "(ppVar12,ppVar32,pVar26)" ( identifier , identifier , identifier ))) ;) }))) })) (expression_statement "uVar33 = ppVar12->mode;" (assignment_expression "uVar33 = ppVar12->mode" identifier = (field_expression "ppVar12->mode" identifier -> field_identifier)) ;) (expression_statement "(ppVar12->zstream).next_out = ppVar32;" (assignment_expression "(ppVar12->zstream).next_out = ppVar32" (field_expression "(ppVar12->zstream).next_out" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(ppVar12->zstream).avail_out = pVar26;" (assignment_expression "(ppVar12->zstream).avail_out = pVar26" (field_expression "(ppVar12->zstream).avail_out" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "ppVar12->mode = uVar33 | 4;" (assignment_expression "ppVar12->mode = uVar33 | 4" (field_expression "ppVar12->mode" identifier -> field_identifier) = (binary_expression "uVar33 | 4" identifier | number_literal)) ;) (if_statement "if (pBVar17 != (Bytef *)0x0) goto LAB_0003c7d4;" if (parenthesized_expression "(pBVar17 != (Bytef *)0x0)" ( (binary_expression "pBVar17 != (Bytef *)0x0" identifier != (cast_expression "(Bytef *)0x0" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003c7d4;" goto statement_identifier ;)) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x16e48);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x16e48)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x16e48)" * (cast_expression "(code **)(pcVar36 + 0x16e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16e48)" ( (binary_expression "pcVar36 + 0x16e48" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(pVar23 != 0)" ( (binary_expression "pVar23 != 0" identifier != number_literal) )) ;) }) while (parenthesized_expression "(ppVar25 != (png_structrp)0x0)" ( (binary_expression "ppVar25 != (png_structrp)0x0" identifier != (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) ;) (if_statement "if (pVar23 != 4) {\n      return;\n    }" if (parenthesized_expression "(pVar23 != 4)" ( (binary_expression "pVar23 != 4" identifier != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar36 + 0x16dfc))(ppVar12,*(int *)(pcVar36 + 0x16a0c) + 0x27d0);" (call_expression "(**(code **)(pcVar36 + 0x16dfc))(ppVar12,*(int *)(pcVar36 + 0x16a0c) + 0x27d0)" (parenthesized_expression "(**(code **)(pcVar36 + 0x16dfc))" ( (pointer_expression "**(code **)(pcVar36 + 0x16dfc)" * (pointer_expression "*(code **)(pcVar36 + 0x16dfc)" * (cast_expression "(code **)(pcVar36 + 0x16dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16dfc)" ( (binary_expression "pcVar36 + 0x16dfc" identifier + number_literal) ))))) )) (argument_list "(ppVar12,*(int *)(pcVar36 + 0x16a0c) + 0x27d0)" ( identifier , (binary_expression "*(int *)(pcVar36 + 0x16a0c) + 0x27d0" (pointer_expression "*(int *)(pcVar36 + 0x16a0c)" * (cast_expression "(int *)(pcVar36 + 0x16a0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x16a0c)" ( (binary_expression "pcVar36 + 0x16a0c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0003c8fc:\n    ppVar8 = (png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))();" statement_identifier : (expression_statement "ppVar8 = (png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))();" (assignment_expression "ppVar8 = (png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))()" identifier = (call_expression "(png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))()" (call_expression "(png_compression_bufferp)(**(code **)(pcVar36 + 0x16cf8))" (parenthesized_expression "(png_compression_bufferp)" ( identifier )) (argument_list "(**(code **)(pcVar36 + 0x16cf8))" ( (pointer_expression "**(code **)(pcVar36 + 0x16cf8)" * (pointer_expression "*(code **)(pcVar36 + 0x16cf8)" * (cast_expression "(code **)(pcVar36 + 0x16cf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16cf8)" ( (binary_expression "pcVar36 + 0x16cf8" identifier + number_literal) ))))) ))) (argument_list "()" ( )))) ;)) (expression_statement "ppVar12->zbuffer_list = ppVar8;" (assignment_expression "ppVar12->zbuffer_list = ppVar8" (field_expression "ppVar12->zbuffer_list" identifier -> field_identifier) = identifier) ;) (expression_statement "ppVar8->next = (png_compression_buffer *)0x0;" (assignment_expression "ppVar8->next = (png_compression_buffer *)0x0" (field_expression "ppVar8->next" identifier -> field_identifier) = (cast_expression "(png_compression_buffer *)0x0" ( (type_descriptor "png_compression_buffer *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "(**(code **)(pcVar36 + 0x16dfc))(ppVar12,(ppVar12->zstream).msg);" (call_expression "(**(code **)(pcVar36 + 0x16dfc))(ppVar12,(ppVar12->zstream).msg)" (parenthesized_expression "(**(code **)(pcVar36 + 0x16dfc))" ( (pointer_expression "**(code **)(pcVar36 + 0x16dfc)" * (pointer_expression "*(code **)(pcVar36 + 0x16dfc)" * (cast_expression "(code **)(pcVar36 + 0x16dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16dfc)" ( (binary_expression "pcVar36 + 0x16dfc" identifier + number_literal) ))))) )) (argument_list "(ppVar12,(ppVar12->zstream).msg)" ( identifier , (field_expression "(ppVar12->zstream).msg" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) ))) ;) (labeled_statement "LAB_0003c944:\n  pcVar37 = *(code **)(pcVar36 + 0x16bc8);" statement_identifier : (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x16bc8);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x16bc8)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x16bc8)" * (cast_expression "(code **)(pcVar36 + 0x16bc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16bc8)" ( (binary_expression "pcVar36 + 0x16bc8" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0003c948:\n  (*pcVar37)(ppVar12,pBVar17);" statement_identifier : (expression_statement "(*pcVar37)(ppVar12,pBVar17);" (call_expression "(*pcVar37)(ppVar12,pBVar17)" (parenthesized_expression "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) )) (argument_list "(ppVar12,pBVar17)" ( identifier , identifier ))) ;)) (expression_statement "pcVar36 = *(code **)(pcVar36 + 0x16dfc);" (assignment_expression "pcVar36 = *(code **)(pcVar36 + 0x16dfc)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x16dfc)" * (cast_expression "(code **)(pcVar36 + 0x16dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x16dfc)" ( (binary_expression "pcVar36 + 0x16dfc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar36)(ppVar12,(ppVar12->zstream).msg);" (call_expression "(*pcVar36)(ppVar12,(ppVar12->zstream).msg)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(ppVar12,(ppVar12->zstream).msg)" ( identifier , (field_expression "(ppVar12->zstream).msg" (parenthesized_expression "(ppVar12->zstream)" ( (field_expression "ppVar12->zstream" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "uVar33 = (uint)ppVar12->usr_channels * (uint)ppVar12->usr_bit_depth;" (assignment_expression "uVar33 = (uint)ppVar12->usr_channels * (uint)ppVar12->usr_bit_depth" identifier = (binary_expression "(uint)ppVar12->usr_channels * (uint)ppVar12->usr_bit_depth" (cast_expression "(uint)ppVar12->usr_channels" ( (type_descriptor "uint" type_identifier) ) (field_expression "ppVar12->usr_channels" identifier -> field_identifier)) * (cast_expression "(uint)ppVar12->usr_bit_depth" ( (type_descriptor "uint" type_identifier) ) (field_expression "ppVar12->usr_bit_depth" identifier -> field_identifier)))) ;) (if_statement "if (uVar33 < 8) {\n    uVar27 = ppVar12->width * uVar33 + 7 >> 3;\n  }\n  else {\n    uVar27 = (uVar33 >> 3) * ppVar12->width;\n  }" if (parenthesized_expression "(uVar33 < 8)" ( (binary_expression "uVar33 < 8" identifier < number_literal) )) (compound_statement "{\n    uVar27 = ppVar12->width * uVar33 + 7 >> 3;\n  }" { (expression_statement "uVar27 = ppVar12->width * uVar33 + 7 >> 3;" (assignment_expression "uVar27 = ppVar12->width * uVar33 + 7 >> 3" identifier = (binary_expression "ppVar12->width * uVar33 + 7 >> 3" (binary_expression "ppVar12->width * uVar33 + 7" (binary_expression "ppVar12->width * uVar33" (field_expression "ppVar12->width" identifier -> field_identifier) * identifier) + number_literal) >> number_literal)) ;) }) (else_clause "else {\n    uVar27 = (uVar33 >> 3) * ppVar12->width;\n  }" else (compound_statement "{\n    uVar27 = (uVar33 >> 3) * ppVar12->width;\n  }" { (expression_statement "uVar27 = (uVar33 >> 3) * ppVar12->width;" (assignment_expression "uVar27 = (uVar33 >> 3) * ppVar12->width" identifier = (binary_expression "(uVar33 >> 3) * ppVar12->width" (parenthesized_expression "(uVar33 >> 3)" ( (binary_expression "uVar33 >> 3" identifier >> number_literal) )) * (field_expression "ppVar12->width" identifier -> field_identifier))) ;) }))) (expression_statement "iVar10 = uVar27 + 1;" (assignment_expression "iVar10 = uVar27 + 1" identifier = (binary_expression "uVar27 + 1" identifier + number_literal)) ;) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x169a0);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x169a0)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x169a0)" * (cast_expression "(code **)(pcVar36 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x169a0)" ( (binary_expression "pcVar36 + 0x169a0" identifier + number_literal) ))))) ;) (expression_statement "ppVar12->maximum_pixel_depth = (png_byte)uVar33;" (assignment_expression "ppVar12->maximum_pixel_depth = (png_byte)uVar33" (field_expression "ppVar12->maximum_pixel_depth" identifier -> field_identifier) = (cast_expression "(png_byte)uVar33" ( (type_descriptor "png_byte" type_identifier) ) identifier)) ;) (expression_statement "ppVar12->transformed_pixel_depth = ppVar12->pixel_depth;" (assignment_expression "ppVar12->transformed_pixel_depth = ppVar12->pixel_depth" (field_expression "ppVar12->transformed_pixel_depth" identifier -> field_identifier) = (field_expression "ppVar12->pixel_depth" identifier -> field_identifier)) ;) (expression_statement "ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);" (assignment_expression "ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10)" identifier = (call_expression "(png_bytep)(*pcVar37)(ppVar12,iVar10)" (call_expression "(png_bytep)(*pcVar37)" (parenthesized_expression "(png_bytep)" ( identifier )) (argument_list "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) ))) (argument_list "(ppVar12,iVar10)" ( identifier , identifier )))) ;) (expression_statement "pVar2 = ppVar12->height;" (assignment_expression "pVar2 = ppVar12->height" identifier = (field_expression "ppVar12->height" identifier -> field_identifier)) ;) (expression_statement "uVar33 = (uint)ppVar12->do_filter;" (assignment_expression "uVar33 = (uint)ppVar12->do_filter" identifier = (cast_expression "(uint)ppVar12->do_filter" ( (type_descriptor "uint" type_identifier) ) (field_expression "ppVar12->do_filter" identifier -> field_identifier))) ;) (expression_statement "ppVar12->row_buf = ppVar9;" (assignment_expression "ppVar12->row_buf = ppVar9" (field_expression "ppVar12->row_buf" identifier -> field_identifier) = identifier) ;) (expression_statement "*ppVar9 = '\0';" (assignment_expression "*ppVar9 = '\0'" (pointer_expression "*ppVar9" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (pVar2 == 1) {\n    uVar33 = uVar33 & 0x1f;\n  }" if (parenthesized_expression "(pVar2 == 1)" ( (binary_expression "pVar2 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar33 = uVar33 & 0x1f;\n  }" { (expression_statement "uVar33 = uVar33 & 0x1f;" (assignment_expression "uVar33 = uVar33 & 0x1f" identifier = (binary_expression "uVar33 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "pVar23 = ppVar12->width;" (assignment_expression "pVar23 = ppVar12->width" identifier = (field_expression "ppVar12->width" identifier -> field_identifier)) ;) (if_statement "if (pVar23 == 1) {\n    uVar33 = uVar33 & 0x2f;\n  }" if (parenthesized_expression "(pVar23 == 1)" ( (binary_expression "pVar23 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar33 = uVar33 & 0x2f;\n  }" { (expression_statement "uVar33 = uVar33 & 0x2f;" (assignment_expression "uVar33 = uVar33 & 0x2f" identifier = (binary_expression "uVar33 & 0x2f" identifier & number_literal)) ;) })) (if_statement "if (uVar33 == 0) {\n    ppVar12->do_filter = '\b';\n    goto LAB_0003ca48;\n  }" if (parenthesized_expression "(uVar33 == 0)" ( (binary_expression "uVar33 == 0" identifier == number_literal) )) (compound_statement "{\n    ppVar12->do_filter = '\b';\n    goto LAB_0003ca48;\n  }" { (expression_statement "ppVar12->do_filter = '\b';" (assignment_expression "ppVar12->do_filter = '\b'" (field_expression "ppVar12->do_filter" identifier -> field_identifier) = (char_literal "'\b'" ' escape_sequence ')) ;) (goto_statement "goto LAB_0003ca48;" goto statement_identifier ;) })) (expression_statement "pVar30 = (png_byte)uVar33;" (assignment_expression "pVar30 = (png_byte)uVar33" identifier = (cast_expression "(png_byte)uVar33" ( (type_descriptor "png_byte" type_identifier) ) identifier)) ;) (expression_statement "ppVar12->do_filter = pVar30;" (assignment_expression "ppVar12->do_filter = pVar30" (field_expression "ppVar12->do_filter" identifier -> field_identifier) = identifier) ;) (if_statement "if (((uVar33 & 0xf0) == 0) || (ppVar12->try_row != (png_bytep)0x0)) {\nLAB_0003ca24:\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if ((uVar33 & 0xe0) == 0) {\n      pVar2 = ppVar12->height;\n      pVar23 = ppVar12->width;\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    ppVar9 = (png_bytep)(**(code **)(pcVar36 + 0x169a0))(ppVar12,iVar10);\n    ppVar12->try_row = ppVar9;\n    iVar3 = -((int)(uVar33 << 0x1b) >> 0x1f);\n    if ((uVar33 & 0x20) != 0) {\n      iVar3 = iVar3 + 1;\n    }\n    if ((uVar33 & 0x40) != 0) {\n      iVar3 = iVar3 + 1;\n      if (-1 < (char)pVar30) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\nLAB_0003cb10:\n      ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n      ppVar12->tst_row = ppVar9;\n      goto LAB_0003ca24;\n    }\n    if (-1 < (char)pVar30) {\nLAB_0003cb38:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\n      if (iVar3 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if (iVar3 != 0) goto LAB_0003cb08;\n  }" if (parenthesized_expression "(((uVar33 & 0xf0) == 0) || (ppVar12->try_row != (png_bytep)0x0))" ( (binary_expression "((uVar33 & 0xf0) == 0) || (ppVar12->try_row != (png_bytep)0x0)" (parenthesized_expression "((uVar33 & 0xf0) == 0)" ( (binary_expression "(uVar33 & 0xf0) == 0" (parenthesized_expression "(uVar33 & 0xf0)" ( (binary_expression "uVar33 & 0xf0" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(ppVar12->try_row != (png_bytep)0x0)" ( (binary_expression "ppVar12->try_row != (png_bytep)0x0" (field_expression "ppVar12->try_row" identifier -> field_identifier) != (cast_expression "(png_bytep)0x0" ( (type_descriptor "png_bytep" type_identifier) ) number_literal)) ))) )) (compound_statement "{\nLAB_0003ca24:\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if ((uVar33 & 0xe0) == 0) {\n      pVar2 = ppVar12->height;\n      pVar23 = ppVar12->width;\n      goto LAB_0003ca48;\n    }\n  }" { (labeled_statement "LAB_0003ca24:\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);" statement_identifier : (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x169c0);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x169c0)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x169c0)" * (cast_expression "(code **)(pcVar36 + 0x169c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x169c0)" ( (binary_expression "pcVar36 + 0x169c0" identifier + number_literal) ))))) ;)) (if_statement "if ((uVar33 & 0xe0) == 0) {\n      pVar2 = ppVar12->height;\n      pVar23 = ppVar12->width;\n      goto LAB_0003ca48;\n    }" if (parenthesized_expression "((uVar33 & 0xe0) == 0)" ( (binary_expression "(uVar33 & 0xe0) == 0" (parenthesized_expression "(uVar33 & 0xe0)" ( (binary_expression "uVar33 & 0xe0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pVar2 = ppVar12->height;\n      pVar23 = ppVar12->width;\n      goto LAB_0003ca48;\n    }" { (expression_statement "pVar2 = ppVar12->height;" (assignment_expression "pVar2 = ppVar12->height" identifier = (field_expression "ppVar12->height" identifier -> field_identifier)) ;) (expression_statement "pVar23 = ppVar12->width;" (assignment_expression "pVar23 = ppVar12->width" identifier = (field_expression "ppVar12->width" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0003ca48;" goto statement_identifier ;) })) }) (else_clause "else {\n    ppVar9 = (png_bytep)(**(code **)(pcVar36 + 0x169a0))(ppVar12,iVar10);\n    ppVar12->try_row = ppVar9;\n    iVar3 = -((int)(uVar33 << 0x1b) >> 0x1f);\n    if ((uVar33 & 0x20) != 0) {\n      iVar3 = iVar3 + 1;\n    }\n    if ((uVar33 & 0x40) != 0) {\n      iVar3 = iVar3 + 1;\n      if (-1 < (char)pVar30) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\nLAB_0003cb10:\n      ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n      ppVar12->tst_row = ppVar9;\n      goto LAB_0003ca24;\n    }\n    if (-1 < (char)pVar30) {\nLAB_0003cb38:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\n      if (iVar3 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if (iVar3 != 0) goto LAB_0003cb08;\n  }" else (compound_statement "{\n    ppVar9 = (png_bytep)(**(code **)(pcVar36 + 0x169a0))(ppVar12,iVar10);\n    ppVar12->try_row = ppVar9;\n    iVar3 = -((int)(uVar33 << 0x1b) >> 0x1f);\n    if ((uVar33 & 0x20) != 0) {\n      iVar3 = iVar3 + 1;\n    }\n    if ((uVar33 & 0x40) != 0) {\n      iVar3 = iVar3 + 1;\n      if (-1 < (char)pVar30) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\nLAB_0003cb10:\n      ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n      ppVar12->tst_row = ppVar9;\n      goto LAB_0003ca24;\n    }\n    if (-1 < (char)pVar30) {\nLAB_0003cb38:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\n      if (iVar3 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar37 = *(code **)(pcVar36 + 0x169c0);\n    if (iVar3 != 0) goto LAB_0003cb08;\n  }" { (expression_statement "ppVar9 = (png_bytep)(**(code **)(pcVar36 + 0x169a0))(ppVar12,iVar10);" (assignment_expression "ppVar9 = (png_bytep)(**(code **)(pcVar36 + 0x169a0))(ppVar12,iVar10)" identifier = (call_expression "(png_bytep)(**(code **)(pcVar36 + 0x169a0))(ppVar12,iVar10)" (call_expression "(png_bytep)(**(code **)(pcVar36 + 0x169a0))" (parenthesized_expression "(png_bytep)" ( identifier )) (argument_list "(**(code **)(pcVar36 + 0x169a0))" ( (pointer_expression "**(code **)(pcVar36 + 0x169a0)" * (pointer_expression "*(code **)(pcVar36 + 0x169a0)" * (cast_expression "(code **)(pcVar36 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x169a0)" ( (binary_expression "pcVar36 + 0x169a0" identifier + number_literal) ))))) ))) (argument_list "(ppVar12,iVar10)" ( identifier , identifier )))) ;) (expression_statement "ppVar12->try_row = ppVar9;" (assignment_expression "ppVar12->try_row = ppVar9" (field_expression "ppVar12->try_row" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar3 = -((int)(uVar33 << 0x1b) >> 0x1f);" (assignment_expression "iVar3 = -((int)(uVar33 << 0x1b) >> 0x1f)" identifier = (unary_expression "-((int)(uVar33 << 0x1b) >> 0x1f)" - (parenthesized_expression "((int)(uVar33 << 0x1b) >> 0x1f)" ( (binary_expression "(int)(uVar33 << 0x1b) >> 0x1f" (cast_expression "(int)(uVar33 << 0x1b)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar33 << 0x1b)" ( (binary_expression "uVar33 << 0x1b" identifier << number_literal) ))) >> number_literal) )))) ;) (if_statement "if ((uVar33 & 0x20) != 0) {\n      iVar3 = iVar3 + 1;\n    }" if (parenthesized_expression "((uVar33 & 0x20) != 0)" ( (binary_expression "(uVar33 & 0x20) != 0" (parenthesized_expression "(uVar33 & 0x20)" ( (binary_expression "uVar33 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar3 = iVar3 + 1;\n    }" { (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) })) (if_statement "if ((uVar33 & 0x40) != 0) {\n      iVar3 = iVar3 + 1;\n      if (-1 < (char)pVar30) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\nLAB_0003cb10:\n      ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n      ppVar12->tst_row = ppVar9;\n      goto LAB_0003ca24;\n    }" if (parenthesized_expression "((uVar33 & 0x40) != 0)" ( (binary_expression "(uVar33 & 0x40) != 0" (parenthesized_expression "(uVar33 & 0x40)" ( (binary_expression "uVar33 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar3 = iVar3 + 1;\n      if (-1 < (char)pVar30) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\nLAB_0003cb10:\n      ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);\n      ppVar12->tst_row = ppVar9;\n      goto LAB_0003ca24;\n    }" { (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (if_statement "if (-1 < (char)pVar30) goto LAB_0003cb38;" if (parenthesized_expression "(-1 < (char)pVar30)" ( (binary_expression "-1 < (char)pVar30" number_literal < (cast_expression "(char)pVar30" ( (type_descriptor "char" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0003cb38;" goto statement_identifier ;)) (labeled_statement "LAB_0003cb08:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);" statement_identifier : (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x169a0);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x169a0)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x169a0)" * (cast_expression "(code **)(pcVar36 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x169a0)" ( (binary_expression "pcVar36 + 0x169a0" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0003cb10:\n      ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);" statement_identifier : (expression_statement "ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);" (assignment_expression "ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10)" identifier = (call_expression "(png_bytep)(*pcVar37)(ppVar12,iVar10)" (call_expression "(png_bytep)(*pcVar37)" (parenthesized_expression "(png_bytep)" ( identifier )) (argument_list "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) ))) (argument_list "(ppVar12,iVar10)" ( identifier , identifier )))) ;)) (expression_statement "ppVar12->tst_row = ppVar9;" (assignment_expression "ppVar12->tst_row = ppVar9" (field_expression "ppVar12->tst_row" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_0003ca24;" goto statement_identifier ;) })) (if_statement "if (-1 < (char)pVar30) {\nLAB_0003cb38:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\n      if (iVar3 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }" if (parenthesized_expression "(-1 < (char)pVar30)" ( (binary_expression "-1 < (char)pVar30" number_literal < (cast_expression "(char)pVar30" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_0003cb38:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);\n      if (iVar3 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }" { (labeled_statement "LAB_0003cb38:\n      pcVar37 = *(code **)(pcVar36 + 0x169a0);" statement_identifier : (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x169a0);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x169a0)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x169a0)" * (cast_expression "(code **)(pcVar36 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x169a0)" ( (binary_expression "pcVar36 + 0x169a0" identifier + number_literal) ))))) ;)) (if_statement "if (iVar3 < 2) goto LAB_0003ca24;" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0003ca24;" goto statement_identifier ;)) (goto_statement "goto LAB_0003cb10;" goto statement_identifier ;) })) (expression_statement "pcVar37 = *(code **)(pcVar36 + 0x169c0);" (assignment_expression "pcVar37 = *(code **)(pcVar36 + 0x169c0)" identifier = (pointer_expression "*(code **)(pcVar36 + 0x169c0)" * (cast_expression "(code **)(pcVar36 + 0x169c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x169c0)" ( (binary_expression "pcVar36 + 0x169c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) goto LAB_0003cb08;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003cb08;" goto statement_identifier ;)) }))) (expression_statement "ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10);" (assignment_expression "ppVar9 = (png_bytep)(*pcVar37)(ppVar12,iVar10)" identifier = (call_expression "(png_bytep)(*pcVar37)(ppVar12,iVar10)" (call_expression "(png_bytep)(*pcVar37)" (parenthesized_expression "(png_bytep)" ( identifier )) (argument_list "(*pcVar37)" ( (pointer_expression "*pcVar37" * identifier) ))) (argument_list "(ppVar12,iVar10)" ( identifier , identifier )))) ;) (expression_statement "pVar2 = ppVar12->height;" (assignment_expression "pVar2 = ppVar12->height" identifier = (field_expression "ppVar12->height" identifier -> field_identifier)) ;) (expression_statement "pVar23 = ppVar12->width;" (assignment_expression "pVar23 = ppVar12->width" identifier = (field_expression "ppVar12->width" identifier -> field_identifier)) ;) (expression_statement "ppVar12->prev_row = ppVar9;" (assignment_expression "ppVar12->prev_row = ppVar9" (field_expression "ppVar12->prev_row" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_0003ca48:\n  if ((ppVar12->interlaced != '\0') && ((ppVar12->transformations & 2) == 0)) {\n    ppVar12->num_rows = pVar2 + 7 >> 3;\n    ppVar12->usr_width = pVar23 + 7 >> 3;\n    return;\n  }" statement_identifier : (if_statement "if ((ppVar12->interlaced != '\0') && ((ppVar12->transformations & 2) == 0)) {\n    ppVar12->num_rows = pVar2 + 7 >> 3;\n    ppVar12->usr_width = pVar23 + 7 >> 3;\n    return;\n  }" if (parenthesized_expression "((ppVar12->interlaced != '\0') && ((ppVar12->transformations & 2) == 0))" ( (binary_expression "(ppVar12->interlaced != '\0') && ((ppVar12->transformations & 2) == 0)" (parenthesized_expression "(ppVar12->interlaced != '\0')" ( (binary_expression "ppVar12->interlaced != '\0'" (field_expression "ppVar12->interlaced" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((ppVar12->transformations & 2) == 0)" ( (binary_expression "(ppVar12->transformations & 2) == 0" (parenthesized_expression "(ppVar12->transformations & 2)" ( (binary_expression "ppVar12->transformations & 2" (field_expression "ppVar12->transformations" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    ppVar12->num_rows = pVar2 + 7 >> 3;\n    ppVar12->usr_width = pVar23 + 7 >> 3;\n    return;\n  }" { (expression_statement "ppVar12->num_rows = pVar2 + 7 >> 3;" (assignment_expression "ppVar12->num_rows = pVar2 + 7 >> 3" (field_expression "ppVar12->num_rows" identifier -> field_identifier) = (binary_expression "pVar2 + 7 >> 3" (binary_expression "pVar2 + 7" identifier + number_literal) >> number_literal)) ;) (expression_statement "ppVar12->usr_width = pVar23 + 7 >> 3;" (assignment_expression "ppVar12->usr_width = pVar23 + 7 >> 3" (field_expression "ppVar12->usr_width" identifier -> field_identifier) = (binary_expression "pVar23 + 7 >> 3" (binary_expression "pVar23 + 7" identifier + number_literal) >> number_literal)) ;) (return_statement "return;" return ;) }))) (expression_statement "ppVar12->num_rows = pVar2;" (assignment_expression "ppVar12->num_rows = pVar2" (field_expression "ppVar12->num_rows" identifier -> field_identifier) = identifier) ;) (expression_statement "ppVar12->usr_width = pVar23;" (assignment_expression "ppVar12->usr_width = pVar23" (field_expression "ppVar12->usr_width" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0003b374(int *param_1,int *param_2,int param_3,undefined *param_4)\n\n{\n  int iVar1;\n  code *******pppppppcVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  int *piVar7;\n  int iVar8;\n  code *******pppppppcVar9;\n  code ****ppppcVar10;\n  int *piVar11;\n  code **ppcVar12;\n  int iVar13;\n  code ******ppppppcVar14;\n  int *piVar15;\n  undefined *puVar16;\n  undefined1 *puVar17;\n  undefined *unaff_s0;\n  undefined1 *puVar18;\n  int *piVar19;\n  int *unaff_s1;\n  int *piVar20;\n  code ***pppcVar21;\n  code **ppcVar22;\n  uint uVar23;\n  int unaff_s2;\n  code *******pppppppcVar24;\n  code ****ppppcVar25;\n  char cVar26;\n  int *piVar27;\n  undefined1 *unaff_s4;\n  uint uVar28;\n  int *unaff_s5;\n  undefined4 unaff_s6;\n  code *******pppppppcVar29;\n  undefined4 *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  code ******ppppppcVar33;\n  code ******ppppppcVar34;\n  code *****pppppcVar35;\n  code ****ppppcVar36;\n  code ***pppcVar37;\n  code **ppcVar38;\n  code *pcVar39;\n  undefined *puVar40;\n  code *******unaff_s8;\n  int iVar41;\n  code *pcVar42;\n  undefined4 uVar43;\n  undefined1 auStack_c38 [4];\n  int iStack_c34;\n  int *piStack_c30;\n  int *piStack_c2c;\n  undefined1 *puStack_c28;\n  int iStack_c24;\n  uint uStack_c20;\n  code *pcStack_c1c;\n  code **ppcStack_c08;\n  uint uStack_c04;\n  uint uStack_c00;\n  uint uStack_bfc;\n  uint uStack_bf8;\n  code *pcStack_bf0;\n  uint uStack_be4;\n  int iStack_be0;\n  undefined1 auStack_bdc [4];\n  undefined1 auStack_bd8 [4];\n  undefined1 auStack_bd4 [4];\n  undefined1 auStack_bd0 [4];\n  undefined1 auStack_bcc [2];\n  undefined1 auStack_bca [2];\n  byte bStack_bc8;\n  byte bStack_bc7;\n  int *piStack_bc4;\n  undefined1 *puStack_bc0;\n  int *piStack_bbc;\n  code *pcStack_bb8;\n  int *piStack_bb4;\n  code ******ppppppcStack_bb0;\n  int *piStack_bac;\n  code ******ppppppcStack_ba8;\n  code *******pppppppcStack_ba4;\n  int *piStack_ba0;\n  undefined4 uStack_b9c;\n  code **ppcStack_b88;\n  ushort uStack_b82;\n  ushort uStack_b7e;\n  undefined1 auStack_b7c [3];\n  byte bStack_b79;\n  undefined1 auStack_b78 [3];\n  byte bStack_b75;\n  int iStack_b74;\n  int *piStack_b6c;\n  code **ppcStack_b68;\n  int *piStack_b64;\n  int *piStack_b60;\n  code *pcStack_b5c;\n  code ***pppcStack_b48;\n  undefined4 uStack_b3c;\n  undefined2 uStack_b38;\n  undefined1 uStack_b36;\n  code *pcStack_b34;\n  int *piStack_b2c;\n  code ***pppcStack_b28;\n  undefined1 *puStack_b24;\n  int *piStack_b20;\n  code *pcStack_b1c;\n  code ****ppppcStack_b08;\n  int iStack_b00;\n  undefined1 auStack_afc [4];\n  undefined1 uStack_af8;\n  code **ppcStack_af4;\n  undefined1 *puStack_af0;\n  code ******ppppppcStack_aec;\n  code ****ppppcStack_ae8;\n  undefined1 *puStack_ae4;\n  int iStack_ae0;\n  code *pcStack_adc;\n  code *****pppppcStack_ac8;\n  undefined1 uStack_abc;\n  undefined1 uStack_abb;\n  undefined1 auStack_aba [62];\n  code ***pppcStack_a7c;\n  int *piStack_a74;\n  int *piStack_a70;\n  code *******pppppppcStack_a6c;\n  int *piStack_a68;\n  code *******pppppppcStack_a64;\n  int *piStack_a60;\n  code *******pppppppcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  code ******ppppppcStack_a40;\n  code *****pppppcStack_a34;\n  code *****pppppcStack_a30;\n  int iStack_a2c;\n  code ******ppppppcStack_a28;\n  uint uStack_a24;\n  uint uStack_a20;\n  code ******ppppppcStack_a1c;\n  int iStack_a18;\n  undefined1 auStack_a14 [4];\n  undefined1 uStack_a10;\n  undefined1 uStack_a0f;\n  code *****apppppcStack_a0c [20];\n  code ****ppppcStack_9bc;\n  code ******ppppppcStack_9b8;\n  int *piStack_9b4;\n  undefined *puStack_9b0;\n  int *piStack_9ac;\n  code *******pppppppcStack_9a8;\n  int *piStack_9a4;\n  code *******pppppppcStack_9a0;\n  int *piStack_99c;\n  code *******pppppppcStack_998;\n  code *pcStack_994;\n  code ******ppppppcStack_988;\n  undefined1 *puStack_984;\n  code *******pppppppcStack_980;\n  int *piStack_97c;\n  code *****pppppcStack_978;\n  int *piStack_974;\n  undefined1 uStack_970;\n  int iStack_96c;\n  undefined *puStack_968;\n  int *piStack_964;\n  code *******pppppppcStack_960;\n  undefined1 *puStack_95c;\n  undefined *puStack_958;\n  code *pcStack_954;\n  undefined *puStack_940;\n  undefined *puStack_934;\n  code *******pppppppcStack_92c;\n  code *******pppppppcStack_928;\n  code *******pppppppcStack_924;\n  undefined4 uStack_520;\n  int iStack_4cc;\n  undefined *puStack_4c8;\n  int *piStack_4c4;\n  int iStack_4c0;\n  undefined *puStack_4bc;\n  undefined1 *puStack_4b8;\n  int *piStack_4b4;\n  undefined4 uStack_4b0;\n  code *******pppppppcStack_48c;\n  int local_484;\n  undefined4 local_480;\n  int local_47c;\n  undefined1 uStack_78;\n  undefined1 auStack_77 [83];\n  int local_24;\n  \n  puVar40 = PTR___stack_chk_guard_000534bc;\n  local_24 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar16 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  puStack_940 = puVar16 + 0x1fac0;\n  piVar31 = *(int **)(puVar16 + 0x17f8c);\n  pppppppcVar29 = (code *******)&uStack_520;\n  puStack_4bc = puVar40;\n  iStack_4cc = *piVar31;\n  pppppppcVar2 = pppppppcVar29;\n  puVar16 = param_4;\n  puStack_4c8 = unaff_s0;\n  piStack_4c4 = unaff_s1;\n  iStack_4c0 = unaff_s2;\n  puStack_4b8 = unaff_s4;\n  piStack_4b4 = unaff_s5;\n  uStack_4b0 = unaff_s6;\n  iVar1 = FUN_0003449c();\n  puVar40 = puStack_940;\n  if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  iVar1 = param_1[0x53];\n  pcVar32 = *(code **)(puVar40 + -0x7be4);\n  pcVar42 = FUN_0003b988;\n  piVar27 = param_1;\n  (*pcVar32)(param_1,iVar1);\n  pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);\n  piVar20 = *(int **)(pcVar32 + 0x17b34);\n  iStack_96c = *piVar20;\n  ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);\n  puStack_968 = unaff_s0;\n  piStack_964 = param_1;\n  pppppppcStack_960 = pppppppcStack_48c;\n  puStack_95c = &_gp_1;\n  puStack_958 = param_4;\n  pcStack_954 = pcVar42;\n  if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }\n  (*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);\n  (*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);\n  puVar17 = (undefined1 *)0x9;\n  uStack_970 = SUB41(puVar4,0);\n  piVar5 = piVar27;\n  ppppppcVar33 = &pppppcStack_978;\n  FUN_00039d28(piVar27,0x6f464673);\n  if (iStack_96c == *piVar20) {\n    return;\n  }\n  ppppppcVar34 = pppppppcStack_980[-0x1edb];\n  pcVar32 = FUN_0003ba7c;\n  (*(code *)ppppppcVar34)();\n  pppppppcVar24 = pppppppcStack_980;\n  ppppppcVar14 = ppppppcVar34 + 0x7d5d;\n  pppppcStack_a30 = ppppppcVar34[0x5e90];\n  pppppcStack_a34 = pppppcStack_978;\n  ppppcStack_9bc = *pppppcStack_a30;\n  piStack_a70 = piVar20;\n  ppppppcStack_a40 = ppppppcVar14;\n  ppppppcStack_9b8 = &pppppcStack_978;\n  piStack_9b4 = piVar20;\n  puStack_9b0 = puVar4;\n  piStack_9ac = piVar27;\n  pppppppcStack_9a8 = pppppppcVar2;\n  piStack_9a4 = param_2;\n  pppppppcStack_9a0 = pppppppcVar29;\n  piStack_99c = piVar31;\n  pppppppcStack_998 = unaff_s8;\n  pcStack_994 = pcVar32;\n  ppppppcStack_988 = ppppppcVar33;\n  puStack_984 = puVar17;\n  if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }\n  pppppcVar35 = ppppppcVar14[-0x1edb];\n  pcVar32 = FUN_0003bed8;\n  (*(code *)pppppcVar35)();\n  pppppcStack_ac8 = pppppcVar35 + 0x7c46;\n  ppppcVar25 = pppppcVar35[0x5d79];\n  pppcStack_a7c = *ppppcVar25;\n  ppppppcVar14 = ppppppcVar33;\n  puVar6 = puVar17;\n  pppppppcStack_a6c = pppppppcVar24;\n  piStack_a68 = piVar27;\n  pppppppcStack_a64 = pppppppcVar2;\n  piStack_a60 = param_2;\n  pppppppcStack_a5c = pppppppcVar29;\n  piStack_a58 = piVar31;\n  pcStack_a54 = pcVar32;\n  ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);\n  iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);\n  puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);\n  piVar31 = piVar5;\n  if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }\n  if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }\n  ppppcVar36 = pppppcStack_ac8[-0x1edb];\n  pcVar32 = FUN_0003c02c;\n  (*(code *)ppppcVar36)();\n  ppppcStack_b08 = ppppcVar36 + 0x7bf1;\n  pppcVar21 = ppppcVar36[0x5d24];\n  ppcStack_af4 = *pppcVar21;\n  pppcVar37 = ppppcVar36[0x5ced];\n  puStack_af0 = puVar18;\n  ppppppcStack_aec = ppppppcVar34;\n  ppppcStack_ae8 = ppppcVar25;\n  puStack_ae4 = puVar17;\n  iStack_ae0 = iVar1;\n  pcStack_adc = pcVar32;\n  if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }\n  (*(code *)pppcVar37)(&iStack_b00,ppppcVar10);\n  (*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);\n  piVar11 = (int *)&DAT_70485973;\n  uStack_af8 = SUB41(puVar6,0);\n  piVar27 = piVar31;\n  piVar15 = &iStack_b00;\n  FUN_00039d28();\n  if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }\n  pppcVar37 = ppppcStack_b08[-0x1edb];\n  pcVar32 = FUN_0003c120;\n  (*(code *)pppcVar37)();\n  pppcStack_b48 = pppcVar37 + 0x7bb4;\n  ppcVar22 = pppcVar37[0x5ce7];\n  pcStack_b34 = *ppcVar22;\n  piVar19 = &iStack_b00;\n  piVar7 = piVar27;\n  piStack_b2c = &iStack_b00;\n  pppcStack_b28 = pppcVar21;\n  puStack_b24 = puVar6;\n  piStack_b20 = piVar31;\n  pcStack_b1c = pcVar32;\n  if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }\n  if (pcStack_b34 == *ppcVar22) {\n    return;\n  }\n  ppcVar38 = pppcStack_b48[-0x1edb];\n  pcVar42 = FUN_0003c240;\n  (*(code *)ppcVar38)();\n  ppcStack_b88 = ppcVar38 + 0x7b6c;\n  pcVar32 = ppcVar38[0x5c9f];\n  piVar7[0xc9] = (int)ppcVar12;\n  iStack_b74 = *(int *)pcVar32;\n  piStack_b6c = piVar11;\n  ppcStack_b68 = ppcVar22;\n  piStack_b64 = piVar27;\n  piStack_b60 = piVar31;\n  pcStack_b5c = pcVar42;\n  (*ppcVar38[0x5c68])(auStack_b7c);\n  (*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);\n  iVar8 = 8;\n  iVar1 = 0x6163544c;\n  piVar31 = piVar7;\n  puVar17 = auStack_b7c;\n  FUN_00039d28();\n  if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }\n  pcVar39 = ppcStack_b88[0xffffe125];\n  uVar43 = 0x3c310;\n  (*pcVar39)();\n  pcVar42 = pcVar39 + 0x1ece0;\n  puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);\n  piVar27 = (int *)*puVar30;\n  uVar28 = (uint)uStack_b7e;\n  pcStack_bf0 = pcVar42;\n  piStack_bc4 = piVar27;\n  puStack_bc0 = auStack_b7c;\n  piStack_bbc = piVar7;\n  pcStack_bb8 = pcVar32;\n  piStack_bb4 = piVar15;\n  ppppppcStack_bb0 = ppppppcVar14;\n  piStack_bac = piVar5;\n  ppppppcStack_ba8 = ppppppcVar33;\n  pppppppcStack_ba4 = pppppppcVar9;\n  piStack_ba0 = piVar20;\n  uStack_b9c = uVar43;\n  if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }\n  pcVar32 = *(code **)(pcVar42 + -0x7b6c);\n  pcVar42 = FUN_0003c510;\n  (*pcVar32)();\n  piVar5 = *(int **)(pcVar32 + 0x16fac);\n  iStack_c34 = *piVar5;\n  piStack_c30 = piVar31;\n  piStack_c2c = piVar7;\n  puStack_c28 = puVar17;\n  iStack_c24 = iVar1;\n  uStack_c20 = uVar28;\n  pcStack_c1c = pcVar42;\n  if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }\n  (**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20);\n  (**(code **)(pcVar32 + 0x16ef8))(piVar20);\n  iVar1 = *piVar5;\n  piVar20[0xc3] = piVar20[0xc3] + 1;\n  if (iStack_c34 == iVar1) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x16f74);\n  iVar1 = iStack_c34;\n  (*pcVar32)();\n  if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;\n  if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;\n  FUN_00039dec();\n  while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }\n  (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));\nLAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);\n  pcVar32 = *(code **)(pcVar32 + 0x16dfc);\n  (*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));\n  uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);\n  if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }\n  iVar13 = uVar23 + 1;\n  pcVar42 = *(code **)(pcVar32 + 0x169a0);\n  *(char *)(iVar1 + 0x206) = (char)uVar28;\n  *(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);\n  puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);\n  *(undefined1 **)(iVar1 + 0x1d4) = puVar17;\n  *puVar17 = 0;\n  if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }\n  if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }\n  cVar26 = (char)uVar28;\n  *(char *)(iVar1 + 0x1fe) = cVar26;\n  if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }\n  uVar43 = (*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  *(undefined4 *)(iVar1 + 0x1d0) = uVar43;\nLAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }\n  *(int *)(iVar1 + 0x1b8) = iVar8;\n  *(int *)(iVar1 + 0x1bc) = iVar3;\n  return;\n}\n\n" (function_definition "void FUN_0003b374(int *param_1,int *param_2,int param_3,undefined *param_4)\n\n{\n  int iVar1;\n  code *******pppppppcVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  int *piVar7;\n  int iVar8;\n  code *******pppppppcVar9;\n  code ****ppppcVar10;\n  int *piVar11;\n  code **ppcVar12;\n  int iVar13;\n  code ******ppppppcVar14;\n  int *piVar15;\n  undefined *puVar16;\n  undefined1 *puVar17;\n  undefined *unaff_s0;\n  undefined1 *puVar18;\n  int *piVar19;\n  int *unaff_s1;\n  int *piVar20;\n  code ***pppcVar21;\n  code **ppcVar22;\n  uint uVar23;\n  int unaff_s2;\n  code *******pppppppcVar24;\n  code ****ppppcVar25;\n  char cVar26;\n  int *piVar27;\n  undefined1 *unaff_s4;\n  uint uVar28;\n  int *unaff_s5;\n  undefined4 unaff_s6;\n  code *******pppppppcVar29;\n  undefined4 *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  code ******ppppppcVar33;\n  code ******ppppppcVar34;\n  code *****pppppcVar35;\n  code ****ppppcVar36;\n  code ***pppcVar37;\n  code **ppcVar38;\n  code *pcVar39;\n  undefined *puVar40;\n  code *******unaff_s8;\n  int iVar41;\n  code *pcVar42;\n  undefined4 uVar43;\n  undefined1 auStack_c38 [4];\n  int iStack_c34;\n  int *piStack_c30;\n  int *piStack_c2c;\n  undefined1 *puStack_c28;\n  int iStack_c24;\n  uint uStack_c20;\n  code *pcStack_c1c;\n  code **ppcStack_c08;\n  uint uStack_c04;\n  uint uStack_c00;\n  uint uStack_bfc;\n  uint uStack_bf8;\n  code *pcStack_bf0;\n  uint uStack_be4;\n  int iStack_be0;\n  undefined1 auStack_bdc [4];\n  undefined1 auStack_bd8 [4];\n  undefined1 auStack_bd4 [4];\n  undefined1 auStack_bd0 [4];\n  undefined1 auStack_bcc [2];\n  undefined1 auStack_bca [2];\n  byte bStack_bc8;\n  byte bStack_bc7;\n  int *piStack_bc4;\n  undefined1 *puStack_bc0;\n  int *piStack_bbc;\n  code *pcStack_bb8;\n  int *piStack_bb4;\n  code ******ppppppcStack_bb0;\n  int *piStack_bac;\n  code ******ppppppcStack_ba8;\n  code *******pppppppcStack_ba4;\n  int *piStack_ba0;\n  undefined4 uStack_b9c;\n  code **ppcStack_b88;\n  ushort uStack_b82;\n  ushort uStack_b7e;\n  undefined1 auStack_b7c [3];\n  byte bStack_b79;\n  undefined1 auStack_b78 [3];\n  byte bStack_b75;\n  int iStack_b74;\n  int *piStack_b6c;\n  code **ppcStack_b68;\n  int *piStack_b64;\n  int *piStack_b60;\n  code *pcStack_b5c;\n  code ***pppcStack_b48;\n  undefined4 uStack_b3c;\n  undefined2 uStack_b38;\n  undefined1 uStack_b36;\n  code *pcStack_b34;\n  int *piStack_b2c;\n  code ***pppcStack_b28;\n  undefined1 *puStack_b24;\n  int *piStack_b20;\n  code *pcStack_b1c;\n  code ****ppppcStack_b08;\n  int iStack_b00;\n  undefined1 auStack_afc [4];\n  undefined1 uStack_af8;\n  code **ppcStack_af4;\n  undefined1 *puStack_af0;\n  code ******ppppppcStack_aec;\n  code ****ppppcStack_ae8;\n  undefined1 *puStack_ae4;\n  int iStack_ae0;\n  code *pcStack_adc;\n  code *****pppppcStack_ac8;\n  undefined1 uStack_abc;\n  undefined1 uStack_abb;\n  undefined1 auStack_aba [62];\n  code ***pppcStack_a7c;\n  int *piStack_a74;\n  int *piStack_a70;\n  code *******pppppppcStack_a6c;\n  int *piStack_a68;\n  code *******pppppppcStack_a64;\n  int *piStack_a60;\n  code *******pppppppcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  code ******ppppppcStack_a40;\n  code *****pppppcStack_a34;\n  code *****pppppcStack_a30;\n  int iStack_a2c;\n  code ******ppppppcStack_a28;\n  uint uStack_a24;\n  uint uStack_a20;\n  code ******ppppppcStack_a1c;\n  int iStack_a18;\n  undefined1 auStack_a14 [4];\n  undefined1 uStack_a10;\n  undefined1 uStack_a0f;\n  code *****apppppcStack_a0c [20];\n  code ****ppppcStack_9bc;\n  code ******ppppppcStack_9b8;\n  int *piStack_9b4;\n  undefined *puStack_9b0;\n  int *piStack_9ac;\n  code *******pppppppcStack_9a8;\n  int *piStack_9a4;\n  code *******pppppppcStack_9a0;\n  int *piStack_99c;\n  code *******pppppppcStack_998;\n  code *pcStack_994;\n  code ******ppppppcStack_988;\n  undefined1 *puStack_984;\n  code *******pppppppcStack_980;\n  int *piStack_97c;\n  code *****pppppcStack_978;\n  int *piStack_974;\n  undefined1 uStack_970;\n  int iStack_96c;\n  undefined *puStack_968;\n  int *piStack_964;\n  code *******pppppppcStack_960;\n  undefined1 *puStack_95c;\n  undefined *puStack_958;\n  code *pcStack_954;\n  undefined *puStack_940;\n  undefined *puStack_934;\n  code *******pppppppcStack_92c;\n  code *******pppppppcStack_928;\n  code *******pppppppcStack_924;\n  undefined4 uStack_520;\n  int iStack_4cc;\n  undefined *puStack_4c8;\n  int *piStack_4c4;\n  int iStack_4c0;\n  undefined *puStack_4bc;\n  undefined1 *puStack_4b8;\n  int *piStack_4b4;\n  undefined4 uStack_4b0;\n  code *******pppppppcStack_48c;\n  int local_484;\n  undefined4 local_480;\n  int local_47c;\n  undefined1 uStack_78;\n  undefined1 auStack_77 [83];\n  int local_24;\n  \n  puVar40 = PTR___stack_chk_guard_000534bc;\n  local_24 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar16 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  puStack_940 = puVar16 + 0x1fac0;\n  piVar31 = *(int **)(puVar16 + 0x17f8c);\n  pppppppcVar29 = (code *******)&uStack_520;\n  puStack_4bc = puVar40;\n  iStack_4cc = *piVar31;\n  pppppppcVar2 = pppppppcVar29;\n  puVar16 = param_4;\n  puStack_4c8 = unaff_s0;\n  piStack_4c4 = unaff_s1;\n  iStack_4c0 = unaff_s2;\n  puStack_4b8 = unaff_s4;\n  piStack_4b4 = unaff_s5;\n  uStack_4b0 = unaff_s6;\n  iVar1 = FUN_0003449c();\n  puVar40 = puStack_940;\n  if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  iVar1 = param_1[0x53];\n  pcVar32 = *(code **)(puVar40 + -0x7be4);\n  pcVar42 = FUN_0003b988;\n  piVar27 = param_1;\n  (*pcVar32)(param_1,iVar1);\n  pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);\n  piVar20 = *(int **)(pcVar32 + 0x17b34);\n  iStack_96c = *piVar20;\n  ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);\n  puStack_968 = unaff_s0;\n  piStack_964 = param_1;\n  pppppppcStack_960 = pppppppcStack_48c;\n  puStack_95c = &_gp_1;\n  puStack_958 = param_4;\n  pcStack_954 = pcVar42;\n  if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }\n  (*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);\n  (*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);\n  puVar17 = (undefined1 *)0x9;\n  uStack_970 = SUB41(puVar4,0);\n  piVar5 = piVar27;\n  ppppppcVar33 = &pppppcStack_978;\n  FUN_00039d28(piVar27,0x6f464673);\n  if (iStack_96c == *piVar20) {\n    return;\n  }\n  ppppppcVar34 = pppppppcStack_980[-0x1edb];\n  pcVar32 = FUN_0003ba7c;\n  (*(code *)ppppppcVar34)();\n  pppppppcVar24 = pppppppcStack_980;\n  ppppppcVar14 = ppppppcVar34 + 0x7d5d;\n  pppppcStack_a30 = ppppppcVar34[0x5e90];\n  pppppcStack_a34 = pppppcStack_978;\n  ppppcStack_9bc = *pppppcStack_a30;\n  piStack_a70 = piVar20;\n  ppppppcStack_a40 = ppppppcVar14;\n  ppppppcStack_9b8 = &pppppcStack_978;\n  piStack_9b4 = piVar20;\n  puStack_9b0 = puVar4;\n  piStack_9ac = piVar27;\n  pppppppcStack_9a8 = pppppppcVar2;\n  piStack_9a4 = param_2;\n  pppppppcStack_9a0 = pppppppcVar29;\n  piStack_99c = piVar31;\n  pppppppcStack_998 = unaff_s8;\n  pcStack_994 = pcVar32;\n  ppppppcStack_988 = ppppppcVar33;\n  puStack_984 = puVar17;\n  if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }\n  pppppcVar35 = ppppppcVar14[-0x1edb];\n  pcVar32 = FUN_0003bed8;\n  (*(code *)pppppcVar35)();\n  pppppcStack_ac8 = pppppcVar35 + 0x7c46;\n  ppppcVar25 = pppppcVar35[0x5d79];\n  pppcStack_a7c = *ppppcVar25;\n  ppppppcVar14 = ppppppcVar33;\n  puVar6 = puVar17;\n  pppppppcStack_a6c = pppppppcVar24;\n  piStack_a68 = piVar27;\n  pppppppcStack_a64 = pppppppcVar2;\n  piStack_a60 = param_2;\n  pppppppcStack_a5c = pppppppcVar29;\n  piStack_a58 = piVar31;\n  pcStack_a54 = pcVar32;\n  ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);\n  iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);\n  puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);\n  piVar31 = piVar5;\n  if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }\n  if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }\n  ppppcVar36 = pppppcStack_ac8[-0x1edb];\n  pcVar32 = FUN_0003c02c;\n  (*(code *)ppppcVar36)();\n  ppppcStack_b08 = ppppcVar36 + 0x7bf1;\n  pppcVar21 = ppppcVar36[0x5d24];\n  ppcStack_af4 = *pppcVar21;\n  pppcVar37 = ppppcVar36[0x5ced];\n  puStack_af0 = puVar18;\n  ppppppcStack_aec = ppppppcVar34;\n  ppppcStack_ae8 = ppppcVar25;\n  puStack_ae4 = puVar17;\n  iStack_ae0 = iVar1;\n  pcStack_adc = pcVar32;\n  if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }\n  (*(code *)pppcVar37)(&iStack_b00,ppppcVar10);\n  (*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);\n  piVar11 = (int *)&DAT_70485973;\n  uStack_af8 = SUB41(puVar6,0);\n  piVar27 = piVar31;\n  piVar15 = &iStack_b00;\n  FUN_00039d28();\n  if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }\n  pppcVar37 = ppppcStack_b08[-0x1edb];\n  pcVar32 = FUN_0003c120;\n  (*(code *)pppcVar37)();\n  pppcStack_b48 = pppcVar37 + 0x7bb4;\n  ppcVar22 = pppcVar37[0x5ce7];\n  pcStack_b34 = *ppcVar22;\n  piVar19 = &iStack_b00;\n  piVar7 = piVar27;\n  piStack_b2c = &iStack_b00;\n  pppcStack_b28 = pppcVar21;\n  puStack_b24 = puVar6;\n  piStack_b20 = piVar31;\n  pcStack_b1c = pcVar32;\n  if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }\n  if (pcStack_b34 == *ppcVar22) {\n    return;\n  }\n  ppcVar38 = pppcStack_b48[-0x1edb];\n  pcVar42 = FUN_0003c240;\n  (*(code *)ppcVar38)();\n  ppcStack_b88 = ppcVar38 + 0x7b6c;\n  pcVar32 = ppcVar38[0x5c9f];\n  piVar7[0xc9] = (int)ppcVar12;\n  iStack_b74 = *(int *)pcVar32;\n  piStack_b6c = piVar11;\n  ppcStack_b68 = ppcVar22;\n  piStack_b64 = piVar27;\n  piStack_b60 = piVar31;\n  pcStack_b5c = pcVar42;\n  (*ppcVar38[0x5c68])(auStack_b7c);\n  (*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);\n  iVar8 = 8;\n  iVar1 = 0x6163544c;\n  piVar31 = piVar7;\n  puVar17 = auStack_b7c;\n  FUN_00039d28();\n  if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }\n  pcVar39 = ppcStack_b88[0xffffe125];\n  uVar43 = 0x3c310;\n  (*pcVar39)();\n  pcVar42 = pcVar39 + 0x1ece0;\n  puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);\n  piVar27 = (int *)*puVar30;\n  uVar28 = (uint)uStack_b7e;\n  pcStack_bf0 = pcVar42;\n  piStack_bc4 = piVar27;\n  puStack_bc0 = auStack_b7c;\n  piStack_bbc = piVar7;\n  pcStack_bb8 = pcVar32;\n  piStack_bb4 = piVar15;\n  ppppppcStack_bb0 = ppppppcVar14;\n  piStack_bac = piVar5;\n  ppppppcStack_ba8 = ppppppcVar33;\n  pppppppcStack_ba4 = pppppppcVar9;\n  piStack_ba0 = piVar20;\n  uStack_b9c = uVar43;\n  if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }\n  pcVar32 = *(code **)(pcVar42 + -0x7b6c);\n  pcVar42 = FUN_0003c510;\n  (*pcVar32)();\n  piVar5 = *(int **)(pcVar32 + 0x16fac);\n  iStack_c34 = *piVar5;\n  piStack_c30 = piVar31;\n  piStack_c2c = piVar7;\n  puStack_c28 = puVar17;\n  iStack_c24 = iVar1;\n  uStack_c20 = uVar28;\n  pcStack_c1c = pcVar42;\n  if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }\n  (**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20);\n  (**(code **)(pcVar32 + 0x16ef8))(piVar20);\n  iVar1 = *piVar5;\n  piVar20[0xc3] = piVar20[0xc3] + 1;\n  if (iStack_c34 == iVar1) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x16f74);\n  iVar1 = iStack_c34;\n  (*pcVar32)();\n  if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;\n  if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;\n  FUN_00039dec();\n  while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }\n  (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));\nLAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);\n  pcVar32 = *(code **)(pcVar32 + 0x16dfc);\n  (*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));\n  uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);\n  if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }\n  iVar13 = uVar23 + 1;\n  pcVar42 = *(code **)(pcVar32 + 0x169a0);\n  *(char *)(iVar1 + 0x206) = (char)uVar28;\n  *(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);\n  puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);\n  *(undefined1 **)(iVar1 + 0x1d4) = puVar17;\n  *puVar17 = 0;\n  if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }\n  if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }\n  cVar26 = (char)uVar28;\n  *(char *)(iVar1 + 0x1fe) = cVar26;\n  if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }\n  uVar43 = (*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  *(undefined4 *)(iVar1 + 0x1d0) = uVar43;\nLAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }\n  *(int *)(iVar1 + 0x1b8) = iVar8;\n  *(int *)(iVar1 + 0x1bc) = iVar3;\n  return;\n}" primitive_type (function_declarator "FUN_0003b374(int *param_1,int *param_2,int param_3,undefined *param_4)" identifier (parameter_list "(int *param_1,int *param_2,int param_3,undefined *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  code *******pppppppcVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  int *piVar7;\n  int iVar8;\n  code *******pppppppcVar9;\n  code ****ppppcVar10;\n  int *piVar11;\n  code **ppcVar12;\n  int iVar13;\n  code ******ppppppcVar14;\n  int *piVar15;\n  undefined *puVar16;\n  undefined1 *puVar17;\n  undefined *unaff_s0;\n  undefined1 *puVar18;\n  int *piVar19;\n  int *unaff_s1;\n  int *piVar20;\n  code ***pppcVar21;\n  code **ppcVar22;\n  uint uVar23;\n  int unaff_s2;\n  code *******pppppppcVar24;\n  code ****ppppcVar25;\n  char cVar26;\n  int *piVar27;\n  undefined1 *unaff_s4;\n  uint uVar28;\n  int *unaff_s5;\n  undefined4 unaff_s6;\n  code *******pppppppcVar29;\n  undefined4 *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  code ******ppppppcVar33;\n  code ******ppppppcVar34;\n  code *****pppppcVar35;\n  code ****ppppcVar36;\n  code ***pppcVar37;\n  code **ppcVar38;\n  code *pcVar39;\n  undefined *puVar40;\n  code *******unaff_s8;\n  int iVar41;\n  code *pcVar42;\n  undefined4 uVar43;\n  undefined1 auStack_c38 [4];\n  int iStack_c34;\n  int *piStack_c30;\n  int *piStack_c2c;\n  undefined1 *puStack_c28;\n  int iStack_c24;\n  uint uStack_c20;\n  code *pcStack_c1c;\n  code **ppcStack_c08;\n  uint uStack_c04;\n  uint uStack_c00;\n  uint uStack_bfc;\n  uint uStack_bf8;\n  code *pcStack_bf0;\n  uint uStack_be4;\n  int iStack_be0;\n  undefined1 auStack_bdc [4];\n  undefined1 auStack_bd8 [4];\n  undefined1 auStack_bd4 [4];\n  undefined1 auStack_bd0 [4];\n  undefined1 auStack_bcc [2];\n  undefined1 auStack_bca [2];\n  byte bStack_bc8;\n  byte bStack_bc7;\n  int *piStack_bc4;\n  undefined1 *puStack_bc0;\n  int *piStack_bbc;\n  code *pcStack_bb8;\n  int *piStack_bb4;\n  code ******ppppppcStack_bb0;\n  int *piStack_bac;\n  code ******ppppppcStack_ba8;\n  code *******pppppppcStack_ba4;\n  int *piStack_ba0;\n  undefined4 uStack_b9c;\n  code **ppcStack_b88;\n  ushort uStack_b82;\n  ushort uStack_b7e;\n  undefined1 auStack_b7c [3];\n  byte bStack_b79;\n  undefined1 auStack_b78 [3];\n  byte bStack_b75;\n  int iStack_b74;\n  int *piStack_b6c;\n  code **ppcStack_b68;\n  int *piStack_b64;\n  int *piStack_b60;\n  code *pcStack_b5c;\n  code ***pppcStack_b48;\n  undefined4 uStack_b3c;\n  undefined2 uStack_b38;\n  undefined1 uStack_b36;\n  code *pcStack_b34;\n  int *piStack_b2c;\n  code ***pppcStack_b28;\n  undefined1 *puStack_b24;\n  int *piStack_b20;\n  code *pcStack_b1c;\n  code ****ppppcStack_b08;\n  int iStack_b00;\n  undefined1 auStack_afc [4];\n  undefined1 uStack_af8;\n  code **ppcStack_af4;\n  undefined1 *puStack_af0;\n  code ******ppppppcStack_aec;\n  code ****ppppcStack_ae8;\n  undefined1 *puStack_ae4;\n  int iStack_ae0;\n  code *pcStack_adc;\n  code *****pppppcStack_ac8;\n  undefined1 uStack_abc;\n  undefined1 uStack_abb;\n  undefined1 auStack_aba [62];\n  code ***pppcStack_a7c;\n  int *piStack_a74;\n  int *piStack_a70;\n  code *******pppppppcStack_a6c;\n  int *piStack_a68;\n  code *******pppppppcStack_a64;\n  int *piStack_a60;\n  code *******pppppppcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  code ******ppppppcStack_a40;\n  code *****pppppcStack_a34;\n  code *****pppppcStack_a30;\n  int iStack_a2c;\n  code ******ppppppcStack_a28;\n  uint uStack_a24;\n  uint uStack_a20;\n  code ******ppppppcStack_a1c;\n  int iStack_a18;\n  undefined1 auStack_a14 [4];\n  undefined1 uStack_a10;\n  undefined1 uStack_a0f;\n  code *****apppppcStack_a0c [20];\n  code ****ppppcStack_9bc;\n  code ******ppppppcStack_9b8;\n  int *piStack_9b4;\n  undefined *puStack_9b0;\n  int *piStack_9ac;\n  code *******pppppppcStack_9a8;\n  int *piStack_9a4;\n  code *******pppppppcStack_9a0;\n  int *piStack_99c;\n  code *******pppppppcStack_998;\n  code *pcStack_994;\n  code ******ppppppcStack_988;\n  undefined1 *puStack_984;\n  code *******pppppppcStack_980;\n  int *piStack_97c;\n  code *****pppppcStack_978;\n  int *piStack_974;\n  undefined1 uStack_970;\n  int iStack_96c;\n  undefined *puStack_968;\n  int *piStack_964;\n  code *******pppppppcStack_960;\n  undefined1 *puStack_95c;\n  undefined *puStack_958;\n  code *pcStack_954;\n  undefined *puStack_940;\n  undefined *puStack_934;\n  code *******pppppppcStack_92c;\n  code *******pppppppcStack_928;\n  code *******pppppppcStack_924;\n  undefined4 uStack_520;\n  int iStack_4cc;\n  undefined *puStack_4c8;\n  int *piStack_4c4;\n  int iStack_4c0;\n  undefined *puStack_4bc;\n  undefined1 *puStack_4b8;\n  int *piStack_4b4;\n  undefined4 uStack_4b0;\n  code *******pppppppcStack_48c;\n  int local_484;\n  undefined4 local_480;\n  int local_47c;\n  undefined1 uStack_78;\n  undefined1 auStack_77 [83];\n  int local_24;\n  \n  puVar40 = PTR___stack_chk_guard_000534bc;\n  local_24 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar16 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  puStack_940 = puVar16 + 0x1fac0;\n  piVar31 = *(int **)(puVar16 + 0x17f8c);\n  pppppppcVar29 = (code *******)&uStack_520;\n  puStack_4bc = puVar40;\n  iStack_4cc = *piVar31;\n  pppppppcVar2 = pppppppcVar29;\n  puVar16 = param_4;\n  puStack_4c8 = unaff_s0;\n  piStack_4c4 = unaff_s1;\n  iStack_4c0 = unaff_s2;\n  puStack_4b8 = unaff_s4;\n  piStack_4b4 = unaff_s5;\n  uStack_4b0 = unaff_s6;\n  iVar1 = FUN_0003449c();\n  puVar40 = puStack_940;\n  if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  iVar1 = param_1[0x53];\n  pcVar32 = *(code **)(puVar40 + -0x7be4);\n  pcVar42 = FUN_0003b988;\n  piVar27 = param_1;\n  (*pcVar32)(param_1,iVar1);\n  pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);\n  piVar20 = *(int **)(pcVar32 + 0x17b34);\n  iStack_96c = *piVar20;\n  ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);\n  puStack_968 = unaff_s0;\n  piStack_964 = param_1;\n  pppppppcStack_960 = pppppppcStack_48c;\n  puStack_95c = &_gp_1;\n  puStack_958 = param_4;\n  pcStack_954 = pcVar42;\n  if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }\n  (*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);\n  (*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);\n  puVar17 = (undefined1 *)0x9;\n  uStack_970 = SUB41(puVar4,0);\n  piVar5 = piVar27;\n  ppppppcVar33 = &pppppcStack_978;\n  FUN_00039d28(piVar27,0x6f464673);\n  if (iStack_96c == *piVar20) {\n    return;\n  }\n  ppppppcVar34 = pppppppcStack_980[-0x1edb];\n  pcVar32 = FUN_0003ba7c;\n  (*(code *)ppppppcVar34)();\n  pppppppcVar24 = pppppppcStack_980;\n  ppppppcVar14 = ppppppcVar34 + 0x7d5d;\n  pppppcStack_a30 = ppppppcVar34[0x5e90];\n  pppppcStack_a34 = pppppcStack_978;\n  ppppcStack_9bc = *pppppcStack_a30;\n  piStack_a70 = piVar20;\n  ppppppcStack_a40 = ppppppcVar14;\n  ppppppcStack_9b8 = &pppppcStack_978;\n  piStack_9b4 = piVar20;\n  puStack_9b0 = puVar4;\n  piStack_9ac = piVar27;\n  pppppppcStack_9a8 = pppppppcVar2;\n  piStack_9a4 = param_2;\n  pppppppcStack_9a0 = pppppppcVar29;\n  piStack_99c = piVar31;\n  pppppppcStack_998 = unaff_s8;\n  pcStack_994 = pcVar32;\n  ppppppcStack_988 = ppppppcVar33;\n  puStack_984 = puVar17;\n  if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }\n  pppppcVar35 = ppppppcVar14[-0x1edb];\n  pcVar32 = FUN_0003bed8;\n  (*(code *)pppppcVar35)();\n  pppppcStack_ac8 = pppppcVar35 + 0x7c46;\n  ppppcVar25 = pppppcVar35[0x5d79];\n  pppcStack_a7c = *ppppcVar25;\n  ppppppcVar14 = ppppppcVar33;\n  puVar6 = puVar17;\n  pppppppcStack_a6c = pppppppcVar24;\n  piStack_a68 = piVar27;\n  pppppppcStack_a64 = pppppppcVar2;\n  piStack_a60 = param_2;\n  pppppppcStack_a5c = pppppppcVar29;\n  piStack_a58 = piVar31;\n  pcStack_a54 = pcVar32;\n  ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);\n  iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);\n  puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);\n  piVar31 = piVar5;\n  if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }\n  if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }\n  ppppcVar36 = pppppcStack_ac8[-0x1edb];\n  pcVar32 = FUN_0003c02c;\n  (*(code *)ppppcVar36)();\n  ppppcStack_b08 = ppppcVar36 + 0x7bf1;\n  pppcVar21 = ppppcVar36[0x5d24];\n  ppcStack_af4 = *pppcVar21;\n  pppcVar37 = ppppcVar36[0x5ced];\n  puStack_af0 = puVar18;\n  ppppppcStack_aec = ppppppcVar34;\n  ppppcStack_ae8 = ppppcVar25;\n  puStack_ae4 = puVar17;\n  iStack_ae0 = iVar1;\n  pcStack_adc = pcVar32;\n  if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }\n  (*(code *)pppcVar37)(&iStack_b00,ppppcVar10);\n  (*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);\n  piVar11 = (int *)&DAT_70485973;\n  uStack_af8 = SUB41(puVar6,0);\n  piVar27 = piVar31;\n  piVar15 = &iStack_b00;\n  FUN_00039d28();\n  if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }\n  pppcVar37 = ppppcStack_b08[-0x1edb];\n  pcVar32 = FUN_0003c120;\n  (*(code *)pppcVar37)();\n  pppcStack_b48 = pppcVar37 + 0x7bb4;\n  ppcVar22 = pppcVar37[0x5ce7];\n  pcStack_b34 = *ppcVar22;\n  piVar19 = &iStack_b00;\n  piVar7 = piVar27;\n  piStack_b2c = &iStack_b00;\n  pppcStack_b28 = pppcVar21;\n  puStack_b24 = puVar6;\n  piStack_b20 = piVar31;\n  pcStack_b1c = pcVar32;\n  if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }\n  if (pcStack_b34 == *ppcVar22) {\n    return;\n  }\n  ppcVar38 = pppcStack_b48[-0x1edb];\n  pcVar42 = FUN_0003c240;\n  (*(code *)ppcVar38)();\n  ppcStack_b88 = ppcVar38 + 0x7b6c;\n  pcVar32 = ppcVar38[0x5c9f];\n  piVar7[0xc9] = (int)ppcVar12;\n  iStack_b74 = *(int *)pcVar32;\n  piStack_b6c = piVar11;\n  ppcStack_b68 = ppcVar22;\n  piStack_b64 = piVar27;\n  piStack_b60 = piVar31;\n  pcStack_b5c = pcVar42;\n  (*ppcVar38[0x5c68])(auStack_b7c);\n  (*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);\n  iVar8 = 8;\n  iVar1 = 0x6163544c;\n  piVar31 = piVar7;\n  puVar17 = auStack_b7c;\n  FUN_00039d28();\n  if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }\n  pcVar39 = ppcStack_b88[0xffffe125];\n  uVar43 = 0x3c310;\n  (*pcVar39)();\n  pcVar42 = pcVar39 + 0x1ece0;\n  puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);\n  piVar27 = (int *)*puVar30;\n  uVar28 = (uint)uStack_b7e;\n  pcStack_bf0 = pcVar42;\n  piStack_bc4 = piVar27;\n  puStack_bc0 = auStack_b7c;\n  piStack_bbc = piVar7;\n  pcStack_bb8 = pcVar32;\n  piStack_bb4 = piVar15;\n  ppppppcStack_bb0 = ppppppcVar14;\n  piStack_bac = piVar5;\n  ppppppcStack_ba8 = ppppppcVar33;\n  pppppppcStack_ba4 = pppppppcVar9;\n  piStack_ba0 = piVar20;\n  uStack_b9c = uVar43;\n  if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }\n  pcVar32 = *(code **)(pcVar42 + -0x7b6c);\n  pcVar42 = FUN_0003c510;\n  (*pcVar32)();\n  piVar5 = *(int **)(pcVar32 + 0x16fac);\n  iStack_c34 = *piVar5;\n  piStack_c30 = piVar31;\n  piStack_c2c = piVar7;\n  puStack_c28 = puVar17;\n  iStack_c24 = iVar1;\n  uStack_c20 = uVar28;\n  pcStack_c1c = pcVar42;\n  if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }\n  (**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20);\n  (**(code **)(pcVar32 + 0x16ef8))(piVar20);\n  iVar1 = *piVar5;\n  piVar20[0xc3] = piVar20[0xc3] + 1;\n  if (iStack_c34 == iVar1) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x16f74);\n  iVar1 = iStack_c34;\n  (*pcVar32)();\n  if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;\n  if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;\n  FUN_00039dec();\n  while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }\n  (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));\nLAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);\n  pcVar32 = *(code **)(pcVar32 + 0x16dfc);\n  (*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));\n  uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);\n  if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }\n  iVar13 = uVar23 + 1;\n  pcVar42 = *(code **)(pcVar32 + 0x169a0);\n  *(char *)(iVar1 + 0x206) = (char)uVar28;\n  *(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);\n  puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);\n  *(undefined1 **)(iVar1 + 0x1d4) = puVar17;\n  *puVar17 = 0;\n  if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }\n  if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }\n  cVar26 = (char)uVar28;\n  *(char *)(iVar1 + 0x1fe) = cVar26;\n  if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }\n  uVar43 = (*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  *(undefined4 *)(iVar1 + 0x1d0) = uVar43;\nLAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }\n  *(int *)(iVar1 + 0x1b8) = iVar8;\n  *(int *)(iVar1 + 0x1bc) = iVar3;\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "code *******pppppppcVar2;" type_identifier (pointer_declarator "*******pppppppcVar2" * (pointer_declarator "******pppppppcVar2" * (pointer_declarator "*****pppppppcVar2" * (pointer_declarator "****pppppppcVar2" * (pointer_declarator "***pppppppcVar2" * (pointer_declarator "**pppppppcVar2" * (pointer_declarator "*pppppppcVar2" * identifier))))))) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined1 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "code *******pppppppcVar9;" type_identifier (pointer_declarator "*******pppppppcVar9" * (pointer_declarator "******pppppppcVar9" * (pointer_declarator "*****pppppppcVar9" * (pointer_declarator "****pppppppcVar9" * (pointer_declarator "***pppppppcVar9" * (pointer_declarator "**pppppppcVar9" * (pointer_declarator "*pppppppcVar9" * identifier))))))) ;) (declaration "code ****ppppcVar10;" type_identifier (pointer_declarator "****ppppcVar10" * (pointer_declarator "***ppppcVar10" * (pointer_declarator "**ppppcVar10" * (pointer_declarator "*ppppcVar10" * identifier)))) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "code **ppcVar12;" type_identifier (pointer_declarator "**ppcVar12" * (pointer_declarator "*ppcVar12" * identifier)) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "code ******ppppppcVar14;" type_identifier (pointer_declarator "******ppppppcVar14" * (pointer_declarator "*****ppppppcVar14" * (pointer_declarator "****ppppppcVar14" * (pointer_declarator "***ppppppcVar14" * (pointer_declarator "**ppppppcVar14" * (pointer_declarator "*ppppppcVar14" * identifier)))))) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined1 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *unaff_s1;" primitive_type (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "code ***pppcVar21;" type_identifier (pointer_declarator "***pppcVar21" * (pointer_declarator "**pppcVar21" * (pointer_declarator "*pppcVar21" * identifier))) ;) (declaration "code **ppcVar22;" type_identifier (pointer_declarator "**ppcVar22" * (pointer_declarator "*ppcVar22" * identifier)) ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int unaff_s2;" primitive_type identifier ;) (declaration "code *******pppppppcVar24;" type_identifier (pointer_declarator "*******pppppppcVar24" * (pointer_declarator "******pppppppcVar24" * (pointer_declarator "*****pppppppcVar24" * (pointer_declarator "****pppppppcVar24" * (pointer_declarator "***pppppppcVar24" * (pointer_declarator "**pppppppcVar24" * (pointer_declarator "*pppppppcVar24" * identifier))))))) ;) (declaration "code ****ppppcVar25;" type_identifier (pointer_declarator "****ppppcVar25" * (pointer_declarator "***ppppcVar25" * (pointer_declarator "**ppppcVar25" * (pointer_declarator "*ppppcVar25" * identifier)))) ;) (declaration "char cVar26;" primitive_type identifier ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "undefined1 *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint uVar28;" type_identifier identifier ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined4 unaff_s6;" type_identifier identifier ;) (declaration "code *******pppppppcVar29;" type_identifier (pointer_declarator "*******pppppppcVar29" * (pointer_declarator "******pppppppcVar29" * (pointer_declarator "*****pppppppcVar29" * (pointer_declarator "****pppppppcVar29" * (pointer_declarator "***pppppppcVar29" * (pointer_declarator "**pppppppcVar29" * (pointer_declarator "*pppppppcVar29" * identifier))))))) ;) (declaration "undefined4 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int *piVar31;" primitive_type (pointer_declarator "*piVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "code ******ppppppcVar33;" type_identifier (pointer_declarator "******ppppppcVar33" * (pointer_declarator "*****ppppppcVar33" * (pointer_declarator "****ppppppcVar33" * (pointer_declarator "***ppppppcVar33" * (pointer_declarator "**ppppppcVar33" * (pointer_declarator "*ppppppcVar33" * identifier)))))) ;) (declaration "code ******ppppppcVar34;" type_identifier (pointer_declarator "******ppppppcVar34" * (pointer_declarator "*****ppppppcVar34" * (pointer_declarator "****ppppppcVar34" * (pointer_declarator "***ppppppcVar34" * (pointer_declarator "**ppppppcVar34" * (pointer_declarator "*ppppppcVar34" * identifier)))))) ;) (declaration "code *****pppppcVar35;" type_identifier (pointer_declarator "*****pppppcVar35" * (pointer_declarator "****pppppcVar35" * (pointer_declarator "***pppppcVar35" * (pointer_declarator "**pppppcVar35" * (pointer_declarator "*pppppcVar35" * identifier))))) ;) (declaration "code ****ppppcVar36;" type_identifier (pointer_declarator "****ppppcVar36" * (pointer_declarator "***ppppcVar36" * (pointer_declarator "**ppppcVar36" * (pointer_declarator "*ppppcVar36" * identifier)))) ;) (declaration "code ***pppcVar37;" type_identifier (pointer_declarator "***pppcVar37" * (pointer_declarator "**pppcVar37" * (pointer_declarator "*pppcVar37" * identifier))) ;) (declaration "code **ppcVar38;" type_identifier (pointer_declarator "**ppcVar38" * (pointer_declarator "*ppcVar38" * identifier)) ;) (declaration "code *pcVar39;" type_identifier (pointer_declarator "*pcVar39" * identifier) ;) (declaration "undefined *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "code *******unaff_s8;" type_identifier (pointer_declarator "*******unaff_s8" * (pointer_declarator "******unaff_s8" * (pointer_declarator "*****unaff_s8" * (pointer_declarator "****unaff_s8" * (pointer_declarator "***unaff_s8" * (pointer_declarator "**unaff_s8" * (pointer_declarator "*unaff_s8" * identifier))))))) ;) (declaration "int iVar41;" primitive_type identifier ;) (declaration "code *pcVar42;" type_identifier (pointer_declarator "*pcVar42" * identifier) ;) (declaration "undefined4 uVar43;" type_identifier identifier ;) (declaration "undefined1 auStack_c38 [4];" type_identifier (array_declarator "auStack_c38 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_c34;" primitive_type identifier ;) (declaration "int *piStack_c30;" primitive_type (pointer_declarator "*piStack_c30" * identifier) ;) (declaration "int *piStack_c2c;" primitive_type (pointer_declarator "*piStack_c2c" * identifier) ;) (declaration "undefined1 *puStack_c28;" type_identifier (pointer_declarator "*puStack_c28" * identifier) ;) (declaration "int iStack_c24;" primitive_type identifier ;) (declaration "uint uStack_c20;" type_identifier identifier ;) (declaration "code *pcStack_c1c;" type_identifier (pointer_declarator "*pcStack_c1c" * identifier) ;) (declaration "code **ppcStack_c08;" type_identifier (pointer_declarator "**ppcStack_c08" * (pointer_declarator "*ppcStack_c08" * identifier)) ;) (declaration "uint uStack_c04;" type_identifier identifier ;) (declaration "uint uStack_c00;" type_identifier identifier ;) (declaration "uint uStack_bfc;" type_identifier identifier ;) (declaration "uint uStack_bf8;" type_identifier identifier ;) (declaration "code *pcStack_bf0;" type_identifier (pointer_declarator "*pcStack_bf0" * identifier) ;) (declaration "uint uStack_be4;" type_identifier identifier ;) (declaration "int iStack_be0;" primitive_type identifier ;) (declaration "undefined1 auStack_bdc [4];" type_identifier (array_declarator "auStack_bdc [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_bd8 [4];" type_identifier (array_declarator "auStack_bd8 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_bd4 [4];" type_identifier (array_declarator "auStack_bd4 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_bd0 [4];" type_identifier (array_declarator "auStack_bd0 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_bcc [2];" type_identifier (array_declarator "auStack_bcc [2]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_bca [2];" type_identifier (array_declarator "auStack_bca [2]" identifier [ number_literal ]) ;) (declaration "byte bStack_bc8;" type_identifier identifier ;) (declaration "byte bStack_bc7;" type_identifier identifier ;) (declaration "int *piStack_bc4;" primitive_type (pointer_declarator "*piStack_bc4" * identifier) ;) (declaration "undefined1 *puStack_bc0;" type_identifier (pointer_declarator "*puStack_bc0" * identifier) ;) (declaration "int *piStack_bbc;" primitive_type (pointer_declarator "*piStack_bbc" * identifier) ;) (declaration "code *pcStack_bb8;" type_identifier (pointer_declarator "*pcStack_bb8" * identifier) ;) (declaration "int *piStack_bb4;" primitive_type (pointer_declarator "*piStack_bb4" * identifier) ;) (declaration "code ******ppppppcStack_bb0;" type_identifier (pointer_declarator "******ppppppcStack_bb0" * (pointer_declarator "*****ppppppcStack_bb0" * (pointer_declarator "****ppppppcStack_bb0" * (pointer_declarator "***ppppppcStack_bb0" * (pointer_declarator "**ppppppcStack_bb0" * (pointer_declarator "*ppppppcStack_bb0" * identifier)))))) ;) (declaration "int *piStack_bac;" primitive_type (pointer_declarator "*piStack_bac" * identifier) ;) (declaration "code ******ppppppcStack_ba8;" type_identifier (pointer_declarator "******ppppppcStack_ba8" * (pointer_declarator "*****ppppppcStack_ba8" * (pointer_declarator "****ppppppcStack_ba8" * (pointer_declarator "***ppppppcStack_ba8" * (pointer_declarator "**ppppppcStack_ba8" * (pointer_declarator "*ppppppcStack_ba8" * identifier)))))) ;) (declaration "code *******pppppppcStack_ba4;" type_identifier (pointer_declarator "*******pppppppcStack_ba4" * (pointer_declarator "******pppppppcStack_ba4" * (pointer_declarator "*****pppppppcStack_ba4" * (pointer_declarator "****pppppppcStack_ba4" * (pointer_declarator "***pppppppcStack_ba4" * (pointer_declarator "**pppppppcStack_ba4" * (pointer_declarator "*pppppppcStack_ba4" * identifier))))))) ;) (declaration "int *piStack_ba0;" primitive_type (pointer_declarator "*piStack_ba0" * identifier) ;) (declaration "undefined4 uStack_b9c;" type_identifier identifier ;) (declaration "code **ppcStack_b88;" type_identifier (pointer_declarator "**ppcStack_b88" * (pointer_declarator "*ppcStack_b88" * identifier)) ;) (declaration "ushort uStack_b82;" type_identifier identifier ;) (declaration "ushort uStack_b7e;" type_identifier identifier ;) (declaration "undefined1 auStack_b7c [3];" type_identifier (array_declarator "auStack_b7c [3]" identifier [ number_literal ]) ;) (declaration "byte bStack_b79;" type_identifier identifier ;) (declaration "undefined1 auStack_b78 [3];" type_identifier (array_declarator "auStack_b78 [3]" identifier [ number_literal ]) ;) (declaration "byte bStack_b75;" type_identifier identifier ;) (declaration "int iStack_b74;" primitive_type identifier ;) (declaration "int *piStack_b6c;" primitive_type (pointer_declarator "*piStack_b6c" * identifier) ;) (declaration "code **ppcStack_b68;" type_identifier (pointer_declarator "**ppcStack_b68" * (pointer_declarator "*ppcStack_b68" * identifier)) ;) (declaration "int *piStack_b64;" primitive_type (pointer_declarator "*piStack_b64" * identifier) ;) (declaration "int *piStack_b60;" primitive_type (pointer_declarator "*piStack_b60" * identifier) ;) (declaration "code *pcStack_b5c;" type_identifier (pointer_declarator "*pcStack_b5c" * identifier) ;) (declaration "code ***pppcStack_b48;" type_identifier (pointer_declarator "***pppcStack_b48" * (pointer_declarator "**pppcStack_b48" * (pointer_declarator "*pppcStack_b48" * identifier))) ;) (declaration "undefined4 uStack_b3c;" type_identifier identifier ;) (declaration "undefined2 uStack_b38;" type_identifier identifier ;) (declaration "undefined1 uStack_b36;" type_identifier identifier ;) (declaration "code *pcStack_b34;" type_identifier (pointer_declarator "*pcStack_b34" * identifier) ;) (declaration "int *piStack_b2c;" primitive_type (pointer_declarator "*piStack_b2c" * identifier) ;) (declaration "code ***pppcStack_b28;" type_identifier (pointer_declarator "***pppcStack_b28" * (pointer_declarator "**pppcStack_b28" * (pointer_declarator "*pppcStack_b28" * identifier))) ;) (declaration "undefined1 *puStack_b24;" type_identifier (pointer_declarator "*puStack_b24" * identifier) ;) (declaration "int *piStack_b20;" primitive_type (pointer_declarator "*piStack_b20" * identifier) ;) (declaration "code *pcStack_b1c;" type_identifier (pointer_declarator "*pcStack_b1c" * identifier) ;) (declaration "code ****ppppcStack_b08;" type_identifier (pointer_declarator "****ppppcStack_b08" * (pointer_declarator "***ppppcStack_b08" * (pointer_declarator "**ppppcStack_b08" * (pointer_declarator "*ppppcStack_b08" * identifier)))) ;) (declaration "int iStack_b00;" primitive_type identifier ;) (declaration "undefined1 auStack_afc [4];" type_identifier (array_declarator "auStack_afc [4]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_af8;" type_identifier identifier ;) (declaration "code **ppcStack_af4;" type_identifier (pointer_declarator "**ppcStack_af4" * (pointer_declarator "*ppcStack_af4" * identifier)) ;) (declaration "undefined1 *puStack_af0;" type_identifier (pointer_declarator "*puStack_af0" * identifier) ;) (declaration "code ******ppppppcStack_aec;" type_identifier (pointer_declarator "******ppppppcStack_aec" * (pointer_declarator "*****ppppppcStack_aec" * (pointer_declarator "****ppppppcStack_aec" * (pointer_declarator "***ppppppcStack_aec" * (pointer_declarator "**ppppppcStack_aec" * (pointer_declarator "*ppppppcStack_aec" * identifier)))))) ;) (declaration "code ****ppppcStack_ae8;" type_identifier (pointer_declarator "****ppppcStack_ae8" * (pointer_declarator "***ppppcStack_ae8" * (pointer_declarator "**ppppcStack_ae8" * (pointer_declarator "*ppppcStack_ae8" * identifier)))) ;) (declaration "undefined1 *puStack_ae4;" type_identifier (pointer_declarator "*puStack_ae4" * identifier) ;) (declaration "int iStack_ae0;" primitive_type identifier ;) (declaration "code *pcStack_adc;" type_identifier (pointer_declarator "*pcStack_adc" * identifier) ;) (declaration "code *****pppppcStack_ac8;" type_identifier (pointer_declarator "*****pppppcStack_ac8" * (pointer_declarator "****pppppcStack_ac8" * (pointer_declarator "***pppppcStack_ac8" * (pointer_declarator "**pppppcStack_ac8" * (pointer_declarator "*pppppcStack_ac8" * identifier))))) ;) (declaration "undefined1 uStack_abc;" type_identifier identifier ;) (declaration "undefined1 uStack_abb;" type_identifier identifier ;) (declaration "undefined1 auStack_aba [62];" type_identifier (array_declarator "auStack_aba [62]" identifier [ number_literal ]) ;) (declaration "code ***pppcStack_a7c;" type_identifier (pointer_declarator "***pppcStack_a7c" * (pointer_declarator "**pppcStack_a7c" * (pointer_declarator "*pppcStack_a7c" * identifier))) ;) (declaration "int *piStack_a74;" primitive_type (pointer_declarator "*piStack_a74" * identifier) ;) (declaration "int *piStack_a70;" primitive_type (pointer_declarator "*piStack_a70" * identifier) ;) (declaration "code *******pppppppcStack_a6c;" type_identifier (pointer_declarator "*******pppppppcStack_a6c" * (pointer_declarator "******pppppppcStack_a6c" * (pointer_declarator "*****pppppppcStack_a6c" * (pointer_declarator "****pppppppcStack_a6c" * (pointer_declarator "***pppppppcStack_a6c" * (pointer_declarator "**pppppppcStack_a6c" * (pointer_declarator "*pppppppcStack_a6c" * identifier))))))) ;) (declaration "int *piStack_a68;" primitive_type (pointer_declarator "*piStack_a68" * identifier) ;) (declaration "code *******pppppppcStack_a64;" type_identifier (pointer_declarator "*******pppppppcStack_a64" * (pointer_declarator "******pppppppcStack_a64" * (pointer_declarator "*****pppppppcStack_a64" * (pointer_declarator "****pppppppcStack_a64" * (pointer_declarator "***pppppppcStack_a64" * (pointer_declarator "**pppppppcStack_a64" * (pointer_declarator "*pppppppcStack_a64" * identifier))))))) ;) (declaration "int *piStack_a60;" primitive_type (pointer_declarator "*piStack_a60" * identifier) ;) (declaration "code *******pppppppcStack_a5c;" type_identifier (pointer_declarator "*******pppppppcStack_a5c" * (pointer_declarator "******pppppppcStack_a5c" * (pointer_declarator "*****pppppppcStack_a5c" * (pointer_declarator "****pppppppcStack_a5c" * (pointer_declarator "***pppppppcStack_a5c" * (pointer_declarator "**pppppppcStack_a5c" * (pointer_declarator "*pppppppcStack_a5c" * identifier))))))) ;) (declaration "int *piStack_a58;" primitive_type (pointer_declarator "*piStack_a58" * identifier) ;) (declaration "code *pcStack_a54;" type_identifier (pointer_declarator "*pcStack_a54" * identifier) ;) (declaration "code ******ppppppcStack_a40;" type_identifier (pointer_declarator "******ppppppcStack_a40" * (pointer_declarator "*****ppppppcStack_a40" * (pointer_declarator "****ppppppcStack_a40" * (pointer_declarator "***ppppppcStack_a40" * (pointer_declarator "**ppppppcStack_a40" * (pointer_declarator "*ppppppcStack_a40" * identifier)))))) ;) (declaration "code *****pppppcStack_a34;" type_identifier (pointer_declarator "*****pppppcStack_a34" * (pointer_declarator "****pppppcStack_a34" * (pointer_declarator "***pppppcStack_a34" * (pointer_declarator "**pppppcStack_a34" * (pointer_declarator "*pppppcStack_a34" * identifier))))) ;) (declaration "code *****pppppcStack_a30;" type_identifier (pointer_declarator "*****pppppcStack_a30" * (pointer_declarator "****pppppcStack_a30" * (pointer_declarator "***pppppcStack_a30" * (pointer_declarator "**pppppcStack_a30" * (pointer_declarator "*pppppcStack_a30" * identifier))))) ;) (declaration "int iStack_a2c;" primitive_type identifier ;) (declaration "code ******ppppppcStack_a28;" type_identifier (pointer_declarator "******ppppppcStack_a28" * (pointer_declarator "*****ppppppcStack_a28" * (pointer_declarator "****ppppppcStack_a28" * (pointer_declarator "***ppppppcStack_a28" * (pointer_declarator "**ppppppcStack_a28" * (pointer_declarator "*ppppppcStack_a28" * identifier)))))) ;) (declaration "uint uStack_a24;" type_identifier identifier ;) (declaration "uint uStack_a20;" type_identifier identifier ;) (declaration "code ******ppppppcStack_a1c;" type_identifier (pointer_declarator "******ppppppcStack_a1c" * (pointer_declarator "*****ppppppcStack_a1c" * (pointer_declarator "****ppppppcStack_a1c" * (pointer_declarator "***ppppppcStack_a1c" * (pointer_declarator "**ppppppcStack_a1c" * (pointer_declarator "*ppppppcStack_a1c" * identifier)))))) ;) (declaration "int iStack_a18;" primitive_type identifier ;) (declaration "undefined1 auStack_a14 [4];" type_identifier (array_declarator "auStack_a14 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 uStack_a10;" type_identifier identifier ;) (declaration "undefined1 uStack_a0f;" type_identifier identifier ;) (declaration "code *****apppppcStack_a0c [20];" type_identifier (pointer_declarator "*****apppppcStack_a0c [20]" * (pointer_declarator "****apppppcStack_a0c [20]" * (pointer_declarator "***apppppcStack_a0c [20]" * (pointer_declarator "**apppppcStack_a0c [20]" * (pointer_declarator "*apppppcStack_a0c [20]" * (array_declarator "apppppcStack_a0c [20]" identifier [ number_literal ])))))) ;) (declaration "code ****ppppcStack_9bc;" type_identifier (pointer_declarator "****ppppcStack_9bc" * (pointer_declarator "***ppppcStack_9bc" * (pointer_declarator "**ppppcStack_9bc" * (pointer_declarator "*ppppcStack_9bc" * identifier)))) ;) (declaration "code ******ppppppcStack_9b8;" type_identifier (pointer_declarator "******ppppppcStack_9b8" * (pointer_declarator "*****ppppppcStack_9b8" * (pointer_declarator "****ppppppcStack_9b8" * (pointer_declarator "***ppppppcStack_9b8" * (pointer_declarator "**ppppppcStack_9b8" * (pointer_declarator "*ppppppcStack_9b8" * identifier)))))) ;) (declaration "int *piStack_9b4;" primitive_type (pointer_declarator "*piStack_9b4" * identifier) ;) (declaration "undefined *puStack_9b0;" type_identifier (pointer_declarator "*puStack_9b0" * identifier) ;) (declaration "int *piStack_9ac;" primitive_type (pointer_declarator "*piStack_9ac" * identifier) ;) (declaration "code *******pppppppcStack_9a8;" type_identifier (pointer_declarator "*******pppppppcStack_9a8" * (pointer_declarator "******pppppppcStack_9a8" * (pointer_declarator "*****pppppppcStack_9a8" * (pointer_declarator "****pppppppcStack_9a8" * (pointer_declarator "***pppppppcStack_9a8" * (pointer_declarator "**pppppppcStack_9a8" * (pointer_declarator "*pppppppcStack_9a8" * identifier))))))) ;) (declaration "int *piStack_9a4;" primitive_type (pointer_declarator "*piStack_9a4" * identifier) ;) (declaration "code *******pppppppcStack_9a0;" type_identifier (pointer_declarator "*******pppppppcStack_9a0" * (pointer_declarator "******pppppppcStack_9a0" * (pointer_declarator "*****pppppppcStack_9a0" * (pointer_declarator "****pppppppcStack_9a0" * (pointer_declarator "***pppppppcStack_9a0" * (pointer_declarator "**pppppppcStack_9a0" * (pointer_declarator "*pppppppcStack_9a0" * identifier))))))) ;) (declaration "int *piStack_99c;" primitive_type (pointer_declarator "*piStack_99c" * identifier) ;) (declaration "code *******pppppppcStack_998;" type_identifier (pointer_declarator "*******pppppppcStack_998" * (pointer_declarator "******pppppppcStack_998" * (pointer_declarator "*****pppppppcStack_998" * (pointer_declarator "****pppppppcStack_998" * (pointer_declarator "***pppppppcStack_998" * (pointer_declarator "**pppppppcStack_998" * (pointer_declarator "*pppppppcStack_998" * identifier))))))) ;) (declaration "code *pcStack_994;" type_identifier (pointer_declarator "*pcStack_994" * identifier) ;) (declaration "code ******ppppppcStack_988;" type_identifier (pointer_declarator "******ppppppcStack_988" * (pointer_declarator "*****ppppppcStack_988" * (pointer_declarator "****ppppppcStack_988" * (pointer_declarator "***ppppppcStack_988" * (pointer_declarator "**ppppppcStack_988" * (pointer_declarator "*ppppppcStack_988" * identifier)))))) ;) (declaration "undefined1 *puStack_984;" type_identifier (pointer_declarator "*puStack_984" * identifier) ;) (declaration "code *******pppppppcStack_980;" type_identifier (pointer_declarator "*******pppppppcStack_980" * (pointer_declarator "******pppppppcStack_980" * (pointer_declarator "*****pppppppcStack_980" * (pointer_declarator "****pppppppcStack_980" * (pointer_declarator "***pppppppcStack_980" * (pointer_declarator "**pppppppcStack_980" * (pointer_declarator "*pppppppcStack_980" * identifier))))))) ;) (declaration "int *piStack_97c;" primitive_type (pointer_declarator "*piStack_97c" * identifier) ;) (declaration "code *****pppppcStack_978;" type_identifier (pointer_declarator "*****pppppcStack_978" * (pointer_declarator "****pppppcStack_978" * (pointer_declarator "***pppppcStack_978" * (pointer_declarator "**pppppcStack_978" * (pointer_declarator "*pppppcStack_978" * identifier))))) ;) (declaration "int *piStack_974;" primitive_type (pointer_declarator "*piStack_974" * identifier) ;) (declaration "undefined1 uStack_970;" type_identifier identifier ;) (declaration "int iStack_96c;" primitive_type identifier ;) (declaration "undefined *puStack_968;" type_identifier (pointer_declarator "*puStack_968" * identifier) ;) (declaration "int *piStack_964;" primitive_type (pointer_declarator "*piStack_964" * identifier) ;) (declaration "code *******pppppppcStack_960;" type_identifier (pointer_declarator "*******pppppppcStack_960" * (pointer_declarator "******pppppppcStack_960" * (pointer_declarator "*****pppppppcStack_960" * (pointer_declarator "****pppppppcStack_960" * (pointer_declarator "***pppppppcStack_960" * (pointer_declarator "**pppppppcStack_960" * (pointer_declarator "*pppppppcStack_960" * identifier))))))) ;) (declaration "undefined1 *puStack_95c;" type_identifier (pointer_declarator "*puStack_95c" * identifier) ;) (declaration "undefined *puStack_958;" type_identifier (pointer_declarator "*puStack_958" * identifier) ;) (declaration "code *pcStack_954;" type_identifier (pointer_declarator "*pcStack_954" * identifier) ;) (declaration "undefined *puStack_940;" type_identifier (pointer_declarator "*puStack_940" * identifier) ;) (declaration "undefined *puStack_934;" type_identifier (pointer_declarator "*puStack_934" * identifier) ;) (declaration "code *******pppppppcStack_92c;" type_identifier (pointer_declarator "*******pppppppcStack_92c" * (pointer_declarator "******pppppppcStack_92c" * (pointer_declarator "*****pppppppcStack_92c" * (pointer_declarator "****pppppppcStack_92c" * (pointer_declarator "***pppppppcStack_92c" * (pointer_declarator "**pppppppcStack_92c" * (pointer_declarator "*pppppppcStack_92c" * identifier))))))) ;) (declaration "code *******pppppppcStack_928;" type_identifier (pointer_declarator "*******pppppppcStack_928" * (pointer_declarator "******pppppppcStack_928" * (pointer_declarator "*****pppppppcStack_928" * (pointer_declarator "****pppppppcStack_928" * (pointer_declarator "***pppppppcStack_928" * (pointer_declarator "**pppppppcStack_928" * (pointer_declarator "*pppppppcStack_928" * identifier))))))) ;) (declaration "code *******pppppppcStack_924;" type_identifier (pointer_declarator "*******pppppppcStack_924" * (pointer_declarator "******pppppppcStack_924" * (pointer_declarator "*****pppppppcStack_924" * (pointer_declarator "****pppppppcStack_924" * (pointer_declarator "***pppppppcStack_924" * (pointer_declarator "**pppppppcStack_924" * (pointer_declarator "*pppppppcStack_924" * identifier))))))) ;) (declaration "undefined4 uStack_520;" type_identifier identifier ;) (declaration "int iStack_4cc;" primitive_type identifier ;) (declaration "undefined *puStack_4c8;" type_identifier (pointer_declarator "*puStack_4c8" * identifier) ;) (declaration "int *piStack_4c4;" primitive_type (pointer_declarator "*piStack_4c4" * identifier) ;) (declaration "int iStack_4c0;" primitive_type identifier ;) (declaration "undefined *puStack_4bc;" type_identifier (pointer_declarator "*puStack_4bc" * identifier) ;) (declaration "undefined1 *puStack_4b8;" type_identifier (pointer_declarator "*puStack_4b8" * identifier) ;) (declaration "int *piStack_4b4;" primitive_type (pointer_declarator "*piStack_4b4" * identifier) ;) (declaration "undefined4 uStack_4b0;" type_identifier identifier ;) (declaration "code *******pppppppcStack_48c;" type_identifier (pointer_declarator "*******pppppppcStack_48c" * (pointer_declarator "******pppppppcStack_48c" * (pointer_declarator "*****pppppppcStack_48c" * (pointer_declarator "****pppppppcStack_48c" * (pointer_declarator "***pppppppcStack_48c" * (pointer_declarator "**pppppppcStack_48c" * (pointer_declarator "*pppppppcStack_48c" * identifier))))))) ;) (declaration "int local_484;" primitive_type identifier ;) (declaration "undefined4 local_480;" type_identifier identifier ;) (declaration "int local_47c;" primitive_type identifier ;) (declaration "undefined1 uStack_78;" type_identifier identifier ;) (declaration "undefined1 auStack_77 [83];" type_identifier (array_declarator "auStack_77 [83]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar40 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar40 = PTR___stack_chk_guard_000534bc" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "local_24 = *(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))) ;) (if_statement "if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }" if (parenthesized_expression "(param_4 == (undefined *)0xffffffff)" ( (binary_expression "param_4 == (undefined *)0xffffffff" identifier == (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }" { (expression_statement "param_4 = (undefined *)0x0;" (assignment_expression "param_4 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0003b1e0();" (call_expression "FUN_0003b1e0()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }" statement_identifier : (if_statement "if (local_24 == *(int *)puVar40) {\n      return;\n    }" if (parenthesized_expression "(local_24 == *(int *)puVar40)" ( (binary_expression "local_24 == *(int *)puVar40" identifier == (pointer_expression "*(int *)puVar40" * (cast_expression "(int *)puVar40" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) }))) }) (else_clause "else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }" else (compound_statement "{\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }" { (if_statement "if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }" if (parenthesized_expression "(param_4 == (undefined *)0x0)" ( (binary_expression "param_4 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }" { (expression_statement "unaff_s4 = &uStack_78;" (assignment_expression "unaff_s4 = &uStack_78" identifier = (pointer_expression "&uStack_78" & identifier)) ;) (expression_statement "iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);" (assignment_expression "iVar1 = FUN_0003449c(param_1,param_2,unaff_s4)" identifier = (call_expression "FUN_0003449c(param_1,param_2,unaff_s4)" identifier (argument_list "(param_1,param_2,unaff_s4)" ( identifier , identifier , identifier )))) ;) (expression_statement "unaff_s1 = param_1;" (assignment_expression "unaff_s1 = param_1" identifier = identifier) ;) (expression_statement "unaff_s2 = param_3;" (assignment_expression "unaff_s2 = param_3" identifier = identifier) ;) (if_statement "if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }" { (expression_statement "unaff_s0 = (undefined *)(iVar1 + 2);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 2)" identifier = (cast_expression "(undefined *)(iVar1 + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 2)" ( (binary_expression "iVar1 + 2" identifier + number_literal) )))) ;) (expression_statement "auStack_77[iVar1] = 0;" (assignment_expression "auStack_77[iVar1] = 0" (subscript_expression "auStack_77[iVar1]" identifier [ identifier ]) = number_literal) ;) (if_statement "if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n          local_480 = 0;\n        }" { (expression_statement "local_480 = 0;" (assignment_expression "local_480 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }" else (compound_statement "{\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }" { (expression_statement "local_480 = (*(code *)PTR_strlen_000533d4)(param_3);" (assignment_expression "local_480 = (*(code *)PTR_strlen_000533d4)(param_3)" identifier = (call_expression "(*(code *)PTR_strlen_000533d4)(param_3)" (parenthesized_expression "(*(code *)PTR_strlen_000533d4)" ( (pointer_expression "*(code *)PTR_strlen_000533d4" * (cast_expression "(code *)PTR_strlen_000533d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_3)" ( identifier )))) ;) }))) (expression_statement "unaff_s6 = 0x7a540000;" (assignment_expression "unaff_s6 = 0x7a540000" identifier = number_literal) ;) (expression_statement "unaff_s5 = &local_484;" (assignment_expression "unaff_s5 = &local_484" identifier = (pointer_expression "&local_484" & identifier)) ;) (expression_statement "local_47c = 0;" (assignment_expression "local_47c = 0" identifier = number_literal) ;) (expression_statement "param_4 = unaff_s0;" (assignment_expression "param_4 = unaff_s0" identifier = identifier) ;) (expression_statement "local_484 = param_3;" (assignment_expression "local_484 = param_3" identifier = identifier) ;) (expression_statement "iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);" (assignment_expression "iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5)" identifier = (call_expression "FUN_00039670(param_1,0x7a545874,unaff_s5)" identifier (argument_list "(param_1,0x7a545874,unaff_s5)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }" { (if_statement "if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }" { (expression_statement "FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);" (call_expression "FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c)" identifier (argument_list "(param_1,0x7a545874,unaff_s0 + local_47c)" ( identifier , number_literal , (binary_expression "unaff_s0 + local_47c" identifier + identifier) ))) ;) })) (expression_statement "(*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);" (call_expression "(*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0)" (parenthesized_expression "(*(code *)PTR_png_write_chunk_data_000534fc)" ( (pointer_expression "*(code *)PTR_png_write_chunk_data_000534fc" * (cast_expression "(code *)PTR_png_write_chunk_data_000534fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,unaff_s4,unaff_s0)" ( identifier , identifier , identifier ))) ;) (expression_statement "param_2 = unaff_s5;" (assignment_expression "param_2 = unaff_s5" identifier = identifier) ;) (expression_statement "FUN_00039bc4(param_1);" (call_expression "FUN_00039bc4(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_png_write_chunk_end_00053408)();" (call_expression "(*(code *)PTR_png_write_chunk_end_00053408)()" (parenthesized_expression "(*(code *)PTR_png_write_chunk_end_00053408)" ( (pointer_expression "*(code *)PTR_png_write_chunk_end_00053408" * (cast_expression "(code *)PTR_png_write_chunk_end_00053408" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0003b4a4;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);" (call_expression "(*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53])" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" ( (pointer_expression "*(code *)PTR_png_error_0005340c" * (cast_expression "(code *)PTR_png_error_0005340c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_1[0x53])" ( identifier , (subscript_expression "param_1[0x53]" identifier [ number_literal ]) ))) ;) })) (expression_statement "(*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);" (call_expression "(*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604)" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" ( (pointer_expression "*(code *)PTR_png_error_0005340c" * (cast_expression "(code *)PTR_png_error_0005340c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x2604)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x2604" identifier + number_literal) ))) ;) })) (expression_statement "param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);" (assignment_expression "param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4)" identifier = (cast_expression "(int *)(PTR_s_nt_0005301c + 0x25e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_nt_0005301c + 0x25e4)" ( (binary_expression "PTR_s_nt_0005301c + 0x25e4" identifier + number_literal) )))) ;) (expression_statement "(*(code *)PTR_png_error_0005340c)();" (call_expression "(*(code *)PTR_png_error_0005340c)()" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" ( (pointer_expression "*(code *)PTR_png_error_0005340c" * (cast_expression "(code *)PTR_png_error_0005340c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }))) (expression_statement "puVar16 = PTR___stack_chk_fail_00053484;" (assignment_expression "puVar16 = PTR___stack_chk_fail_00053484" identifier = identifier) ;) (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 "puStack_940 = puVar16 + 0x1fac0;" (assignment_expression "puStack_940 = puVar16 + 0x1fac0" identifier = (binary_expression "puVar16 + 0x1fac0" identifier + number_literal)) ;) (expression_statement "piVar31 = *(int **)(puVar16 + 0x17f8c);" (assignment_expression "piVar31 = *(int **)(puVar16 + 0x17f8c)" identifier = (pointer_expression "*(int **)(puVar16 + 0x17f8c)" * (cast_expression "(int **)(puVar16 + 0x17f8c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0x17f8c)" ( (binary_expression "puVar16 + 0x17f8c" identifier + number_literal) ))))) ;) (expression_statement "pppppppcVar29 = (code *******)&uStack_520;" (assignment_expression "pppppppcVar29 = (code *******)&uStack_520" identifier = (cast_expression "(code *******)&uStack_520" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&uStack_520" & identifier))) ;) (expression_statement "puStack_4bc = puVar40;" (assignment_expression "puStack_4bc = puVar40" identifier = identifier) ;) (expression_statement "iStack_4cc = *piVar31;" (assignment_expression "iStack_4cc = *piVar31" identifier = (pointer_expression "*piVar31" * identifier)) ;) (expression_statement "pppppppcVar2 = pppppppcVar29;" (assignment_expression "pppppppcVar2 = pppppppcVar29" identifier = identifier) ;) (expression_statement "puVar16 = param_4;" (assignment_expression "puVar16 = param_4" identifier = identifier) ;) (expression_statement "puStack_4c8 = unaff_s0;" (assignment_expression "puStack_4c8 = unaff_s0" identifier = identifier) ;) (expression_statement "piStack_4c4 = unaff_s1;" (assignment_expression "piStack_4c4 = unaff_s1" identifier = identifier) ;) (expression_statement "iStack_4c0 = unaff_s2;" (assignment_expression "iStack_4c0 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_4b8 = unaff_s4;" (assignment_expression "puStack_4b8 = unaff_s4" identifier = identifier) ;) (expression_statement "piStack_4b4 = unaff_s5;" (assignment_expression "piStack_4b4 = unaff_s5" identifier = identifier) ;) (expression_statement "uStack_4b0 = unaff_s6;" (assignment_expression "uStack_4b0 = unaff_s6" identifier = identifier) ;) (expression_statement "iVar1 = FUN_0003449c();" (assignment_expression "iVar1 = FUN_0003449c()" identifier = (call_expression "FUN_0003449c()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" identifier = identifier) ;) (if_statement "if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }" { (labeled_statement "LAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;" statement_identifier : (expression_statement "iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;" (assignment_expression "iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c" identifier = (binary_expression "*(int *)(puVar40 + -0x7fd4) + 0x261c" (pointer_expression "*(int *)(puVar40 + -0x7fd4)" * (cast_expression "(int *)(puVar40 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar40 + -0x7fd4)" ( (binary_expression "puVar40 + -0x7fd4" identifier + number_literal) )))) + number_literal)) ;)) (expression_statement "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8);" (call_expression "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8)" (parenthesized_expression "(**(code **)(puVar40 + -0x7be4))" ( (pointer_expression "**(code **)(puVar40 + -0x7be4)" * (pointer_expression "*(code **)(puVar40 + -0x7be4)" * (cast_expression "(code **)(puVar40 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7be4)" ( (binary_expression "puVar40 + -0x7be4" identifier + number_literal) ))))) )) (argument_list "(param_1,iVar8)" ( identifier , identifier ))) ;) (labeled_statement "LAB_0003b968:\n    puVar4 = puVar16;" statement_identifier : (expression_statement "puVar4 = puVar16;" (assignment_expression "puVar4 = puVar16" identifier = identifier) ;)) (expression_statement "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);" (call_expression "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650)" (parenthesized_expression "(**(code **)(puVar40 + -0x7be4))" ( (pointer_expression "**(code **)(puVar40 + -0x7be4)" * (pointer_expression "*(code **)(puVar40 + -0x7be4)" * (cast_expression "(code **)(puVar40 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7be4)" ( (binary_expression "puVar40 + -0x7be4" identifier + number_literal) ))))) )) (argument_list "(param_1,iVar8 + 0x2650)" ( identifier , (binary_expression "iVar8 + 0x2650" identifier + number_literal) ))) ;) }) (else_clause "else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" else (compound_statement "{\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" { (if_statement "if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }" { (if_statement "if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }" if (parenthesized_expression "(0 < (int)param_2)" ( (binary_expression "0 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }" { (if_statement "if (param_2 == (int *)0x1) goto LAB_0003b768;" if (parenthesized_expression "(param_2 == (int *)0x1)" ( (binary_expression "param_2 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003b768;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(puStack_940 + -0x7fd4);" (assignment_expression "iVar8 = *(int *)(puStack_940 + -0x7fd4)" identifier = (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" * (cast_expression "(int *)(puStack_940 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_940 + -0x7fd4)" ( (binary_expression "puStack_940 + -0x7fd4" identifier + number_literal) ))))) ;) (if_statement "if (param_2 != (int *)0x2) goto LAB_0003b938;" if (parenthesized_expression "(param_2 != (int *)0x2)" ( (binary_expression "param_2 != (int *)0x2" identifier != (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003b938;" goto statement_identifier ;)) (goto_statement "goto LAB_0003b5d0;" goto statement_identifier ;) })) (expression_statement "iVar8 = *(int *)(puStack_940 + -0x7fd4);" (assignment_expression "iVar8 = *(int *)(puStack_940 + -0x7fd4)" identifier = (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" * (cast_expression "(int *)(puStack_940 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_940 + -0x7fd4)" ( (binary_expression "puStack_940 + -0x7fd4" identifier + number_literal) ))))) ;) (if_statement "if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }" if (parenthesized_expression "(param_2 == (int *)0xffffffff)" ( (binary_expression "param_2 == (int *)0xffffffff" identifier == (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }" { (labeled_statement "LAB_0003b768:\n        puStack_934 = (undefined *)0x0;" statement_identifier : (expression_statement "puStack_934 = (undefined *)0x0;" (assignment_expression "puStack_934 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1)" * (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_520 + iVar1 + 1)" ( (binary_expression "(int)&uStack_520 + iVar1 + 1" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_520" & identifier)) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2)" * (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_520 + iVar1 + 2)" ( (binary_expression "(int)&uStack_520 + iVar1 + 2" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_520" & identifier)) + identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto joined_r0x0003b780;" goto statement_identifier ;) })) (labeled_statement "LAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);" statement_identifier : (expression_statement "(**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);" (call_expression "(**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7be4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7be4)" * (pointer_expression "*(code **)(puStack_940 + -0x7be4)" * (cast_expression "(code **)(puStack_940 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7be4)" ( (binary_expression "puStack_940 + -0x7be4" identifier + number_literal) ))))) )) (argument_list "(param_1,iVar8 + 0x2634)" ( identifier , (binary_expression "iVar8 + 0x2634" identifier + number_literal) ))) ;)) (labeled_statement "LAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();" statement_identifier : (expression_statement "(**(code **)(puVar40 + -0x7b6c))();" (call_expression "(**(code **)(puVar40 + -0x7b6c))()" (parenthesized_expression "(**(code **)(puVar40 + -0x7b6c))" ( (pointer_expression "**(code **)(puVar40 + -0x7b6c)" * (pointer_expression "*(code **)(puVar40 + -0x7b6c)" * (cast_expression "(code **)(puVar40 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7b6c)" ( (binary_expression "puVar40 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_0003b954;" goto statement_identifier ;) })) (labeled_statement "LAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;" statement_identifier : (expression_statement "puStack_934 = (undefined *)0x1;" (assignment_expression "puStack_934 = (undefined *)0x1" identifier = (cast_expression "(undefined *)0x1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1)" * (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_520 + iVar1 + 1)" ( (binary_expression "(int)&uStack_520 + iVar1 + 1" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_520" & identifier)) + identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2)" * (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_520 + iVar1 + 2)" ( (binary_expression "(int)&uStack_520 + iVar1 + 2" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_520" & identifier)) + identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "joined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" statement_identifier : (if_statement "if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" if (parenthesized_expression "(param_4 == (undefined *)0x0)" ( (binary_expression "param_4 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }" { (expression_statement "param_2 = (int *)0x1;" (assignment_expression "param_2 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);" (assignment_expression "param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" identifier = (cast_expression "(undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" ( (binary_expression "*(int *)(puStack_940 + -0x7fd4) + -0xc84" (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" * (cast_expression "(int *)(puStack_940 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_940 + -0x7fd4)" ( (binary_expression "puStack_940 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" else (compound_statement "{\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" { (expression_statement "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);" (assignment_expression "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4)" identifier = (call_expression "(**(code **)(puStack_940 + -0x7c1c))(param_4)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7c1c))" ( (pointer_expression "**(code **)(puStack_940 + -0x7c1c)" * (pointer_expression "*(code **)(puStack_940 + -0x7c1c)" * (cast_expression "(code **)(puStack_940 + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7c1c)" ( (binary_expression "puStack_940 + -0x7c1c" identifier + number_literal) ))))) )) (argument_list "(param_4)" ( identifier )))) ;) (expression_statement "param_2 = (int *)(iVar8 + 1);" (assignment_expression "param_2 = (int *)(iVar8 + 1)" identifier = (cast_expression "(int *)(iVar8 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) })))) (expression_statement "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);" (assignment_expression "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1)" identifier = (call_expression "(**(code **)(puStack_940 + -0x7c1c))(&_gp_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7c1c))" ( (pointer_expression "**(code **)(puStack_940 + -0x7c1c)" * (pointer_expression "*(code **)(puStack_940 + -0x7c1c)" * (cast_expression "(code **)(puStack_940 + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7c1c)" ( (binary_expression "puStack_940 + -0x7c1c" identifier + number_literal) ))))) )) (argument_list "(&_gp_1)" ( (pointer_expression "&_gp_1" & identifier) )))) ;) (expression_statement "unaff_s8 = (code *******)(iVar8 + 1);" (assignment_expression "unaff_s8 = (code *******)(iVar8 + 1)" identifier = (cast_expression "(code *******)(iVar8 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) (if_statement "if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }" if (parenthesized_expression "(pppppppcStack_48c != (code *******)0x0)" ( (binary_expression "pppppppcStack_48c != (code *******)0x0" identifier != (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) )) (compound_statement "{\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }" { (expression_statement "pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);" (assignment_expression "pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c)" identifier = (cast_expression "(code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7c1c))" ( (pointer_expression "**(code **)(puStack_940 + -0x7c1c)" * (pointer_expression "*(code **)(puStack_940 + -0x7c1c)" * (cast_expression "(code **)(puStack_940 + -0x7c1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7c1c)" ( (binary_expression "puStack_940 + -0x7c1c" identifier + number_literal) ))))) )) (argument_list "(pppppppcStack_48c)" ( identifier ))))) ;) (if_statement "if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;" if (parenthesized_expression "(param_2 <= (int *)(0x7fffffff - (iVar1 + 3)))" ( (binary_expression "param_2 <= (int *)(0x7fffffff - (iVar1 + 3))" identifier <= (cast_expression "(int *)(0x7fffffff - (iVar1 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffff - (iVar1 + 3))" ( (binary_expression "0x7fffffff - (iVar1 + 3)" number_literal - (parenthesized_expression "(iVar1 + 3)" ( (binary_expression "iVar1 + 3" identifier + number_literal) ))) )))) )) (goto_statement "goto LAB_0003b648;" goto statement_identifier ;)) (labeled_statement "LAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;" statement_identifier : (expression_statement "puVar4 = (undefined *)0x7fffffff;" (assignment_expression "puVar4 = (undefined *)0x7fffffff" identifier = (cast_expression "(undefined *)0x7fffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pppppppcStack_92c = pppppppcStack_48c;" (assignment_expression "pppppppcStack_92c = pppppppcStack_48c" identifier = identifier) ;) (if_statement "if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;" if (parenthesized_expression "(puStack_934 != (undefined *)0x0)" ( (binary_expression "puStack_934 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003b7e0;" goto statement_identifier ;)) (labeled_statement "LAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;" statement_identifier : (expression_statement "pppppppcStack_924 = (code *******)0x0;" (assignment_expression "pppppppcStack_924 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "unaff_s0 = (undefined *)(iVar1 + 3);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 3)" identifier = (cast_expression "(undefined *)(iVar1 + 3)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 3)" ( (binary_expression "iVar1 + 3" identifier + number_literal) )))) ;) (expression_statement "puVar16 = (undefined *)0x7fffffff;" (assignment_expression "puVar16 = (undefined *)0x7fffffff" identifier = (cast_expression "(undefined *)0x7fffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = *(int *)(puStack_940 + -0x7fd4);" (assignment_expression "iVar8 = *(int *)(puStack_940 + -0x7fd4)" identifier = (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" * (cast_expression "(int *)(puStack_940 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_940 + -0x7fd4)" ( (binary_expression "puStack_940 + -0x7fd4" identifier + number_literal) ))))) ;) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" identifier = identifier) ;) (expression_statement "pppppppcStack_92c = pppppppcStack_48c;" (assignment_expression "pppppppcStack_92c = pppppppcStack_48c" identifier = identifier) ;) (if_statement "if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }" if (parenthesized_expression "(pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4))" ( (binary_expression "pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)" identifier <= (cast_expression "(code *******)(0x7fffffff - (int)puVar4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(0x7fffffff - (int)puVar4)" ( (binary_expression "0x7fffffff - (int)puVar4" number_literal - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) (compound_statement "{\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }" { (expression_statement "pppppppcStack_924 = pppppppcStack_928;" (assignment_expression "pppppppcStack_924 = pppppppcStack_928" identifier = identifier) ;) (if_statement "if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }" { (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,pppppppcVar29,unaff_s0)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,param_4,param_2)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,&_gp_1,unaff_s8)" ( number_literal , (pointer_expression "&_gp_1" & identifier) , identifier ))) ;) }) (else_clause "else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }" else (compound_statement "{\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }" { (expression_statement "FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);" (call_expression "FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928)" identifier (argument_list "(param_1,0x69545874,puVar4 + (int)pppppppcStack_928)" ( identifier , number_literal , (binary_expression "puVar4 + (int)pppppppcStack_928" identifier + (cast_expression "(int)pppppppcStack_928" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,pppppppcVar29,unaff_s0)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,param_4,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,&_gp_1,unaff_s8)" ( identifier , (pointer_expression "&_gp_1" & identifier) , identifier ))) ;) }))) (expression_statement "pppppppcVar2 = pppppppcStack_924;" (assignment_expression "pppppppcVar2 = pppppppcStack_924" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,pppppppcStack_48c)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0003b710;" goto statement_identifier ;) })) (goto_statement "goto LAB_0003b968;" goto statement_identifier ;) })) (expression_statement "pppppppcStack_928 = (code *******)0x0;" (assignment_expression "pppppppcStack_928 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);" (assignment_expression "pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" identifier = (cast_expression "(code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" ( (binary_expression "*(int *)(puStack_940 + -0x7fd4) + -0xc84" (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" * (cast_expression "(int *)(puStack_940 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_940 + -0x7fd4)" ( (binary_expression "puStack_940 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;" if (parenthesized_expression "((int *)(0x7fffffff - (iVar1 + 3)) < param_2)" ( (binary_expression "(int *)(0x7fffffff - (iVar1 + 3)) < param_2" (cast_expression "(int *)(0x7fffffff - (iVar1 + 3))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x7fffffff - (iVar1 + 3))" ( (binary_expression "0x7fffffff - (iVar1 + 3)" number_literal - (parenthesized_expression "(iVar1 + 3)" ( (binary_expression "iVar1 + 3" identifier + number_literal) ))) ))) < identifier) )) (goto_statement "goto LAB_0003b7c8;" goto statement_identifier ;)) (labeled_statement "LAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);" statement_identifier : (expression_statement "puVar4 = (undefined *)((int)param_2 + iVar1 + 3);" (assignment_expression "puVar4 = (undefined *)((int)param_2 + iVar1 + 3)" identifier = (cast_expression "(undefined *)((int)param_2 + iVar1 + 3)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + iVar1 + 3)" ( (binary_expression "(int)param_2 + iVar1 + 3" (binary_expression "(int)param_2 + iVar1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;)) (if_statement "if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;" if (parenthesized_expression "((code *******)(0x7fffffff - (int)puVar4) < unaff_s8)" ( (binary_expression "(code *******)(0x7fffffff - (int)puVar4) < unaff_s8" (cast_expression "(code *******)(0x7fffffff - (int)puVar4)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(0x7fffffff - (int)puVar4)" ( (binary_expression "0x7fffffff - (int)puVar4" number_literal - (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) < identifier) )) (goto_statement "goto LAB_0003b7c8;" goto statement_identifier ;)) (expression_statement "puVar4 = puVar4 + (int)unaff_s8;" (assignment_expression "puVar4 = puVar4 + (int)unaff_s8" identifier = (binary_expression "puVar4 + (int)unaff_s8" identifier + (cast_expression "(int)unaff_s8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppppcStack_92c = pppppppcStack_48c;" (assignment_expression "pppppppcStack_92c = pppppppcStack_48c" identifier = identifier) ;) (if_statement "if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;" if (parenthesized_expression "(puStack_934 == (undefined *)0x0)" ( (binary_expression "puStack_934 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0003b670;" goto statement_identifier ;)) (labeled_statement "LAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;" statement_identifier : (expression_statement "pppppppcStack_924 = (code *******)0x0;" (assignment_expression "pppppppcStack_924 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;)) (expression_statement "unaff_s0 = (undefined *)(iVar1 + 3);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 3)" identifier = (cast_expression "(undefined *)(iVar1 + 3)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 3)" ( (binary_expression "iVar1 + 3" identifier + number_literal) )))) ;) (expression_statement "pppppppcStack_48c = (code *******)&pppppppcStack_92c;" (assignment_expression "pppppppcStack_48c = (code *******)&pppppppcStack_92c" identifier = (cast_expression "(code *******)&pppppppcStack_92c" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (pointer_expression "&pppppppcStack_92c" & identifier))) ;) (expression_statement "pppppppcVar2 = pppppppcStack_48c;" (assignment_expression "pppppppcVar2 = pppppppcStack_48c" identifier = identifier) ;) (expression_statement "puStack_934 = puVar4;" (assignment_expression "puStack_934 = puVar4" identifier = identifier) ;) (expression_statement "iVar8 = FUN_00039670(param_1,0x69545874);" (assignment_expression "iVar8 = FUN_00039670(param_1,0x69545874)" identifier = (call_expression "FUN_00039670(param_1,0x69545874)" identifier (argument_list "(param_1,0x69545874)" ( identifier , number_literal )))) ;) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }" { (expression_statement "pppppppcVar2 = unaff_s8;" (assignment_expression "pppppppcVar2 = unaff_s8" identifier = identifier) ;) (if_statement "if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }" if (parenthesized_expression "(param_1 == (int *)0x0)" ( (binary_expression "param_1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }" { (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,pppppppcVar29,unaff_s0)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,param_4,param_2)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(0,&_gp_1)" ( number_literal , (pointer_expression "&_gp_1" & identifier) ))) ;) (expression_statement "puVar16 = puVar4;" (assignment_expression "puVar16 = puVar4" identifier = identifier) ;) }) (else_clause "else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }" else (compound_statement "{\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }" { (expression_statement "FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);" (call_expression "FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924)" identifier (argument_list "(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924)" ( identifier , number_literal , (binary_expression "puStack_934 + (int)pppppppcStack_924" identifier + (cast_expression "(int)pppppppcStack_924" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,pppppppcVar29,unaff_s0)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,param_4,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" ( (pointer_expression "**(code **)(puStack_940 + -0x7af4)" * (pointer_expression "*(code **)(puStack_940 + -0x7af4)" * (cast_expression "(code **)(puStack_940 + -0x7af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7af4)" ( (binary_expression "puStack_940 + -0x7af4" identifier + number_literal) ))))) )) (argument_list "(param_1,&_gp_1)" ( identifier , (pointer_expression "&_gp_1" & identifier) ))) ;) (expression_statement "puVar16 = puVar4;" (assignment_expression "puVar16 = puVar4" identifier = identifier) ;) }))) (expression_statement "FUN_00039bc4(param_1,pppppppcStack_48c);" (call_expression "FUN_00039bc4(param_1,pppppppcStack_48c)" identifier (argument_list "(param_1,pppppppcStack_48c)" ( identifier , identifier ))) ;) (labeled_statement "LAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);" statement_identifier : (expression_statement "unaff_s0 = (undefined *)(iVar1 + 3);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 3)" identifier = (cast_expression "(undefined *)(iVar1 + 3)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 3)" ( (binary_expression "iVar1 + 3" identifier + number_literal) )))) ;)) (expression_statement "(**(code **)(puStack_940 + -0x7be8))(param_1);" (call_expression "(**(code **)(puStack_940 + -0x7be8))(param_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7be8))" ( (pointer_expression "**(code **)(puStack_940 + -0x7be8)" * (pointer_expression "*(code **)(puStack_940 + -0x7be8)" * (cast_expression "(code **)(puStack_940 + -0x7be8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_940 + -0x7be8)" ( (binary_expression "puStack_940 + -0x7be8" identifier + number_literal) ))))) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" identifier = identifier) ;) (if_statement "if (iStack_4cc == *piVar31) {\n        return;\n      }" if (parenthesized_expression "(iStack_4cc == *piVar31)" ( (binary_expression "iStack_4cc == *piVar31" identifier == (pointer_expression "*piVar31" * identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0003b948;" goto statement_identifier ;) })) }))) (expression_statement "iVar1 = param_1[0x53];" (assignment_expression "iVar1 = param_1[0x53]" identifier = (subscript_expression "param_1[0x53]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = *(code **)(puVar40 + -0x7be4);" (assignment_expression "pcVar32 = *(code **)(puVar40 + -0x7be4)" identifier = (pointer_expression "*(code **)(puVar40 + -0x7be4)" * (cast_expression "(code **)(puVar40 + -0x7be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar40 + -0x7be4)" ( (binary_expression "puVar40 + -0x7be4" identifier + number_literal) ))))) ;) (expression_statement "pcVar42 = FUN_0003b988;" (assignment_expression "pcVar42 = FUN_0003b988" identifier = identifier) ;) (expression_statement "piVar27 = param_1;" (assignment_expression "piVar27 = param_1" identifier = identifier) ;) (expression_statement "(*pcVar32)(param_1,iVar1);" (call_expression "(*pcVar32)(param_1,iVar1)" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(param_1,iVar1)" ( identifier , identifier ))) ;) (expression_statement "pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);" (assignment_expression "pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668)" identifier = (cast_expression "(code *******)(pcVar32 + 0x1f668)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pcVar32 + 0x1f668)" ( (binary_expression "pcVar32 + 0x1f668" identifier + number_literal) )))) ;) (expression_statement "piVar20 = *(int **)(pcVar32 + 0x17b34);" (assignment_expression "piVar20 = *(int **)(pcVar32 + 0x17b34)" identifier = (pointer_expression "*(int **)(pcVar32 + 0x17b34)" * (cast_expression "(int **)(pcVar32 + 0x17b34)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x17b34)" ( (binary_expression "pcVar32 + 0x17b34" identifier + number_literal) ))))) ;) (expression_statement "iStack_96c = *piVar20;" (assignment_expression "iStack_96c = *piVar20" identifier = (pointer_expression "*piVar20" * identifier)) ;) (expression_statement "ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);" (assignment_expression "ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50)" identifier = (pointer_expression "*(code *******)(pcVar32 + 0x17a50)" * (cast_expression "(code *******)(pcVar32 + 0x17a50)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(pcVar32 + 0x17a50)" ( (binary_expression "pcVar32 + 0x17a50" identifier + number_literal) ))))) ;) (expression_statement "puStack_968 = unaff_s0;" (assignment_expression "puStack_968 = unaff_s0" identifier = identifier) ;) (expression_statement "piStack_964 = param_1;" (assignment_expression "piStack_964 = param_1" identifier = identifier) ;) (expression_statement "pppppppcStack_960 = pppppppcStack_48c;" (assignment_expression "pppppppcStack_960 = pppppppcStack_48c" identifier = identifier) ;) (expression_statement "puStack_95c = &_gp_1;" (assignment_expression "puStack_95c = &_gp_1" identifier = (pointer_expression "&_gp_1" & identifier)) ;) (expression_statement "puStack_958 = param_4;" (assignment_expression "puStack_958 = param_4" identifier = identifier) ;) (expression_statement "pcStack_954 = pcVar42;" (assignment_expression "pcStack_954 = pcVar42" identifier = identifier) ;) (if_statement "if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }" if (parenthesized_expression "(1 < (int)puVar4)" ( (binary_expression "1 < (int)puVar4" number_literal < (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }" { (expression_statement "(**(code **)(pcVar32 + 0x17ab8))();" (call_expression "(**(code **)(pcVar32 + 0x17ab8))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x17ab8))" ( (pointer_expression "**(code **)(pcVar32 + 0x17ab8)" * (pointer_expression "*(code **)(pcVar32 + 0x17ab8)" * (cast_expression "(code **)(pcVar32 + 0x17ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x17ab8)" ( (binary_expression "pcVar32 + 0x17ab8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppppppcVar33 = pppppppcStack_980[-0x1f06];" (assignment_expression "ppppppcVar33 = pppppppcStack_980[-0x1f06]" identifier = (subscript_expression "pppppppcStack_980[-0x1f06]" identifier [ number_literal ])) ;) })) (expression_statement "(*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);" (call_expression "(*(code *)ppppppcVar33)(&pppppcStack_978,iVar1)" (parenthesized_expression "(*(code *)ppppppcVar33)" ( (pointer_expression "*(code *)ppppppcVar33" * (cast_expression "(code *)ppppppcVar33" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&pppppcStack_978,iVar1)" ( (pointer_expression "&pppppcStack_978" & identifier) , identifier ))) ;) (expression_statement "(*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);" (call_expression "(*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2)" (parenthesized_expression "(*(code *)pppppppcStack_980[-0x1f06])" ( (pointer_expression "*(code *)pppppppcStack_980[-0x1f06]" * (cast_expression "(code *)pppppppcStack_980[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppppcStack_980[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(&piStack_974,pppppppcVar2)" ( (pointer_expression "&piStack_974" & identifier) , identifier ))) ;) (expression_statement "puVar17 = (undefined1 *)0x9;" (assignment_expression "puVar17 = (undefined1 *)0x9" identifier = (cast_expression "(undefined1 *)0x9" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uStack_970 = SUB41(puVar4,0);" (assignment_expression "uStack_970 = SUB41(puVar4,0)" identifier = (call_expression "SUB41(puVar4,0)" identifier (argument_list "(puVar4,0)" ( identifier , number_literal )))) ;) (expression_statement "piVar5 = piVar27;" (assignment_expression "piVar5 = piVar27" identifier = identifier) ;) (expression_statement "ppppppcVar33 = &pppppcStack_978;" (assignment_expression "ppppppcVar33 = &pppppcStack_978" identifier = (pointer_expression "&pppppcStack_978" & identifier)) ;) (expression_statement "FUN_00039d28(piVar27,0x6f464673);" (call_expression "FUN_00039d28(piVar27,0x6f464673)" identifier (argument_list "(piVar27,0x6f464673)" ( identifier , number_literal ))) ;) (if_statement "if (iStack_96c == *piVar20) {\n    return;\n  }" if (parenthesized_expression "(iStack_96c == *piVar20)" ( (binary_expression "iStack_96c == *piVar20" identifier == (pointer_expression "*piVar20" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "ppppppcVar34 = pppppppcStack_980[-0x1edb];" (assignment_expression "ppppppcVar34 = pppppppcStack_980[-0x1edb]" identifier = (subscript_expression "pppppppcStack_980[-0x1edb]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = FUN_0003ba7c;" (assignment_expression "pcVar32 = FUN_0003ba7c" identifier = identifier) ;) (expression_statement "(*(code *)ppppppcVar34)();" (call_expression "(*(code *)ppppppcVar34)()" (parenthesized_expression "(*(code *)ppppppcVar34)" ( (pointer_expression "*(code *)ppppppcVar34" * (cast_expression "(code *)ppppppcVar34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pppppppcVar24 = pppppppcStack_980;" (assignment_expression "pppppppcVar24 = pppppppcStack_980" identifier = identifier) ;) (expression_statement "ppppppcVar14 = ppppppcVar34 + 0x7d5d;" (assignment_expression "ppppppcVar14 = ppppppcVar34 + 0x7d5d" identifier = (binary_expression "ppppppcVar34 + 0x7d5d" identifier + number_literal)) ;) (expression_statement "pppppcStack_a30 = ppppppcVar34[0x5e90];" (assignment_expression "pppppcStack_a30 = ppppppcVar34[0x5e90]" identifier = (subscript_expression "ppppppcVar34[0x5e90]" identifier [ number_literal ])) ;) (expression_statement "pppppcStack_a34 = pppppcStack_978;" (assignment_expression "pppppcStack_a34 = pppppcStack_978" identifier = identifier) ;) (expression_statement "ppppcStack_9bc = *pppppcStack_a30;" (assignment_expression "ppppcStack_9bc = *pppppcStack_a30" identifier = (pointer_expression "*pppppcStack_a30" * identifier)) ;) (expression_statement "piStack_a70 = piVar20;" (assignment_expression "piStack_a70 = piVar20" identifier = identifier) ;) (expression_statement "ppppppcStack_a40 = ppppppcVar14;" (assignment_expression "ppppppcStack_a40 = ppppppcVar14" identifier = identifier) ;) (expression_statement "ppppppcStack_9b8 = &pppppcStack_978;" (assignment_expression "ppppppcStack_9b8 = &pppppcStack_978" identifier = (pointer_expression "&pppppcStack_978" & identifier)) ;) (expression_statement "piStack_9b4 = piVar20;" (assignment_expression "piStack_9b4 = piVar20" identifier = identifier) ;) (expression_statement "puStack_9b0 = puVar4;" (assignment_expression "puStack_9b0 = puVar4" identifier = identifier) ;) (expression_statement "piStack_9ac = piVar27;" (assignment_expression "piStack_9ac = piVar27" identifier = identifier) ;) (expression_statement "pppppppcStack_9a8 = pppppppcVar2;" (assignment_expression "pppppppcStack_9a8 = pppppppcVar2" identifier = identifier) ;) (expression_statement "piStack_9a4 = param_2;" (assignment_expression "piStack_9a4 = param_2" identifier = identifier) ;) (expression_statement "pppppppcStack_9a0 = pppppppcVar29;" (assignment_expression "pppppppcStack_9a0 = pppppppcVar29" identifier = identifier) ;) (expression_statement "piStack_99c = piVar31;" (assignment_expression "piStack_99c = piVar31" identifier = identifier) ;) (expression_statement "pppppppcStack_998 = unaff_s8;" (assignment_expression "pppppppcStack_998 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_994 = pcVar32;" (assignment_expression "pcStack_994 = pcVar32" identifier = identifier) ;) (expression_statement "ppppppcStack_988 = ppppppcVar33;" (assignment_expression "ppppppcStack_988 = ppppppcVar33" identifier = identifier) ;) (expression_statement "puStack_984 = puVar17;" (assignment_expression "puStack_984 = puVar17" identifier = identifier) ;) (if_statement "if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }" if (parenthesized_expression "((int)pppppppcStack_980 < 4)" ( (binary_expression "(int)pppppppcStack_980 < 4" (cast_expression "(int)pppppppcStack_980" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }" { (expression_statement "ppppppcVar33 = apppppcStack_a0c;" (assignment_expression "ppppppcVar33 = apppppcStack_a0c" identifier = identifier) ;) (expression_statement "ppppppcStack_a1c = ppppppcVar33;" (assignment_expression "ppppppcStack_a1c = ppppppcVar33" identifier = identifier) ;) (expression_statement "iVar1 = FUN_0003449c();" (assignment_expression "iVar1 = FUN_0003449c()" identifier = (call_expression "FUN_0003449c()" identifier (argument_list "()" ( )))) ;) (expression_statement "ppppppcVar14 = ppppppcStack_a40;" (assignment_expression "ppppppcVar14 = ppppppcStack_a40" identifier = identifier) ;) (expression_statement "piStack_a70 = piVar5;" (assignment_expression "piStack_a70 = piVar5" identifier = identifier) ;) (if_statement "if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }" { (expression_statement "(*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ef9])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ef9]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ef9]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ef9]" identifier [ number_literal ]))) )) (argument_list "(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2)" ( identifier , (binary_expression "ppppppcStack_a40[-0x1ff5] + 0x9b2" (subscript_expression "ppppppcStack_a40[-0x1ff5]" identifier [ number_literal ]) + number_literal) ))) ;) (expression_statement "pppppppcVar2 = (code *******)0x0;" (assignment_expression "pppppppcVar2 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (goto_statement "goto LAB_0003bebc;" goto statement_identifier ;) })) (expression_statement "iStack_a2c = iVar1 + 1;" (assignment_expression "iStack_a2c = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) (expression_statement "piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);" (assignment_expression "piVar27 = (int *)(uint)(piStack_97c != (int *)0x0)" identifier = (cast_expression "(int *)(uint)(piStack_97c != (int *)0x0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(piStack_97c != (int *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piStack_97c != (int *)0x0)" ( (binary_expression "piStack_97c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))))) ;) (expression_statement "uStack_a24 = (uint)pppppppcVar24 & 0xff;" (assignment_expression "uStack_a24 = (uint)pppppppcVar24 & 0xff" identifier = (binary_expression "(uint)pppppppcVar24 & 0xff" (cast_expression "(uint)pppppppcVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);" (assignment_expression "iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34)" identifier = (call_expression "(*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f07])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f07]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f07]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f07]" identifier [ number_literal ]))) )) (argument_list "(pppppcStack_a34)" ( identifier )))) ;) (expression_statement "ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);" (assignment_expression "ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8)" identifier = (cast_expression "(code ******)((int)piVar27 + iVar8)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((int)piVar27 + iVar8)" ( (binary_expression "(int)piVar27 + iVar8" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);" (assignment_expression "piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb)" identifier = (cast_expression "(int *)((int)ppppppcStack_a28 + iVar1 + 0xb)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcStack_a28 + iVar1 + 0xb)" ( (binary_expression "(int)ppppppcStack_a28 + iVar1 + 0xb" (binary_expression "(int)ppppppcStack_a28 + iVar1" (cast_expression "(int)ppppppcStack_a28" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);" (assignment_expression "pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2)" identifier = (cast_expression "(code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (call_expression "(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f3a])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f3a]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f3a]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f3a]" identifier [ number_literal ]))) )) (argument_list "(piVar5,(int)piStack_97c << 2)" ( identifier , (binary_expression "(int)piStack_97c << 2" (cast_expression "(int)piStack_97c" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "uStack_a20 = (uint)piStack_97c & 0xff;" (assignment_expression "uStack_a20 = (uint)piStack_97c & 0xff" identifier = (binary_expression "(uint)piStack_97c & 0xff" (cast_expression "(uint)piStack_97c" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }" if (parenthesized_expression "((int)piStack_97c < 1)" ( (binary_expression "(int)piStack_97c < 1" (cast_expression "(int)piStack_97c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }" { (if_statement "if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }" { (expression_statement "piVar20 = &iStack_a18;" (assignment_expression "piVar20 = &iStack_a18" identifier = (pointer_expression "&iStack_a18" & identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,ppppppcStack_a1c,iStack_a2c)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(piVar20,ppppppcStack_988)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(auStack_a14,puStack_984)" ( identifier , identifier ))) ;) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" identifier = (cast_expression "(undefined1)uStack_a24" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" identifier = (cast_expression "(undefined1)uStack_a20" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,piVar20,10)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "ppppppcVar33 = ppppppcStack_a28;" (assignment_expression "ppppppcVar33 = ppppppcStack_a28" identifier = identifier) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,pppppcStack_a34)" ( number_literal , identifier ))) ;) }) (else_clause "else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }" else (compound_statement "{\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }" { (expression_statement "FUN_00039938(piVar5,0x7043414c,piVar31);" (call_expression "FUN_00039938(piVar5,0x7043414c,piVar31)" identifier (argument_list "(piVar5,0x7043414c,piVar31)" ( identifier , number_literal , identifier ))) ;) (expression_statement "piVar20 = &iStack_a18;" (assignment_expression "piVar20 = &iStack_a18" identifier = (pointer_expression "&iStack_a18" & identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,ppppppcStack_a1c,iStack_a2c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(piVar20,ppppppcStack_988)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(auStack_a14,puStack_984)" ( identifier , identifier ))) ;) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" identifier = (cast_expression "(undefined1)uStack_a24" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" identifier = (cast_expression "(undefined1)uStack_a20" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,piVar20,10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "ppppppcVar33 = ppppppcStack_a28;" (assignment_expression "ppppppcVar33 = ppppppcStack_a28" identifier = identifier) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,pppppcStack_a34)" ( identifier , identifier ))) ;) }))) }) (else_clause "else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }" else (compound_statement "{\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }" { (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_2 = piStack_974;" (assignment_expression "param_2 = piStack_974" identifier = identifier) ;) (expression_statement "pppppppcVar29 = pppppppcVar2;" (assignment_expression "pppppppcVar29 = pppppppcVar2" identifier = identifier) ;) (do_statement "do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);" do (compound_statement "{\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      }" { (expression_statement "iVar1 = *param_2;" (assignment_expression "iVar1 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);" (assignment_expression "iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1)" identifier = (call_expression "(*(code *)ppppppcStack_a40[-0x1f07])(iVar1)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f07])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f07]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f07]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f07]" identifier [ number_literal ]))) )) (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);" (assignment_expression "ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1)" identifier = (cast_expression "(code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1)" ( (binary_expression "(uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1" (call_expression "(uint)(piVar27 != (int *)((int)piStack_97c + -1))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar27 != (int *)((int)piStack_97c + -1))" ( (binary_expression "piVar27 != (int *)((int)piStack_97c + -1)" identifier != (cast_expression "(int *)((int)piStack_97c + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piStack_97c + -1)" ( (binary_expression "(int)piStack_97c + -1" (cast_expression "(int)piStack_97c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) + identifier) )))) ;) (expression_statement "piVar27 = (int *)((int)piVar27 + 1);" (assignment_expression "piVar27 = (int *)((int)piVar27 + 1)" identifier = (cast_expression "(int *)((int)piVar27 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar27 + 1)" ( (binary_expression "(int)piVar27 + 1" (cast_expression "(int)piVar27" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "*pppppppcVar29 = ppppppcVar33;" (assignment_expression "*pppppppcVar29 = ppppppcVar33" (pointer_expression "*pppppppcVar29" * identifier) = identifier) ;) (expression_statement "piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);" (assignment_expression "piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33)" identifier = (cast_expression "(int *)((int)piVar31 + (int)ppppppcVar33)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar31 + (int)ppppppcVar33)" ( (binary_expression "(int)piVar31 + (int)ppppppcVar33" (cast_expression "(int)piVar31" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppppppcVar33" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pppppppcVar29 = pppppppcVar29 + 1;" (assignment_expression "pppppppcVar29 = pppppppcVar29 + 1" identifier = (binary_expression "pppppppcVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piStack_97c != piVar27)" ( (binary_expression "piStack_97c != piVar27" identifier != identifier) )) ;) (if_statement "if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }" { (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,ppppppcStack_a1c,iStack_a2c)" ( number_literal , identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(&iStack_a18,ppppppcStack_988)" ( (pointer_expression "&iStack_a18" & identifier) , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(auStack_a14,puStack_984)" ( identifier , identifier ))) ;) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" identifier = (cast_expression "(undefined1)uStack_a24" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" identifier = (cast_expression "(undefined1)uStack_a20" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,&iStack_a18,10)" ( number_literal , (pointer_expression "&iStack_a18" & identifier) , number_literal ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(0,pppppcStack_a34,ppppppcStack_a28)" ( number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }" else (compound_statement "{\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }" { (expression_statement "FUN_00039938(piVar5,0x7043414c,piVar31);" (call_expression "FUN_00039938(piVar5,0x7043414c,piVar31)" identifier (argument_list "(piVar5,0x7043414c,piVar31)" ( identifier , number_literal , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,ppppppcStack_a1c,iStack_a2c)" ( identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(&iStack_a18,ppppppcStack_988)" ( (pointer_expression "&iStack_a18" & identifier) , identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f06]" identifier [ number_literal ]))) )) (argument_list "(auStack_a14,puStack_984)" ( identifier , identifier ))) ;) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" identifier = (cast_expression "(undefined1)uStack_a24" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" identifier = (cast_expression "(undefined1)uStack_a20" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,&iStack_a18,10)" ( identifier , (pointer_expression "&iStack_a18" & identifier) , number_literal ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,pppppcStack_a34,ppppppcStack_a28)" ( identifier , identifier , identifier ))) ;) }))) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" identifier = (cast_expression "(code *******)0x0" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) number_literal)) ;) (expression_statement "pppppppcVar24 = pppppppcVar2;" (assignment_expression "pppppppcVar24 = pppppppcVar2" identifier = identifier) ;) (expression_statement "piVar15 = piStack_974;" (assignment_expression "piVar15 = piStack_974" identifier = identifier) ;) (do_statement "do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);" do (compound_statement "{\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      }" { (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1)" identifier = (cast_expression "(code *******)((int)pppppppcVar29 + 1)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "((int)pppppppcVar29 + 1)" ( (binary_expression "(int)pppppppcVar29 + 1" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppcVar33 = *pppppppcVar24;" (assignment_expression "ppppppcVar33 = *pppppppcVar24" identifier = (pointer_expression "*pppppppcVar24" * identifier)) ;) (expression_statement "iVar1 = *piVar15;" (assignment_expression "iVar1 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "pppppppcVar24 = pppppppcVar24 + 1;" (assignment_expression "pppppppcVar24 = pppppppcVar24 + 1" identifier = (binary_expression "pppppppcVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" identifier = (binary_expression "piVar15 + 1" identifier + number_literal)) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" * (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1ebd]" identifier [ number_literal ]))) )) (argument_list "(piVar5,iVar1)" ( identifier , identifier ))) ;) (expression_statement "piVar20 = piStack_97c;" (assignment_expression "piVar20 = piStack_97c" identifier = identifier) ;) (expression_statement "piStack_974 = piVar15;" (assignment_expression "piStack_974 = piVar15" identifier = identifier) ;) }) while (parenthesized_expression "((int)pppppppcVar29 < (int)piStack_97c)" ( (binary_expression "(int)pppppppcVar29 < (int)piStack_97c" (cast_expression "(int)pppppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)piStack_97c" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) }))) (expression_statement "pppppppcVar9 = pppppppcVar2;" (assignment_expression "pppppppcVar9 = pppppppcVar2" identifier = identifier) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f33])(piVar5);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f33])(piVar5)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f33])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1f33]" * (cast_expression "(code *)ppppppcStack_a40[-0x1f33]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1f33]" identifier [ number_literal ]))) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "(*(code *)ppppppcStack_a40[-0x1efa])();" (call_expression "(*(code *)ppppppcStack_a40[-0x1efa])()" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1efa])" ( (pointer_expression "*(code *)ppppppcStack_a40[-0x1efa]" * (cast_expression "(code *)ppppppcStack_a40[-0x1efa]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcStack_a40[-0x1efa]" identifier [ number_literal ]))) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_a74 = piVar20;" (assignment_expression "piStack_a74 = piVar20" identifier = identifier) ;) (expression_statement "ppppppcVar14 = ppppppcStack_a40;" (assignment_expression "ppppppcVar14 = ppppppcStack_a40" identifier = identifier) ;) (expression_statement "piVar20 = piStack_974;" (assignment_expression "piVar20 = piStack_974" identifier = identifier) ;) (if_statement "if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }" if (parenthesized_expression "(ppppcStack_9bc == *pppppcStack_a30)" ( (binary_expression "ppppcStack_9bc == *pppppcStack_a30" identifier == (pointer_expression "*pppppcStack_a30" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }" else (compound_statement "{\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }" { (labeled_statement "LAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);" statement_identifier : (expression_statement "pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);" (assignment_expression "pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7)" identifier = (cast_expression "(code *******)(ppppppcVar14[-0x1ff5] + 0x9a7)" ( (type_descriptor "code *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (parenthesized_expression "(ppppppcVar14[-0x1ff5] + 0x9a7)" ( (binary_expression "ppppppcVar14[-0x1ff5] + 0x9a7" (subscript_expression "ppppppcVar14[-0x1ff5]" identifier [ number_literal ]) + number_literal) )))) ;)) (expression_statement "(*(code *)ppppppcVar14[-0x1ef9])();" (call_expression "(*(code *)ppppppcVar14[-0x1ef9])()" (parenthesized_expression "(*(code *)ppppppcVar14[-0x1ef9])" ( (pointer_expression "*(code *)ppppppcVar14[-0x1ef9]" * (cast_expression "(code *)ppppppcVar14[-0x1ef9]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppppcVar14[-0x1ef9]" identifier [ number_literal ]))) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_a74 = piStack_97c;" (assignment_expression "piStack_a74 = piStack_97c" identifier = identifier) ;) (expression_statement "piVar20 = piStack_974;" (assignment_expression "piVar20 = piStack_974" identifier = identifier) ;) }))) (expression_statement "pppppcVar35 = ppppppcVar14[-0x1edb];" (assignment_expression "pppppcVar35 = ppppppcVar14[-0x1edb]" identifier = (subscript_expression "ppppppcVar14[-0x1edb]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = FUN_0003bed8;" (assignment_expression "pcVar32 = FUN_0003bed8" identifier = identifier) ;) (expression_statement "(*(code *)pppppcVar35)();" (call_expression "(*(code *)pppppcVar35)()" (parenthesized_expression "(*(code *)pppppcVar35)" ( (pointer_expression "*(code *)pppppcVar35" * (cast_expression "(code *)pppppcVar35" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pppppcStack_ac8 = pppppcVar35 + 0x7c46;" (assignment_expression "pppppcStack_ac8 = pppppcVar35 + 0x7c46" identifier = (binary_expression "pppppcVar35 + 0x7c46" identifier + number_literal)) ;) (expression_statement "ppppcVar25 = pppppcVar35[0x5d79];" (assignment_expression "ppppcVar25 = pppppcVar35[0x5d79]" identifier = (subscript_expression "pppppcVar35[0x5d79]" identifier [ number_literal ])) ;) (expression_statement "pppcStack_a7c = *ppppcVar25;" (assignment_expression "pppcStack_a7c = *ppppcVar25" identifier = (pointer_expression "*ppppcVar25" * identifier)) ;) (expression_statement "ppppppcVar14 = ppppppcVar33;" (assignment_expression "ppppppcVar14 = ppppppcVar33" identifier = identifier) ;) (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" identifier = identifier) ;) (expression_statement "pppppppcStack_a6c = pppppppcVar24;" (assignment_expression "pppppppcStack_a6c = pppppppcVar24" identifier = identifier) ;) (expression_statement "piStack_a68 = piVar27;" (assignment_expression "piStack_a68 = piVar27" identifier = identifier) ;) (expression_statement "pppppppcStack_a64 = pppppppcVar2;" (assignment_expression "pppppppcStack_a64 = pppppppcVar2" identifier = identifier) ;) (expression_statement "piStack_a60 = param_2;" (assignment_expression "piStack_a60 = param_2" identifier = identifier) ;) (expression_statement "pppppppcStack_a5c = pppppppcVar29;" (assignment_expression "pppppppcStack_a5c = pppppppcVar29" identifier = identifier) ;) (expression_statement "piStack_a58 = piVar31;" (assignment_expression "piStack_a58 = piVar31" identifier = identifier) ;) (expression_statement "pcStack_a54 = pcVar32;" (assignment_expression "pcStack_a54 = pcVar32" identifier = identifier) ;) (expression_statement "ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);" (assignment_expression "ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33)" identifier = (cast_expression "(code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33)" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (call_expression "(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33)" (parenthesized_expression "(*(code *)pppppcVar35[0x5d3f])" ( (pointer_expression "*(code *)pppppcVar35[0x5d3f]" * (cast_expression "(code *)pppppcVar35[0x5d3f]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppcVar35[0x5d3f]" identifier [ number_literal ]))) )) (argument_list "(ppppppcVar33)" ( identifier ))))) ;) (expression_statement "iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);" (assignment_expression "iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17)" identifier = (call_expression "(*(code *)pppppcStack_ac8[-0x1f07])(puVar17)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1f07])" ( (pointer_expression "*(code *)pppppcStack_ac8[-0x1f07]" * (cast_expression "(code *)pppppcStack_ac8[-0x1f07]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppcStack_ac8[-0x1f07]" identifier [ number_literal ]))) )) (argument_list "(puVar17)" ( identifier )))) ;) (expression_statement "puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);" (assignment_expression "puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2)" identifier = (cast_expression "(undefined1 *)((int)ppppppcVar34 + iVar1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcVar34 + iVar1 + 2)" ( (binary_expression "(int)ppppppcVar34 + iVar1 + 2" (binary_expression "(int)ppppppcVar34 + iVar1" (cast_expression "(int)ppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "piVar31 = piVar5;" (assignment_expression "piVar31 = piVar5" identifier = identifier) ;) (if_statement "if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }" if (parenthesized_expression "(puVar18 < (undefined1 *)0x41)" ( (binary_expression "puVar18 < (undefined1 *)0x41" identifier < (cast_expression "(undefined1 *)0x41" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }" { (expression_statement "uStack_abc = SUB41(pppppppcVar9,0);" (assignment_expression "uStack_abc = SUB41(pppppppcVar9,0)" identifier = (call_expression "SUB41(pppppppcVar9,0)" identifier (argument_list "(pppppppcVar9,0)" ( identifier , number_literal )))) ;) (expression_statement "(*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);" (call_expression "(*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1efc])" ( (pointer_expression "*(code *)pppppcStack_ac8[-0x1efc]" * (cast_expression "(code *)pppppcStack_ac8[-0x1efc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppcStack_ac8[-0x1efc]" identifier [ number_literal ]))) )) (argument_list "(&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f)" ( (pointer_expression "&uStack_abb" & identifier) , identifier , (cast_expression "(undefined1 *)((int)ppppppcVar34 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcVar34 + 1)" ( (binary_expression "(int)ppppppcVar34 + 1" (cast_expression "(int)ppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , number_literal ))) ;) (expression_statement "puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);" (assignment_expression "puVar6 = (undefined1 *)((int)ppppppcVar34 + 2)" identifier = (cast_expression "(undefined1 *)((int)ppppppcVar34 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcVar34 + 2)" ( (binary_expression "(int)ppppppcVar34 + 2" (cast_expression "(int)ppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "ppppppcVar34 = (code ******)&uStack_abc;" (assignment_expression "ppppppcVar34 = (code ******)&uStack_abc" identifier = (cast_expression "(code ******)&uStack_abc" ( (type_descriptor "code ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (pointer_expression "&uStack_abc" & identifier))) ;) (expression_statement "(*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);" (call_expression "(*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1ecb])" ( (pointer_expression "*(code *)pppppcStack_ac8[-0x1ecb]" * (cast_expression "(code *)pppppcStack_ac8[-0x1ecb]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppcStack_ac8[-0x1ecb]" identifier [ number_literal ]))) )) (argument_list "((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1)" ( (cast_expression "(undefined1 *)((int)ppppppcVar34 + (int)puVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppppcVar34 + (int)puVar6)" ( (binary_expression "(int)ppppppcVar34 + (int)puVar6" (cast_expression "(int)ppppppcVar34" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , identifier , identifier ))) ;) (expression_statement "ppppcVar10 = (code ****)0x7343414c;" (assignment_expression "ppppcVar10 = (code ****)0x7343414c" identifier = (cast_expression "(code ****)0x7343414c" ( (type_descriptor "code ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppppcVar14 = ppppppcVar34;" (assignment_expression "ppppppcVar14 = ppppppcVar34" identifier = identifier) ;) (expression_statement "puVar6 = puVar18;" (assignment_expression "puVar6 = puVar18" identifier = identifier) ;) (expression_statement "FUN_00039d28(piVar5,0x7343414c);" (call_expression "FUN_00039d28(piVar5,0x7343414c)" identifier (argument_list "(piVar5,0x7343414c)" ( identifier , number_literal ))) ;) }) (else_clause "else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }" else (compound_statement "{\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }" { (expression_statement "ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;" (assignment_expression "ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8" identifier = (binary_expression "pppppcStack_ac8[-0x1ff5] + 0x9b8" (subscript_expression "pppppcStack_ac8[-0x1ff5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);" (call_expression "(*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1eec])" ( (pointer_expression "*(code *)pppppcStack_ac8[-0x1eec]" * (cast_expression "(code *)pppppcStack_ac8[-0x1eec]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppppcStack_ac8[-0x1eec]" identifier [ number_literal ]))) )) (argument_list "(piVar5,ppppcVar10)" ( identifier , identifier ))) ;) }))) (if_statement "if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }" if (parenthesized_expression "(pppcStack_a7c == *ppppcVar25)" ( (binary_expression "pppcStack_a7c == *ppppcVar25" identifier == (pointer_expression "*ppppcVar25" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "ppppcVar36 = pppppcStack_ac8[-0x1edb];" (assignment_expression "ppppcVar36 = pppppcStack_ac8[-0x1edb]" identifier = (subscript_expression "pppppcStack_ac8[-0x1edb]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = FUN_0003c02c;" (assignment_expression "pcVar32 = FUN_0003c02c" identifier = identifier) ;) (expression_statement "(*(code *)ppppcVar36)();" (call_expression "(*(code *)ppppcVar36)()" (parenthesized_expression "(*(code *)ppppcVar36)" ( (pointer_expression "*(code *)ppppcVar36" * (cast_expression "(code *)ppppcVar36" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppppcStack_b08 = ppppcVar36 + 0x7bf1;" (assignment_expression "ppppcStack_b08 = ppppcVar36 + 0x7bf1" identifier = (binary_expression "ppppcVar36 + 0x7bf1" identifier + number_literal)) ;) (expression_statement "pppcVar21 = ppppcVar36[0x5d24];" (assignment_expression "pppcVar21 = ppppcVar36[0x5d24]" identifier = (subscript_expression "ppppcVar36[0x5d24]" identifier [ number_literal ])) ;) (expression_statement "ppcStack_af4 = *pppcVar21;" (assignment_expression "ppcStack_af4 = *pppcVar21" identifier = (pointer_expression "*pppcVar21" * identifier)) ;) (expression_statement "pppcVar37 = ppppcVar36[0x5ced];" (assignment_expression "pppcVar37 = ppppcVar36[0x5ced]" identifier = (subscript_expression "ppppcVar36[0x5ced]" identifier [ number_literal ])) ;) (expression_statement "puStack_af0 = puVar18;" (assignment_expression "puStack_af0 = puVar18" identifier = identifier) ;) (expression_statement "ppppppcStack_aec = ppppppcVar34;" (assignment_expression "ppppppcStack_aec = ppppppcVar34" identifier = identifier) ;) (expression_statement "ppppcStack_ae8 = ppppcVar25;" (assignment_expression "ppppcStack_ae8 = ppppcVar25" identifier = identifier) ;) (expression_statement "puStack_ae4 = puVar17;" (assignment_expression "puStack_ae4 = puVar17" identifier = identifier) ;) (expression_statement "iStack_ae0 = iVar1;" (assignment_expression "iStack_ae0 = iVar1" identifier = identifier) ;) (expression_statement "pcStack_adc = pcVar32;" (assignment_expression "pcStack_adc = pcVar32" identifier = identifier) ;) (if_statement "if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }" if (parenthesized_expression "(1 < (int)puVar6)" ( (binary_expression "1 < (int)puVar6" number_literal < (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }" { (expression_statement "(*(code *)ppppcVar36[0x5d05])();" (call_expression "(*(code *)ppppcVar36[0x5d05])()" (parenthesized_expression "(*(code *)ppppcVar36[0x5d05])" ( (pointer_expression "*(code *)ppppcVar36[0x5d05]" * (cast_expression "(code *)ppppcVar36[0x5d05]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppcVar36[0x5d05]" identifier [ number_literal ]))) )) (argument_list "()" ( ))) ;) (expression_statement "pppcVar37 = ppppcStack_b08[-0x1f04];" (assignment_expression "pppcVar37 = ppppcStack_b08[-0x1f04]" identifier = (subscript_expression "ppppcStack_b08[-0x1f04]" identifier [ number_literal ])) ;) })) (expression_statement "(*(code *)pppcVar37)(&iStack_b00,ppppcVar10);" (call_expression "(*(code *)pppcVar37)(&iStack_b00,ppppcVar10)" (parenthesized_expression "(*(code *)pppcVar37)" ( (pointer_expression "*(code *)pppcVar37" * (cast_expression "(code *)pppcVar37" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&iStack_b00,ppppcVar10)" ( (pointer_expression "&iStack_b00" & identifier) , identifier ))) ;) (expression_statement "(*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);" (call_expression "(*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14)" (parenthesized_expression "(*(code *)ppppcStack_b08[-0x1f04])" ( (pointer_expression "*(code *)ppppcStack_b08[-0x1f04]" * (cast_expression "(code *)ppppcStack_b08[-0x1f04]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppcStack_b08[-0x1f04]" identifier [ number_literal ]))) )) (argument_list "(auStack_afc,ppppppcVar14)" ( identifier , identifier ))) ;) (expression_statement "piVar11 = (int *)&DAT_70485973;" (assignment_expression "piVar11 = (int *)&DAT_70485973" identifier = (cast_expression "(int *)&DAT_70485973" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_70485973" & identifier))) ;) (expression_statement "uStack_af8 = SUB41(puVar6,0);" (assignment_expression "uStack_af8 = SUB41(puVar6,0)" identifier = (call_expression "SUB41(puVar6,0)" identifier (argument_list "(puVar6,0)" ( identifier , number_literal )))) ;) (expression_statement "piVar27 = piVar31;" (assignment_expression "piVar27 = piVar31" identifier = identifier) ;) (expression_statement "piVar15 = &iStack_b00;" (assignment_expression "piVar15 = &iStack_b00" identifier = (pointer_expression "&iStack_b00" & identifier)) ;) (expression_statement "FUN_00039d28();" (call_expression "FUN_00039d28()" identifier (argument_list "()" ( ))) ;) (if_statement "if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }" if (parenthesized_expression "(ppcStack_af4 == *pppcVar21)" ( (binary_expression "ppcStack_af4 == *pppcVar21" identifier == (pointer_expression "*pppcVar21" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pppcVar37 = ppppcStack_b08[-0x1edb];" (assignment_expression "pppcVar37 = ppppcStack_b08[-0x1edb]" identifier = (subscript_expression "ppppcStack_b08[-0x1edb]" identifier [ number_literal ])) ;) (expression_statement "pcVar32 = FUN_0003c120;" (assignment_expression "pcVar32 = FUN_0003c120" identifier = identifier) ;) (expression_statement "(*(code *)pppcVar37)();" (call_expression "(*(code *)pppcVar37)()" (parenthesized_expression "(*(code *)pppcVar37)" ( (pointer_expression "*(code *)pppcVar37" * (cast_expression "(code *)pppcVar37" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pppcStack_b48 = pppcVar37 + 0x7bb4;" (assignment_expression "pppcStack_b48 = pppcVar37 + 0x7bb4" identifier = (binary_expression "pppcVar37 + 0x7bb4" identifier + number_literal)) ;) (expression_statement "ppcVar22 = pppcVar37[0x5ce7];" (assignment_expression "ppcVar22 = pppcVar37[0x5ce7]" identifier = (subscript_expression "pppcVar37[0x5ce7]" identifier [ number_literal ])) ;) (expression_statement "pcStack_b34 = *ppcVar22;" (assignment_expression "pcStack_b34 = *ppcVar22" identifier = (pointer_expression "*ppcVar22" * identifier)) ;) (expression_statement "piVar19 = &iStack_b00;" (assignment_expression "piVar19 = &iStack_b00" identifier = (pointer_expression "&iStack_b00" & identifier)) ;) (expression_statement "piVar7 = piVar27;" (assignment_expression "piVar7 = piVar27" identifier = identifier) ;) (expression_statement "piStack_b2c = &iStack_b00;" (assignment_expression "piStack_b2c = &iStack_b00" identifier = (pointer_expression "&iStack_b00" & identifier)) ;) (expression_statement "pppcStack_b28 = pppcVar21;" (assignment_expression "pppcStack_b28 = pppcVar21" identifier = identifier) ;) (expression_statement "puStack_b24 = puVar6;" (assignment_expression "puStack_b24 = puVar6" identifier = identifier) ;) (expression_statement "piStack_b20 = piVar31;" (assignment_expression "piStack_b20 = piVar31" identifier = identifier) ;) (expression_statement "pcStack_b1c = pcVar32;" (assignment_expression "pcStack_b1c = pcVar32" identifier = identifier) ;) (if_statement "if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }" if (parenthesized_expression "((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d))" ( (binary_expression "(((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)" (parenthesized_expression "(((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18))" ( (binary_expression "((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)" (parenthesized_expression "((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))" ( (binary_expression "(*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f)" (parenthesized_expression "(*(byte *)((int)piVar11 + 2) - 1 < 0xc)" ( (binary_expression "*(byte *)((int)piVar11 + 2) - 1 < 0xc" (binary_expression "*(byte *)((int)piVar11 + 2) - 1" (pointer_expression "*(byte *)((int)piVar11 + 2)" * (cast_expression "(byte *)((int)piVar11 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 2)" ( (binary_expression "(int)piVar11 + 2" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) - number_literal) < number_literal) )) && (parenthesized_expression "(piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f)" ( (comma_expression "piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f" (assignment_expression "piVar19 = piVar11" identifier = identifier) , (binary_expression "(byte)*piVar11 - 1 < 0x1f" (binary_expression "(byte)*piVar11 - 1" (binary_expression "(byte)*piVar11" (parenthesized_expression "(byte)" ( identifier )) * identifier) - number_literal) < number_literal)) ))) )) && (parenthesized_expression "(*(byte *)(piVar11 + 1) < 0x18)" ( (binary_expression "*(byte *)(piVar11 + 1) < 0x18" (pointer_expression "*(byte *)(piVar11 + 1)" * (cast_expression "(byte *)(piVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11 + 1)" ( (binary_expression "piVar11 + 1" identifier + number_literal) )))) < number_literal) ))) )) && (parenthesized_expression "(*(byte *)((int)piVar11 + 6) < 0x3d)" ( (binary_expression "*(byte *)((int)piVar11 + 6) < 0x3d" (pointer_expression "*(byte *)((int)piVar11 + 6)" * (cast_expression "(byte *)((int)piVar11 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 6)" ( (binary_expression "(int)piVar11 + 6" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) < number_literal) ))) )) (compound_statement "{\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }" { (expression_statement "piVar31 = &uStack_b3c;" (assignment_expression "piVar31 = &uStack_b3c" identifier = (pointer_expression "&uStack_b3c" & identifier)) ;) (expression_statement "(*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);" (call_expression "(*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11)" (parenthesized_expression "(*(code *)pppcVar37[0x5c80])" ( (pointer_expression "*(code *)pppcVar37[0x5c80]" * (cast_expression "(code *)pppcVar37[0x5c80]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppcVar37[0x5c80]" identifier [ number_literal ]))) )) (argument_list "(piVar31,*(undefined2 *)piVar11)" ( identifier , (pointer_expression "*(undefined2 *)piVar11" * (cast_expression "(undefined2 *)piVar11" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "uStack_b36 = *(undefined1 *)((int)piVar11 + 6);" (assignment_expression "uStack_b36 = *(undefined1 *)((int)piVar11 + 6)" identifier = (pointer_expression "*(undefined1 *)((int)piVar11 + 6)" * (cast_expression "(undefined1 *)((int)piVar11 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + 6)" ( (binary_expression "(int)piVar11 + 6" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "ppcVar12 = (code **)0x74494d45;" (assignment_expression "ppcVar12 = (code **)0x74494d45" identifier = (cast_expression "(code **)0x74494d45" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "uStack_b3c._2_2_ = (undefined2)*piVar11;" (assignment_expression "uStack_b3c._2_2_ = (undefined2)*piVar11" (field_expression "uStack_b3c._2_2_" identifier . field_identifier) = (binary_expression "(undefined2)*piVar11" (parenthesized_expression "(undefined2)" ( identifier )) * identifier)) ;) (expression_statement "uStack_b38 = *(undefined2 *)(piVar11 + 1);" (assignment_expression "uStack_b38 = *(undefined2 *)(piVar11 + 1)" identifier = (pointer_expression "*(undefined2 *)(piVar11 + 1)" * (cast_expression "(undefined2 *)(piVar11 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar11 + 1)" ( (binary_expression "piVar11 + 1" identifier + number_literal) ))))) ;) (expression_statement "piVar15 = piVar31;" (assignment_expression "piVar15 = piVar31" identifier = identifier) ;) (expression_statement "FUN_00039d28();" (call_expression "FUN_00039d28()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }" else (compound_statement "{\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }" { (expression_statement "ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;" (assignment_expression "ppcVar12 = pppcVar37[0x5bbf] + 0x9cb" identifier = (binary_expression "pppcVar37[0x5bbf] + 0x9cb" (subscript_expression "pppcVar37[0x5bbf]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "(*(code *)pppcVar37[0x5cc8])();" (call_expression "(*(code *)pppcVar37[0x5cc8])()" (parenthesized_expression "(*(code *)pppcVar37[0x5cc8])" ( (pointer_expression "*(code *)pppcVar37[0x5cc8]" * (cast_expression "(code *)pppcVar37[0x5cc8]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pppcVar37[0x5cc8]" identifier [ number_literal ]))) )) (argument_list "()" ( ))) ;) (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" identifier = identifier) ;) }))) (if_statement "if (pcStack_b34 == *ppcVar22) {\n    return;\n  }" if (parenthesized_expression "(pcStack_b34 == *ppcVar22)" ( (binary_expression "pcStack_b34 == *ppcVar22" identifier == (pointer_expression "*ppcVar22" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "ppcVar38 = pppcStack_b48[-0x1edb];" (assignment_expression "ppcVar38 = pppcStack_b48[-0x1edb]" identifier = (subscript_expression "pppcStack_b48[-0x1edb]" identifier [ number_literal ])) ;) (expression_statement "pcVar42 = FUN_0003c240;" (assignment_expression "pcVar42 = FUN_0003c240" identifier = identifier) ;) (expression_statement "(*(code *)ppcVar38)();" (call_expression "(*(code *)ppcVar38)()" (parenthesized_expression "(*(code *)ppcVar38)" ( (pointer_expression "*(code *)ppcVar38" * (cast_expression "(code *)ppcVar38" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "ppcStack_b88 = ppcVar38 + 0x7b6c;" (assignment_expression "ppcStack_b88 = ppcVar38 + 0x7b6c" identifier = (binary_expression "ppcVar38 + 0x7b6c" identifier + number_literal)) ;) (expression_statement "pcVar32 = ppcVar38[0x5c9f];" (assignment_expression "pcVar32 = ppcVar38[0x5c9f]" identifier = (subscript_expression "ppcVar38[0x5c9f]" identifier [ number_literal ])) ;) (expression_statement "piVar7[0xc9] = (int)ppcVar12;" (assignment_expression "piVar7[0xc9] = (int)ppcVar12" (subscript_expression "piVar7[0xc9]" identifier [ number_literal ]) = (cast_expression "(int)ppcVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iStack_b74 = *(int *)pcVar32;" (assignment_expression "iStack_b74 = *(int *)pcVar32" identifier = (pointer_expression "*(int *)pcVar32" * (cast_expression "(int *)pcVar32" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piStack_b6c = piVar11;" (assignment_expression "piStack_b6c = piVar11" identifier = identifier) ;) (expression_statement "ppcStack_b68 = ppcVar22;" (assignment_expression "ppcStack_b68 = ppcVar22" identifier = identifier) ;) (expression_statement "piStack_b64 = piVar27;" (assignment_expression "piStack_b64 = piVar27" identifier = identifier) ;) (expression_statement "piStack_b60 = piVar31;" (assignment_expression "piStack_b60 = piVar31" identifier = identifier) ;) (expression_statement "pcStack_b5c = pcVar42;" (assignment_expression "pcStack_b5c = pcVar42" identifier = identifier) ;) (expression_statement "(*ppcVar38[0x5c68])(auStack_b7c);" (call_expression "(*ppcVar38[0x5c68])(auStack_b7c)" (parenthesized_expression "(*ppcVar38[0x5c68])" ( (pointer_expression "*ppcVar38[0x5c68]" * (subscript_expression "ppcVar38[0x5c68]" identifier [ number_literal ])) )) (argument_list "(auStack_b7c)" ( identifier ))) ;) (expression_statement "(*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);" (call_expression "(*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15)" (parenthesized_expression "(*ppcStack_b88[0xffffe0fc])" ( (pointer_expression "*ppcStack_b88[0xffffe0fc]" * (subscript_expression "ppcStack_b88[0xffffe0fc]" identifier [ number_literal ])) )) (argument_list "(auStack_b78,piVar15)" ( identifier , identifier ))) ;) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" identifier = number_literal) ;) (expression_statement "iVar1 = 0x6163544c;" (assignment_expression "iVar1 = 0x6163544c" identifier = number_literal) ;) (expression_statement "piVar31 = piVar7;" (assignment_expression "piVar31 = piVar7" identifier = identifier) ;) (expression_statement "puVar17 = auStack_b7c;" (assignment_expression "puVar17 = auStack_b7c" identifier = identifier) ;) (expression_statement "FUN_00039d28();" (call_expression "FUN_00039d28()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }" if (parenthesized_expression "(iStack_b74 == *(int *)pcVar32)" ( (binary_expression "iStack_b74 == *(int *)pcVar32" identifier == (pointer_expression "*(int *)pcVar32" * (cast_expression "(int *)pcVar32" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar39 = ppcStack_b88[0xffffe125];" (assignment_expression "pcVar39 = ppcStack_b88[0xffffe125]" identifier = (subscript_expression "ppcStack_b88[0xffffe125]" identifier [ number_literal ])) ;) (expression_statement "uVar43 = 0x3c310;" (assignment_expression "uVar43 = 0x3c310" identifier = number_literal) ;) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" ( (pointer_expression "*pcVar39" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar42 = pcVar39 + 0x1ece0;" (assignment_expression "pcVar42 = pcVar39 + 0x1ece0" identifier = (binary_expression "pcVar39 + 0x1ece0" identifier + number_literal)) ;) (expression_statement "puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);" (assignment_expression "puVar30 = *(undefined4 **)(pcVar39 + 0x171ac)" identifier = (pointer_expression "*(undefined4 **)(pcVar39 + 0x171ac)" * (cast_expression "(undefined4 **)(pcVar39 + 0x171ac)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x171ac)" ( (binary_expression "pcVar39 + 0x171ac" identifier + number_literal) ))))) ;) (expression_statement "piVar27 = (int *)*puVar30;" (assignment_expression "piVar27 = (int *)*puVar30" identifier = (cast_expression "(int *)*puVar30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar30" * identifier))) ;) (expression_statement "uVar28 = (uint)uStack_b7e;" (assignment_expression "uVar28 = (uint)uStack_b7e" identifier = (cast_expression "(uint)uStack_b7e" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcStack_bf0 = pcVar42;" (assignment_expression "pcStack_bf0 = pcVar42" identifier = identifier) ;) (expression_statement "piStack_bc4 = piVar27;" (assignment_expression "piStack_bc4 = piVar27" identifier = identifier) ;) (expression_statement "puStack_bc0 = auStack_b7c;" (assignment_expression "puStack_bc0 = auStack_b7c" identifier = identifier) ;) (expression_statement "piStack_bbc = piVar7;" (assignment_expression "piStack_bbc = piVar7" identifier = identifier) ;) (expression_statement "pcStack_bb8 = pcVar32;" (assignment_expression "pcStack_bb8 = pcVar32" identifier = identifier) ;) (expression_statement "piStack_bb4 = piVar15;" (assignment_expression "piStack_bb4 = piVar15" identifier = identifier) ;) (expression_statement "ppppppcStack_bb0 = ppppppcVar14;" (assignment_expression "ppppppcStack_bb0 = ppppppcVar14" identifier = identifier) ;) (expression_statement "piStack_bac = piVar5;" (assignment_expression "piStack_bac = piVar5" identifier = identifier) ;) (expression_statement "ppppppcStack_ba8 = ppppppcVar33;" (assignment_expression "ppppppcStack_ba8 = ppppppcVar33" identifier = identifier) ;) (expression_statement "pppppppcStack_ba4 = pppppppcVar9;" (assignment_expression "pppppppcStack_ba4 = pppppppcVar9" identifier = identifier) ;) (expression_statement "piStack_ba0 = piVar20;" (assignment_expression "piStack_ba0 = piVar20" identifier = identifier) ;) (expression_statement "uStack_b9c = uVar43;" (assignment_expression "uStack_b9c = uVar43" identifier = identifier) ;) (if_statement "if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }" if (parenthesized_expression "(piVar31[0xca] == 0)" ( (binary_expression "piVar31[0xca] == 0" (subscript_expression "piVar31[0xca]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }" { (if_statement "if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }" if (parenthesized_expression "(iVar8 == 0 && ppcStack_b88 == (code **)0x0)" ( (binary_expression "iVar8 == 0 && ppcStack_b88 == (code **)0x0" (binary_expression "iVar8 == 0" identifier == number_literal) && (binary_expression "ppcStack_b88 == (code **)0x0" identifier == (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal))) )) (compound_statement "{\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }" { (if_statement "if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;" if (parenthesized_expression "((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17))" ( (binary_expression "(piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)" (parenthesized_expression "(piVar31[0xc4] == iVar1)" ( (binary_expression "piVar31[0xc4] == iVar1" (subscript_expression "piVar31[0xc4]" identifier [ number_literal ]) == identifier) )) && (parenthesized_expression "((undefined1 *)piVar31[0xc5] == puVar17)" ( (binary_expression "(undefined1 *)piVar31[0xc5] == puVar17" (cast_expression "(undefined1 *)piVar31[0xc5]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar31[0xc5]" identifier [ number_literal ])) == identifier) ))) )) (goto_statement "goto LAB_0003c3a8;" goto statement_identifier ;)) }) (else_clause "else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }" else (compound_statement "{\n      (**(code **)(pcVar39 + 0x170fc))();\n    }" { (expression_statement "(**(code **)(pcVar39 + 0x170fc))();" (call_expression "(**(code **)(pcVar39 + 0x170fc))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x170fc))" ( (pointer_expression "**(code **)(pcVar39 + 0x170fc)" * (pointer_expression "*(code **)(pcVar39 + 0x170fc)" * (cast_expression "(code **)(pcVar39 + 0x170fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x170fc)" ( (binary_expression "pcVar39 + 0x170fc" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;" (assignment_expression "iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784" identifier = (binary_expression "*(int *)(pcVar39 + 0x16d0c) + 0x2784" (pointer_expression "*(int *)(pcVar39 + 0x16d0c)" * (cast_expression "(int *)(pcVar39 + 0x16d0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar39 + 0x16d0c)" ( (binary_expression "pcVar39 + 0x16d0c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "piVar20 = piVar31;" (assignment_expression "piVar20 = piVar31" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar39 + 0x170fc))();" (call_expression "(**(code **)(pcVar39 + 0x170fc))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x170fc))" ( (pointer_expression "**(code **)(pcVar39 + 0x170fc)" * (pointer_expression "*(code **)(pcVar39 + 0x170fc)" * (cast_expression "(code **)(pcVar39 + 0x170fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar39 + 0x170fc)" ( (binary_expression "pcVar39 + 0x170fc" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }" else (compound_statement "{\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }" { (labeled_statement "LAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;" statement_identifier : (expression_statement "ppcStack_c08 = ppcStack_b88;" (assignment_expression "ppcStack_c08 = ppcStack_b88" identifier = identifier) ;)) (expression_statement "uStack_c04 = (uint)uStack_b82;" (assignment_expression "uStack_c04 = (uint)uStack_b82" identifier = (cast_expression "(uint)uStack_b82" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uStack_c00 = uVar28;" (assignment_expression "uStack_c00 = uVar28" identifier = identifier) ;) (expression_statement "uStack_bfc = (uint)bStack_b79;" (assignment_expression "uStack_bfc = (uint)bStack_b79" identifier = (cast_expression "(uint)bStack_b79" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uStack_bf8 = (uint)bStack_b75;" (assignment_expression "uStack_bf8 = (uint)bStack_b75" identifier = (cast_expression "(uint)bStack_b75" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uStack_be4 = (uint)uStack_b82;" (assignment_expression "uStack_be4 = (uint)uStack_b82" identifier = (cast_expression "(uint)uStack_b82" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "FUN_00033984(piVar31,iVar1,puVar17,iVar8);" (call_expression "FUN_00033984(piVar31,iVar1,puVar17,iVar8)" identifier (argument_list "(piVar31,iVar1,puVar17,iVar8)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3])" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" * (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7c10)" ( (binary_expression "pcStack_bf0 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(&iStack_be0,piVar31[0xc3])" ( (pointer_expression "&iStack_be0" & identifier) , (subscript_expression "piVar31[0xc3]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" * (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7c10)" ( (binary_expression "pcStack_bf0 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(auStack_bdc,iVar1)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" * (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7c10)" ( (binary_expression "pcStack_bf0 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(auStack_bd8,puVar17)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" * (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7c10)" ( (binary_expression "pcStack_bf0 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(auStack_bd4,iVar8)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" * (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7c10)" ( (binary_expression "pcStack_bf0 + -0x7c10" identifier + number_literal) ))))) )) (argument_list "(auStack_bd0,ppcStack_b88)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);" (call_expression "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7cd0))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7cd0)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7cd0)" * (cast_expression "(code **)(pcStack_bf0 + -0x7cd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7cd0)" ( (binary_expression "pcStack_bf0 + -0x7cd0" identifier + number_literal) ))))) )) (argument_list "(auStack_bcc,uStack_be4)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);" (call_expression "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7cd0))" ( (pointer_expression "**(code **)(pcStack_bf0 + -0x7cd0)" * (pointer_expression "*(code **)(pcStack_bf0 + -0x7cd0)" * (cast_expression "(code **)(pcStack_bf0 + -0x7cd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_bf0 + -0x7cd0)" ( (binary_expression "pcStack_bf0 + -0x7cd0" identifier + number_literal) ))))) )) (argument_list "(auStack_bca,uVar28)" ( identifier , identifier ))) ;) (expression_statement "iVar8 = 0x1a;" (assignment_expression "iVar8 = 0x1a" identifier = number_literal) ;) (expression_statement "iVar13 = 0x6663544c;" (assignment_expression "iVar13 = 0x6663544c" identifier = number_literal) ;) (expression_statement "bStack_bc8 = bStack_b79;" (assignment_expression "bStack_bc8 = bStack_b79" identifier = identifier) ;) (expression_statement "bStack_bc7 = bStack_b75;" (assignment_expression "bStack_bc7 = bStack_b75" identifier = identifier) ;) (expression_statement "piVar27 = &iStack_be0;" (assignment_expression "piVar27 = &iStack_be0" identifier = (pointer_expression "&iStack_be0" & identifier)) ;) (expression_statement "FUN_00039d28(piVar31);" (call_expression "FUN_00039d28(piVar31)" identifier (argument_list "(piVar31)" ( identifier ))) ;) (expression_statement "piVar5 = (int *)*puVar30;" (assignment_expression "piVar5 = (int *)*puVar30" identifier = (cast_expression "(int *)*puVar30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar30" * identifier))) ;) (expression_statement "piVar31[0xc3] = piVar31[0xc3] + 1;" (assignment_expression "piVar31[0xc3] = piVar31[0xc3] + 1" (subscript_expression "piVar31[0xc3]" identifier [ number_literal ]) = (binary_expression "piVar31[0xc3] + 1" (subscript_expression "piVar31[0xc3]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar20 = piStack_bc4;" (assignment_expression "piVar20 = piStack_bc4" identifier = identifier) ;) (expression_statement "piVar7 = &iStack_be0;" (assignment_expression "piVar7 = &iStack_be0" identifier = (pointer_expression "&iStack_be0" & identifier)) ;) (expression_statement "pcVar42 = pcStack_bf0;" (assignment_expression "pcVar42 = pcStack_bf0" identifier = identifier) ;) (if_statement "if (piStack_bc4 == piVar5) {\n      return;\n    }" if (parenthesized_expression "(piStack_bc4 == piVar5)" ( (binary_expression "piStack_bc4 == piVar5" identifier == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "pcVar32 = *(code **)(pcVar42 + -0x7b6c);" (assignment_expression "pcVar32 = *(code **)(pcVar42 + -0x7b6c)" identifier = (pointer_expression "*(code **)(pcVar42 + -0x7b6c)" * (cast_expression "(code **)(pcVar42 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar42 + -0x7b6c)" ( (binary_expression "pcVar42 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar42 = FUN_0003c510;" (assignment_expression "pcVar42 = FUN_0003c510" identifier = identifier) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar5 = *(int **)(pcVar32 + 0x16fac);" (assignment_expression "piVar5 = *(int **)(pcVar32 + 0x16fac)" identifier = (pointer_expression "*(int **)(pcVar32 + 0x16fac)" * (cast_expression "(int **)(pcVar32 + 0x16fac)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16fac)" ( (binary_expression "pcVar32 + 0x16fac" identifier + number_literal) ))))) ;) (expression_statement "iStack_c34 = *piVar5;" (assignment_expression "iStack_c34 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "piStack_c30 = piVar31;" (assignment_expression "piStack_c30 = piVar31" identifier = identifier) ;) (expression_statement "piStack_c2c = piVar7;" (assignment_expression "piStack_c2c = piVar7" identifier = identifier) ;) (expression_statement "puStack_c28 = puVar17;" (assignment_expression "puStack_c28 = puVar17" identifier = identifier) ;) (expression_statement "iStack_c24 = iVar1;" (assignment_expression "iStack_c24 = iVar1" identifier = identifier) ;) (expression_statement "uStack_c20 = uVar28;" (assignment_expression "uStack_c20 = uVar28" identifier = identifier) ;) (expression_statement "pcStack_c1c = pcVar42;" (assignment_expression "pcStack_c1c = pcVar42" identifier = identifier) ;) (if_statement "if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }" if (parenthesized_expression "(piVar20 != (int *)0x0)" ( (binary_expression "piVar20 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00039938();\n  }" { (expression_statement "FUN_00039938();" (call_expression "FUN_00039938()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "(**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);" (call_expression "(**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3])" (parenthesized_expression "(**(code **)(pcVar32 + 0x16ed0))" ( (pointer_expression "**(code **)(pcVar32 + 0x16ed0)" * (pointer_expression "*(code **)(pcVar32 + 0x16ed0)" * (cast_expression "(code **)(pcVar32 + 0x16ed0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16ed0)" ( (binary_expression "pcVar32 + 0x16ed0" identifier + number_literal) ))))) )) (argument_list "(auStack_c38,piVar20[0xc3])" ( identifier , (subscript_expression "piVar20[0xc3]" identifier [ number_literal ]) ))) ;) (expression_statement "(**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);" (call_expression "(**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16fec))" ( (pointer_expression "**(code **)(pcVar32 + 0x16fec)" * (pointer_expression "*(code **)(pcVar32 + 0x16fec)" * (cast_expression "(code **)(pcVar32 + 0x16fec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16fec)" ( (binary_expression "pcVar32 + 0x16fec" identifier + number_literal) ))))) )) (argument_list "(piVar20,auStack_c38,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar32 + 0x16fec))(piVar20);" (call_expression "(**(code **)(pcVar32 + 0x16fec))(piVar20)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16fec))" ( (pointer_expression "**(code **)(pcVar32 + 0x16fec)" * (pointer_expression "*(code **)(pcVar32 + 0x16fec)" * (cast_expression "(code **)(pcVar32 + 0x16fec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16fec)" ( (binary_expression "pcVar32 + 0x16fec" identifier + number_literal) ))))) )) (argument_list "(piVar20)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar32 + 0x16ef8))(piVar20);" (call_expression "(**(code **)(pcVar32 + 0x16ef8))(piVar20)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16ef8))" ( (pointer_expression "**(code **)(pcVar32 + 0x16ef8)" * (pointer_expression "*(code **)(pcVar32 + 0x16ef8)" * (cast_expression "(code **)(pcVar32 + 0x16ef8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16ef8)" ( (binary_expression "pcVar32 + 0x16ef8" identifier + number_literal) ))))) )) (argument_list "(piVar20)" ( identifier ))) ;) (expression_statement "iVar1 = *piVar5;" (assignment_expression "iVar1 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "piVar20[0xc3] = piVar20[0xc3] + 1;" (assignment_expression "piVar20[0xc3] = piVar20[0xc3] + 1" (subscript_expression "piVar20[0xc3]" identifier [ number_literal ]) = (binary_expression "piVar20[0xc3] + 1" (subscript_expression "piVar20[0xc3]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (iStack_c34 == iVar1) {\n    return;\n  }" if (parenthesized_expression "(iStack_c34 == iVar1)" ( (binary_expression "iStack_c34 == iVar1" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar32 = *(code **)(pcVar32 + 0x16f74);" (assignment_expression "pcVar32 = *(code **)(pcVar32 + 0x16f74)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16f74)" * (cast_expression "(code **)(pcVar32 + 0x16f74)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16f74)" ( (binary_expression "pcVar32 + 0x16f74" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = iStack_c34;" (assignment_expression "iVar1 = iStack_c34" identifier = identifier) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;" if (parenthesized_expression "(*(int *)(iVar1 + 0x130) == 0x49444154)" ( (binary_expression "*(int *)(iVar1 + 0x130) == 0x49444154" (pointer_expression "*(int *)(iVar1 + 0x130)" * (cast_expression "(int *)(iVar1 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x130)" ( (binary_expression "iVar1 + 0x130" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0003c6d0;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;" if (parenthesized_expression "(*(int *)(iVar1 + 0x16c) == 0)" ( (binary_expression "*(int *)(iVar1 + 0x16c) == 0" (pointer_expression "*(int *)(iVar1 + 0x16c)" * (cast_expression "(int *)(iVar1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x16c)" ( (binary_expression "iVar1 + 0x16c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_0003c8fc;" goto statement_identifier ;)) (expression_statement "FUN_00039dec();" (call_expression "FUN_00039dec()" identifier (argument_list "()" ( ))) ;) (while_statement "while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }" { (expression_statement "uVar43 = FUN_00039150(iVar1);" (assignment_expression "uVar43 = FUN_00039150(iVar1)" identifier = (call_expression "FUN_00039150(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);" (assignment_expression "iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43)" identifier = (call_expression "FUN_000392b8(iVar1,0x49444154,uVar43)" identifier (argument_list "(iVar1,0x49444154,uVar43)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (iVar3 != 0) break;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);" (assignment_expression "*(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170)" (pointer_expression "*(undefined4 *)(iVar1 + 0x144)" * (cast_expression "(undefined4 *)(iVar1 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x144)" ( (binary_expression "iVar1 + 0x144" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x170)" * (cast_expression "(undefined4 *)(iVar1 + 0x170)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x170)" ( (binary_expression "iVar1 + 0x170" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;" (assignment_expression "*(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x140)" * (cast_expression "(int *)(iVar1 + 0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x140)" ( (binary_expression "iVar1 + 0x140" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x16c)" * (cast_expression "(int *)(iVar1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x16c)" ( (binary_expression "iVar1 + 0x16c" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;" statement_identifier : (expression_statement "*(int *)(iVar1 + 0x134) = iVar13;" (assignment_expression "*(int *)(iVar1 + 0x134) = iVar13" (pointer_expression "*(int *)(iVar1 + 0x134)" * (cast_expression "(int *)(iVar1 + 0x134)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x134)" ( (binary_expression "iVar1 + 0x134" identifier + number_literal) )))) = identifier) ;)) (do_statement "do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);" do (compound_statement "{\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    }" { (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16e48);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16e48)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16e48)" * (cast_expression "(code **)(pcVar32 + 0x16e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16e48)" ( (binary_expression "pcVar32 + 0x16e48" identifier + number_literal) ))))) ;) (do_statement "do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);" do (compound_statement "{\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      }" { (expression_statement "*(int **)(iVar1 + 0x138) = piVar27;" (assignment_expression "*(int **)(iVar1 + 0x138) = piVar27" (pointer_expression "*(int **)(iVar1 + 0x138)" * (cast_expression "(int **)(iVar1 + 0x138)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x138)" ( (binary_expression "iVar1 + 0x138" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);" (assignment_expression "iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8)" identifier = (call_expression "(*pcVar42)(iVar1 + 0x134,iVar8)" (parenthesized_expression "(*pcVar42)" ( (pointer_expression "*pcVar42" * identifier) )) (argument_list "(iVar1 + 0x134,iVar8)" ( (binary_expression "iVar1 + 0x134" identifier + number_literal) , identifier )))) ;) (expression_statement "piVar27 = *(int **)(iVar1 + 0x138);" (assignment_expression "piVar27 = *(int **)(iVar1 + 0x138)" identifier = (pointer_expression "*(int **)(iVar1 + 0x138)" * (cast_expression "(int **)(iVar1 + 0x138)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x138)" ( (binary_expression "iVar1 + 0x138" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x138) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x138) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x138)" * (cast_expression "(undefined4 *)(iVar1 + 0x138)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x138)" ( (binary_expression "iVar1 + 0x138" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }" if (parenthesized_expression "(*(int *)(iVar1 + 0x144) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x144) != 0" (pointer_expression "*(int *)(iVar1 + 0x144)" * (cast_expression "(int *)(iVar1 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x144)" ( (binary_expression "iVar1 + 0x144" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }" { (if_statement "if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }" { (labeled_statement "LAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;" statement_identifier : (if_statement "if (iVar13 != 1) goto LAB_0003c944;" if (parenthesized_expression "(iVar13 != 1)" ( (binary_expression "iVar13 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0003c944;" goto statement_identifier ;))) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16bc8);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16bc8)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16bc8)" * (cast_expression "(code **)(pcVar32 + 0x16bc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16bc8)" ( (binary_expression "pcVar32 + 0x16bc8" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }" if (parenthesized_expression "(iVar8 == 4)" ( (binary_expression "iVar8 == 4" identifier == number_literal) )) (compound_statement "{\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }" { (expression_statement "iVar13 = *(int *)(iVar1 + 0x16c) + 4;" (assignment_expression "iVar13 = *(int *)(iVar1 + 0x16c) + 4" identifier = (binary_expression "*(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x16c)" * (cast_expression "(int *)(iVar1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x16c)" ( (binary_expression "iVar1 + 0x16c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144)" identifier = (binary_expression "*(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144)" (pointer_expression "*(int *)(iVar1 + 0x170)" * (cast_expression "(int *)(iVar1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x170)" ( (binary_expression "iVar1 + 0x170" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar1 + 0x144)" * (cast_expression "(int *)(iVar1 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x144)" ( (binary_expression "iVar1 + 0x144" identifier + number_literal) )))))) ;) (if_statement "if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }" if (parenthesized_expression "((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001))" ( (binary_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" (parenthesized_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0'))" ( (binary_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')" (parenthesized_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar1 + 0x124) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x124) & 4)" ( (binary_expression "*(uint *)(iVar1 + 0x124) & 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(char *)(iVar1 + 0x348) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x348) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x348)" * (cast_expression "(char *)(iVar1 + 0x348)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x348)" ( (binary_expression "iVar1 + 0x348" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" ( (comma_expression "uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001" (assignment_expression "uVar28 = FUN_00039150(iVar1)" identifier = (call_expression "FUN_00039150(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) , (binary_expression "uVar28 < 0x4001" identifier < number_literal)) ))) )) (compound_statement "{\n                FUN_000395ac(iVar13,uVar28);\n              }" { (expression_statement "FUN_000395ac(iVar13,uVar28);" (call_expression "FUN_000395ac(iVar13,uVar28)" identifier (argument_list "(iVar13,uVar28)" ( identifier , identifier ))) ;) })) (if_statement "if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" { (expression_statement "uVar28 = *(uint *)(iVar1 + 0x124);" (assignment_expression "uVar28 = *(uint *)(iVar1 + 0x124)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) ))))) ;) }) (else_clause "else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" else (if_statement "if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" if (parenthesized_expression "(*(int *)(iVar1 + 0x328) == 0)" ( (binary_expression "*(int *)(iVar1 + 0x328) == 0" (pointer_expression "*(int *)(iVar1 + 0x328)" * (cast_expression "(int *)(iVar1 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x328)" ( (binary_expression "iVar1 + 0x328" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" { (expression_statement "FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);" (call_expression "FUN_00039d28(iVar1,0x49444154,iVar13,iVar8)" identifier (argument_list "(iVar1,0x49444154,iVar13,iVar8)" ( identifier , number_literal , identifier , identifier ))) ;) (expression_statement "uVar28 = *(uint *)(iVar1 + 0x124);" (assignment_expression "uVar28 = *(uint *)(iVar1 + 0x124)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) ))))) ;) }) (else_clause "else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" else (compound_statement "{\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" { (expression_statement "FUN_0003c510(iVar1,iVar13,iVar8);" (call_expression "FUN_0003c510(iVar1,iVar13,iVar8)" identifier (argument_list "(iVar1,iVar13,iVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar28 = *(uint *)(iVar1 + 0x124);" (assignment_expression "uVar28 = *(uint *)(iVar1 + 0x124)" identifier = (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) ))))) ;) }))))) (expression_statement "*(undefined4 *)(iVar1 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x144)" * (cast_expression "(undefined4 *)(iVar1 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x144)" ( (binary_expression "iVar1 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x140) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x140) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x140)" * (cast_expression "(undefined4 *)(iVar1 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x140)" ( (binary_expression "iVar1 + 0x140" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x130)" * (cast_expression "(undefined4 *)(iVar1 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x130)" ( (binary_expression "iVar1 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar1 + 0x124) = uVar28 | 0xc;" (assignment_expression "*(uint *)(iVar1 + 0x124) = uVar28 | 0xc" (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) = (binary_expression "uVar28 | 0xc" identifier | number_literal)) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0003c948;" goto statement_identifier ;) })) (break_statement "break;" break ;) })) (expression_statement "iVar41 = *(int *)(iVar1 + 0x170);" (assignment_expression "iVar41 = *(int *)(iVar1 + 0x170)" identifier = (pointer_expression "*(int *)(iVar1 + 0x170)" * (cast_expression "(int *)(iVar1 + 0x170)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x170)" ( (binary_expression "iVar1 + 0x170" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar1 + 0x16c) + 4;" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x16c) + 4" identifier = (binary_expression "*(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x16c)" * (cast_expression "(int *)(iVar1 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x16c)" ( (binary_expression "iVar1 + 0x16c" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }" if (parenthesized_expression "((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001))" ( (binary_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" (parenthesized_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0'))" ( (binary_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')" (parenthesized_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0)" ( (binary_expression "(*(uint *)(iVar1 + 0x124) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x124) & 4)" ( (binary_expression "*(uint *)(iVar1 + 0x124) & 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(char *)(iVar1 + 0x348) == '\0')" ( (binary_expression "*(char *)(iVar1 + 0x348) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x348)" * (cast_expression "(char *)(iVar1 + 0x348)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x348)" ( (binary_expression "iVar1 + 0x348" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" ( (comma_expression "uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001" (assignment_expression "uVar28 = FUN_00039150(iVar1)" identifier = (call_expression "FUN_00039150(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) , (binary_expression "uVar28 < 0x4001" identifier < number_literal)) ))) )) (compound_statement "{\n          FUN_000395ac(iVar3,uVar28);\n        }" { (expression_statement "FUN_000395ac(iVar3,uVar28);" (call_expression "FUN_000395ac(iVar3,uVar28)" identifier (argument_list "(iVar3,uVar28)" ( identifier , identifier ))) ;) })) (if_statement "if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }" if (parenthesized_expression "(iVar41 != 0)" ( (binary_expression "iVar41 != 0" identifier != number_literal) )) (compound_statement "{\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }" { (if_statement "if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }" if (parenthesized_expression "(*(int *)(iVar1 + 0x328) == 0)" ( (binary_expression "*(int *)(iVar1 + 0x328) == 0" (pointer_expression "*(int *)(iVar1 + 0x328)" * (cast_expression "(int *)(iVar1 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x328)" ( (binary_expression "iVar1 + 0x328" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }" { (expression_statement "FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);" (call_expression "FUN_00039d28(iVar1,0x49444154,iVar3,iVar41)" identifier (argument_list "(iVar1,0x49444154,iVar3,iVar41)" ( identifier , number_literal , identifier , identifier ))) ;) }) (else_clause "else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }" else (compound_statement "{\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }" { (expression_statement "FUN_0003c510(iVar1,iVar3,iVar41);" (call_expression "FUN_0003c510(iVar1,iVar3,iVar41)" identifier (argument_list "(iVar1,iVar3,iVar41)" ( identifier , identifier , identifier ))) ;) }))) })) (expression_statement "*(int *)(iVar1 + 0x140) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0x140) = iVar3" (pointer_expression "*(int *)(iVar1 + 0x140)" * (cast_expression "(int *)(iVar1 + 0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x140)" ( (binary_expression "iVar1 + 0x140" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar1 + 0x144) = iVar41;" (assignment_expression "*(int *)(iVar1 + 0x144) = iVar41" (pointer_expression "*(int *)(iVar1 + 0x144)" * (cast_expression "(int *)(iVar1 + 0x144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x144)" ( (binary_expression "iVar1 + 0x144" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;" (assignment_expression "*(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar1 + 0x124) | 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" * (cast_expression "(uint *)(iVar1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x124)" ( (binary_expression "iVar1 + 0x124" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (iVar13 != 0) goto LAB_0003c7d4;" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003c7d4;" goto statement_identifier ;)) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16e48);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16e48)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16e48)" * (cast_expression "(code **)(pcVar32 + 0x16e48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16e48)" ( (binary_expression "pcVar32 + 0x16e48" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) ;) }) while (parenthesized_expression "(piVar27 != (int *)0x0)" ( (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (iVar8 != 4) {\n      return;\n    }" if (parenthesized_expression "(iVar8 != 4)" ( (binary_expression "iVar8 != 4" identifier != number_literal) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);" (call_expression "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16dfc))" ( (pointer_expression "**(code **)(pcVar32 + 0x16dfc)" * (pointer_expression "*(code **)(pcVar32 + 0x16dfc)" * (cast_expression "(code **)(pcVar32 + 0x16dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16dfc)" ( (binary_expression "pcVar32 + 0x16dfc" identifier + number_literal) ))))) )) (argument_list "(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0)" ( identifier , (binary_expression "*(int *)(pcVar32 + 0x16a0c) + 0x27d0" (pointer_expression "*(int *)(pcVar32 + 0x16a0c)" * (cast_expression "(int *)(pcVar32 + 0x16a0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x16a0c)" ( (binary_expression "pcVar32 + 0x16a0c" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();" statement_identifier : (expression_statement "puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();" (assignment_expression "puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))()" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar32 + 0x16cf8))()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar32 + 0x16cf8))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x16cf8))" ( (pointer_expression "**(code **)(pcVar32 + 0x16cf8)" * (pointer_expression "*(code **)(pcVar32 + 0x16cf8)" * (cast_expression "(code **)(pcVar32 + 0x16cf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16cf8)" ( (binary_expression "pcVar32 + 0x16cf8" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;)) (expression_statement "*(undefined4 **)(iVar1 + 0x16c) = puVar30;" (assignment_expression "*(undefined4 **)(iVar1 + 0x16c) = puVar30" (pointer_expression "*(undefined4 **)(iVar1 + 0x16c)" * (cast_expression "(undefined4 **)(iVar1 + 0x16c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x16c)" ( (binary_expression "iVar1 + 0x16c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar30 = 0;" (assignment_expression "*puVar30 = 0" (pointer_expression "*puVar30" * identifier) = number_literal) ;) })) (expression_statement "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));" (call_expression "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c))" (parenthesized_expression "(**(code **)(pcVar32 + 0x16dfc))" ( (pointer_expression "**(code **)(pcVar32 + 0x16dfc)" * (pointer_expression "*(code **)(pcVar32 + 0x16dfc)" * (cast_expression "(code **)(pcVar32 + 0x16dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16dfc)" ( (binary_expression "pcVar32 + 0x16dfc" identifier + number_literal) ))))) )) (argument_list "(iVar1,*(undefined4 *)(iVar1 + 0x14c))" ( identifier , (pointer_expression "*(undefined4 *)(iVar1 + 0x14c)" * (cast_expression "(undefined4 *)(iVar1 + 0x14c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14c)" ( (binary_expression "iVar1 + 0x14c" identifier + number_literal) )))) ))) ;) (labeled_statement "LAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);" statement_identifier : (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16bc8);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16bc8)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16bc8)" * (cast_expression "(code **)(pcVar32 + 0x16bc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16bc8)" ( (binary_expression "pcVar32 + 0x16bc8" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);" statement_identifier : (expression_statement "(*pcVar42)(iVar1,iVar13);" (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" ( (pointer_expression "*pcVar42" * identifier) )) (argument_list "(iVar1,iVar13)" ( identifier , identifier ))) ;)) (expression_statement "pcVar32 = *(code **)(pcVar32 + 0x16dfc);" (assignment_expression "pcVar32 = *(code **)(pcVar32 + 0x16dfc)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x16dfc)" * (cast_expression "(code **)(pcVar32 + 0x16dfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x16dfc)" ( (binary_expression "pcVar32 + 0x16dfc" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));" (call_expression "(*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c))" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "(iVar1,*(undefined4 *)(iVar1 + 0x14c))" ( identifier , (pointer_expression "*(undefined4 *)(iVar1 + 0x14c)" * (cast_expression "(undefined4 *)(iVar1 + 0x14c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14c)" ( (binary_expression "iVar1 + 0x14c" identifier + number_literal) )))) ))) ;) (expression_statement "uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);" (assignment_expression "uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201)" identifier = (binary_expression "(uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201)" (binary_expression "(uint)*(byte *)(iVar1 + 0x204) * (uint)" (binary_expression "(uint)*(byte *)(iVar1 + 0x204)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar1 + 0x204)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x204)" ( (binary_expression "iVar1 + 0x204" identifier + number_literal) )))) * (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(iVar1 + 0x201)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x201)" ( (binary_expression "iVar1 + 0x201" identifier + number_literal) ))))) ;) (if_statement "if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }" if (parenthesized_expression "(uVar28 < 8)" ( (binary_expression "uVar28 < 8" identifier < number_literal) )) (compound_statement "{\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }" { (expression_statement "uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;" (assignment_expression "uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3" identifier = (binary_expression "*(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3" (binary_expression "*(int *)(iVar1 + 0x1b0) * uVar28 + 7" (binary_expression "*(int *)(iVar1 + 0x1b0) * uVar28" (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) )))) * identifier) + number_literal) >> number_literal)) ;) }) (else_clause "else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }" else (compound_statement "{\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }" { (expression_statement "uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);" (assignment_expression "uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0)" identifier = (binary_expression "(uVar28 >> 3) * *(int *)(iVar1 + 0x1b0)" (parenthesized_expression "(uVar28 >> 3)" ( (binary_expression "uVar28 >> 3" identifier >> number_literal) )) * (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) )))))) ;) }))) (expression_statement "iVar13 = uVar23 + 1;" (assignment_expression "iVar13 = uVar23 + 1" identifier = (binary_expression "uVar23 + 1" identifier + number_literal)) ;) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169a0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169a0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x169a0)" * (cast_expression "(code **)(pcVar32 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169a0)" ( (binary_expression "pcVar32 + 0x169a0" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(iVar1 + 0x206) = (char)uVar28;" (assignment_expression "*(char *)(iVar1 + 0x206) = (char)uVar28" (pointer_expression "*(char *)(iVar1 + 0x206)" * (cast_expression "(char *)(iVar1 + 0x206)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x206)" ( (binary_expression "iVar1 + 0x206" identifier + number_literal) )))) = (cast_expression "(char)uVar28" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);" (assignment_expression "*(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202)" (pointer_expression "*(undefined1 *)(iVar1 + 0x207)" * (cast_expression "(undefined1 *)(iVar1 + 0x207)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x207)" ( (binary_expression "iVar1 + 0x207" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar1 + 0x202)" * (cast_expression "(undefined1 *)(iVar1 + 0x202)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x202)" ( (binary_expression "iVar1 + 0x202" identifier + number_literal) ))))) ;) (expression_statement "puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);" (assignment_expression "puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13)" identifier = (cast_expression "(undefined1 *)(*pcVar42)(iVar1,iVar13)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" ( (pointer_expression "*pcVar42" * identifier) )) (argument_list "(iVar1,iVar13)" ( identifier , identifier ))))) ;) (expression_statement "iVar8 = *(int *)(iVar1 + 0x1b4);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x1b4)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b4)" * (cast_expression "(int *)(iVar1 + 0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b4)" ( (binary_expression "iVar1 + 0x1b4" identifier + number_literal) ))))) ;) (expression_statement "uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);" (assignment_expression "uVar28 = (uint)*(byte *)(iVar1 + 0x1fe)" identifier = (binary_expression "(uint)*(byte *)(iVar1 + 0x1fe)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar1 + 0x1fe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1fe)" ( (binary_expression "iVar1 + 0x1fe" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(iVar1 + 0x1d4) = puVar17;" (assignment_expression "*(undefined1 **)(iVar1 + 0x1d4) = puVar17" (pointer_expression "*(undefined1 **)(iVar1 + 0x1d4)" * (cast_expression "(undefined1 **)(iVar1 + 0x1d4)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar1 + 0x1d4)" ( (binary_expression "iVar1 + 0x1d4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (if_statement "if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }" if (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar28 = uVar28 & 0x1f;\n  }" { (expression_statement "uVar28 = uVar28 & 0x1f;" (assignment_expression "uVar28 = uVar28 & 0x1f" identifier = (binary_expression "uVar28 & 0x1f" identifier & number_literal)) ;) })) (expression_statement "iVar3 = *(int *)(iVar1 + 0x1b0);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x1b0)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n    uVar28 = uVar28 & 0x2f;\n  }" { (expression_statement "uVar28 = uVar28 & 0x2f;" (assignment_expression "uVar28 = uVar28 & 0x2f" identifier = (binary_expression "uVar28 & 0x2f" identifier & number_literal)) ;) })) (if_statement "if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }" if (parenthesized_expression "(uVar28 == 0)" ( (binary_expression "uVar28 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }" { (expression_statement "*(undefined1 *)(iVar1 + 0x1fe) = 8;" (assignment_expression "*(undefined1 *)(iVar1 + 0x1fe) = 8" (pointer_expression "*(undefined1 *)(iVar1 + 0x1fe)" * (cast_expression "(undefined1 *)(iVar1 + 0x1fe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1fe)" ( (binary_expression "iVar1 + 0x1fe" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0003ca48;" goto statement_identifier ;) })) (expression_statement "cVar26 = (char)uVar28;" (assignment_expression "cVar26 = (char)uVar28" identifier = (cast_expression "(char)uVar28" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(iVar1 + 0x1fe) = cVar26;" (assignment_expression "*(char *)(iVar1 + 0x1fe) = cVar26" (pointer_expression "*(char *)(iVar1 + 0x1fe)" * (cast_expression "(char *)(iVar1 + 0x1fe)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1fe)" ( (binary_expression "iVar1 + 0x1fe" identifier + number_literal) )))) = identifier) ;) (if_statement "if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }" if (parenthesized_expression "(((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0))" ( (binary_expression "((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)" (parenthesized_expression "((uVar28 & 0xf0) == 0)" ( (binary_expression "(uVar28 & 0xf0) == 0" (parenthesized_expression "(uVar28 & 0xf0)" ( (binary_expression "uVar28 & 0xf0" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar1 + 0x1d8) != 0)" ( (binary_expression "*(int *)(iVar1 + 0x1d8) != 0" (pointer_expression "*(int *)(iVar1 + 0x1d8)" * (cast_expression "(int *)(iVar1 + 0x1d8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1d8)" ( (binary_expression "iVar1 + 0x1d8" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }" { (labeled_statement "LAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);" statement_identifier : (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169c0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169c0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x169c0)" * (cast_expression "(code **)(pcVar32 + 0x169c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169c0)" ( (binary_expression "pcVar32 + 0x169c0" identifier + number_literal) ))))) ;)) (if_statement "if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }" if (parenthesized_expression "((uVar28 & 0xe0) == 0)" ( (binary_expression "(uVar28 & 0xe0) == 0" (parenthesized_expression "(uVar28 & 0xe0)" ( (binary_expression "uVar28 & 0xe0" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }" { (expression_statement "iVar8 = *(int *)(iVar1 + 0x1b4);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x1b4)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b4)" * (cast_expression "(int *)(iVar1 + 0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b4)" ( (binary_expression "iVar1 + 0x1b4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar1 + 0x1b0);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x1b0)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0003ca48;" goto statement_identifier ;) })) }) (else_clause "else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }" else (compound_statement "{\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }" { (expression_statement "uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);" (assignment_expression "uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13)" identifier = (call_expression "(**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13)" (parenthesized_expression "(**(code **)(pcVar32 + 0x169a0))" ( (pointer_expression "**(code **)(pcVar32 + 0x169a0)" * (pointer_expression "*(code **)(pcVar32 + 0x169a0)" * (cast_expression "(code **)(pcVar32 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169a0)" ( (binary_expression "pcVar32 + 0x169a0" identifier + number_literal) ))))) )) (argument_list "(iVar1,iVar13)" ( identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x1d8) = uVar43;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1d8) = uVar43" (pointer_expression "*(undefined4 *)(iVar1 + 0x1d8)" * (cast_expression "(undefined4 *)(iVar1 + 0x1d8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1d8)" ( (binary_expression "iVar1 + 0x1d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);" (assignment_expression "iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f)" identifier = (unary_expression "-((int)(uVar28 << 0x1b) >> 0x1f)" - (parenthesized_expression "((int)(uVar28 << 0x1b) >> 0x1f)" ( (binary_expression "(int)(uVar28 << 0x1b) >> 0x1f" (cast_expression "(int)(uVar28 << 0x1b)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar28 << 0x1b)" ( (binary_expression "uVar28 << 0x1b" identifier << number_literal) ))) >> number_literal) )))) ;) (if_statement "if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }" if (parenthesized_expression "((uVar28 & 0x20) != 0)" ( (binary_expression "(uVar28 & 0x20) != 0" (parenthesized_expression "(uVar28 & 0x20)" ( (binary_expression "uVar28 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar8 = iVar8 + 1;\n    }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) })) (if_statement "if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }" if (parenthesized_expression "((uVar28 & 0x40) != 0)" ( (binary_expression "(uVar28 & 0x40) != 0" (parenthesized_expression "(uVar28 & 0x40)" ( (binary_expression "uVar28 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (-1 < cVar26) goto LAB_0003cb38;" if (parenthesized_expression "(-1 < cVar26)" ( (binary_expression "-1 < cVar26" number_literal < identifier) )) (goto_statement "goto LAB_0003cb38;" goto statement_identifier ;)) (labeled_statement "LAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);" statement_identifier : (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169a0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169a0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x169a0)" * (cast_expression "(code **)(pcVar32 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169a0)" ( (binary_expression "pcVar32 + 0x169a0" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);" statement_identifier : (expression_statement "uVar43 = (*pcVar42)(iVar1,iVar13);" (assignment_expression "uVar43 = (*pcVar42)(iVar1,iVar13)" identifier = (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" ( (pointer_expression "*pcVar42" * identifier) )) (argument_list "(iVar1,iVar13)" ( identifier , identifier )))) ;)) (expression_statement "*(undefined4 *)(iVar1 + 0x1dc) = uVar43;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1dc) = uVar43" (pointer_expression "*(undefined4 *)(iVar1 + 0x1dc)" * (cast_expression "(undefined4 *)(iVar1 + 0x1dc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1dc)" ( (binary_expression "iVar1 + 0x1dc" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_0003ca24;" goto statement_identifier ;) })) (if_statement "if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }" if (parenthesized_expression "(-1 < cVar26)" ( (binary_expression "-1 < cVar26" number_literal < identifier) )) (compound_statement "{\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }" { (labeled_statement "LAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);" statement_identifier : (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169a0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169a0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x169a0)" * (cast_expression "(code **)(pcVar32 + 0x169a0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169a0)" ( (binary_expression "pcVar32 + 0x169a0" identifier + number_literal) ))))) ;)) (if_statement "if (iVar8 < 2) goto LAB_0003ca24;" if (parenthesized_expression "(iVar8 < 2)" ( (binary_expression "iVar8 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0003ca24;" goto statement_identifier ;)) (goto_statement "goto LAB_0003cb10;" goto statement_identifier ;) })) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169c0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169c0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x169c0)" * (cast_expression "(code **)(pcVar32 + 0x169c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x169c0)" ( (binary_expression "pcVar32 + 0x169c0" identifier + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) goto LAB_0003cb08;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0003cb08;" goto statement_identifier ;)) }))) (expression_statement "uVar43 = (*pcVar42)(iVar1,iVar13);" (assignment_expression "uVar43 = (*pcVar42)(iVar1,iVar13)" identifier = (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" ( (pointer_expression "*pcVar42" * identifier) )) (argument_list "(iVar1,iVar13)" ( identifier , identifier )))) ;) (expression_statement "iVar8 = *(int *)(iVar1 + 0x1b4);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x1b4)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b4)" * (cast_expression "(int *)(iVar1 + 0x1b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b4)" ( (binary_expression "iVar1 + 0x1b4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(iVar1 + 0x1b0);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x1b0)" identifier = (pointer_expression "*(int *)(iVar1 + 0x1b0)" * (cast_expression "(int *)(iVar1 + 0x1b0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b0)" ( (binary_expression "iVar1 + 0x1b0" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar1 + 0x1d0) = uVar43;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1d0) = uVar43" (pointer_expression "*(undefined4 *)(iVar1 + 0x1d0)" * (cast_expression "(undefined4 *)(iVar1 + 0x1d0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1d0)" ( (binary_expression "iVar1 + 0x1d0" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }" statement_identifier : (if_statement "if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }" if (parenthesized_expression "((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0))" ( (binary_expression "(*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)" (parenthesized_expression "(*(char *)(iVar1 + 0x1fc) != '\0')" ( (binary_expression "*(char *)(iVar1 + 0x1fc) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x1fc)" * (cast_expression "(char *)(iVar1 + 0x1fc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1fc)" ( (binary_expression "iVar1 + 0x1fc" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((*(uint *)(iVar1 + 300) & 2) == 0)" ( (binary_expression "(*(uint *)(iVar1 + 300) & 2) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 300) & 2)" ( (binary_expression "*(uint *)(iVar1 + 300) & 2" (pointer_expression "*(uint *)(iVar1 + 300)" * (cast_expression "(uint *)(iVar1 + 300)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 300)" ( (binary_expression "iVar1 + 300" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }" { (expression_statement "*(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;" (assignment_expression "*(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3" (pointer_expression "*(uint *)(iVar1 + 0x1b8)" * (cast_expression "(uint *)(iVar1 + 0x1b8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b8)" ( (binary_expression "iVar1 + 0x1b8" identifier + number_literal) )))) = (binary_expression "iVar8 + 7U >> 3" (binary_expression "iVar8 + 7U" identifier + number_literal) >> number_literal)) ;) (expression_statement "*(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;" (assignment_expression "*(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3" (pointer_expression "*(uint *)(iVar1 + 0x1bc)" * (cast_expression "(uint *)(iVar1 + 0x1bc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1bc)" ( (binary_expression "iVar1 + 0x1bc" identifier + number_literal) )))) = (binary_expression "iVar3 + 7U >> 3" (binary_expression "iVar3 + 7U" identifier + number_literal) >> number_literal)) ;) (return_statement "return;" return ;) }))) (expression_statement "*(int *)(iVar1 + 0x1b8) = iVar8;" (assignment_expression "*(int *)(iVar1 + 0x1b8) = iVar8" (pointer_expression "*(int *)(iVar1 + 0x1b8)" * (cast_expression "(int *)(iVar1 + 0x1b8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1b8)" ( (binary_expression "iVar1 + 0x1b8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar1 + 0x1bc) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0x1bc) = iVar3" (pointer_expression "*(int *)(iVar1 + 0x1bc)" * (cast_expression "(int *)(iVar1 + 0x1bc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x1bc)" ( (binary_expression "iVar1 + 0x1bc" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (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 * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (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 * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ])))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (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 * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + IDENT) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (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 ( IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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 = (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)) )) (goto_statement goto statement_identifier ;)) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT + LIT) ))) )))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) )) (compound_statement { (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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , 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 ( LIT , 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 ( LIT , (pointer_expression & IDENT) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , 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 ( LIT , 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 ( LIT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (subscript_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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( LIT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_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) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( LIT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( LIT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (subscript_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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (subscript_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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) - LIT) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) - LIT) < LIT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( ))) ;) (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 = (subscript_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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (subscript_expression IDENT [ LIT ])) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (subscript_expression IDENT [ LIT ])) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (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 ( ))) ;) }))) (expression_statement (assignment_expression 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) ;) (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , 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 ( (pointer_expression & IDENT) , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (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 ))) ;) (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 ))) ;) (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 ))) ;) (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 ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (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 , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (if_statement if (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 ;)) (if_statement if (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 ( ))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_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) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (do_statement do (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) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (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) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT < LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT < LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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 ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (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 = (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 ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * IDENT) + LIT) >> LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (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) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (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) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (labeled_statement 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) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (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 (binary_expression IDENT + LIT) >> LIT)) ;) (return_statement return ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_0003b374(int *param_1,int *param_2,int param_3,undefined *param_4)\n\n{\n  int iVar1;\n  code *******pppppppcVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  int *piVar7;\n  int iVar8;\n  code *******pppppppcVar9;\n  code ****ppppcVar10;\n  int *piVar11;\n  code **ppcVar12;\n  int iVar13;\n  code ******ppppppcVar14;\n  int *piVar15;\n  undefined *puVar16;\n  undefined1 *puVar17;\n  undefined *unaff_s0;\n  undefined1 *puVar18;\n  int *piVar19;\n  int *unaff_s1;\n  int *piVar20;\n  code ***pppcVar21;\n  code **ppcVar22;\n  uint uVar23;\n  int unaff_s2;\n  code *******pppppppcVar24;\n  code ****ppppcVar25;\n  char cVar26;\n  int *piVar27;\n  undefined1 *unaff_s4;\n  uint uVar28;\n  int *unaff_s5;\n  undefined4 unaff_s6;\n  code *******pppppppcVar29;\n  undefined4 *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  code ******ppppppcVar33;\n  code ******ppppppcVar34;\n  code *****pppppcVar35;\n  code ****ppppcVar36;\n  code ***pppcVar37;\n  code **ppcVar38;\n  code *pcVar39;\n  undefined *puVar40;\n  code *******unaff_s8;\n  int iVar41;\n  code *pcVar42;\n  undefined4 uVar43;\n  undefined1 auStack_c38 [4];\n  int iStack_c34;\n  int *piStack_c30;\n  int *piStack_c2c;\n  undefined1 *puStack_c28;\n  int iStack_c24;\n  uint uStack_c20;\n  code *pcStack_c1c;\n  code **ppcStack_c08;\n  uint uStack_c04;\n  uint uStack_c00;\n  uint uStack_bfc;\n  uint uStack_bf8;\n  code *pcStack_bf0;\n  uint uStack_be4;\n  int iStack_be0;\n  undefined1 auStack_bdc [4];\n  undefined1 auStack_bd8 [4];\n  undefined1 auStack_bd4 [4];\n  undefined1 auStack_bd0 [4];\n  undefined1 auStack_bcc [2];\n  undefined1 auStack_bca [2];\n  byte bStack_bc8;\n  byte bStack_bc7;\n  int *piStack_bc4;\n  undefined1 *puStack_bc0;\n  int *piStack_bbc;\n  code *pcStack_bb8;\n  int *piStack_bb4;\n  code ******ppppppcStack_bb0;\n  int *piStack_bac;\n  code ******ppppppcStack_ba8;\n  code *******pppppppcStack_ba4;\n  int *piStack_ba0;\n  undefined4 uStack_b9c;\n  code **ppcStack_b88;\n  ushort uStack_b82;\n  ushort uStack_b7e;\n  undefined1 auStack_b7c [3];\n  byte bStack_b79;\n  undefined1 auStack_b78 [3];\n  byte bStack_b75;\n  int iStack_b74;\n  int *piStack_b6c;\n  code **ppcStack_b68;\n  int *piStack_b64;\n  int *piStack_b60;\n  code *pcStack_b5c;\n  code ***pppcStack_b48;\n  undefined4 uStack_b3c;\n  undefined2 uStack_b38;\n  undefined1 uStack_b36;\n  code *pcStack_b34;\n  int *piStack_b2c;\n  code ***pppcStack_b28;\n  undefined1 *puStack_b24;\n  int *piStack_b20;\n  code *pcStack_b1c;\n  code ****ppppcStack_b08;\n  int iStack_b00;\n  undefined1 auStack_afc [4];\n  undefined1 uStack_af8;\n  code **ppcStack_af4;\n  undefined1 *puStack_af0;\n  code ******ppppppcStack_aec;\n  code ****ppppcStack_ae8;\n  undefined1 *puStack_ae4;\n  int iStack_ae0;\n  code *pcStack_adc;\n  code *****pppppcStack_ac8;\n  undefined1 uStack_abc;\n  undefined1 uStack_abb;\n  undefined1 auStack_aba [62];\n  code ***pppcStack_a7c;\n  int *piStack_a74;\n  int *piStack_a70;\n  code *******pppppppcStack_a6c;\n  int *piStack_a68;\n  code *******pppppppcStack_a64;\n  int *piStack_a60;\n  code *******pppppppcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  code ******ppppppcStack_a40;\n  code *****pppppcStack_a34;\n  code *****pppppcStack_a30;\n  int iStack_a2c;\n  code ******ppppppcStack_a28;\n  uint uStack_a24;\n  uint uStack_a20;\n  code ******ppppppcStack_a1c;\n  int iStack_a18;\n  undefined1 auStack_a14 [4];\n  undefined1 uStack_a10;\n  undefined1 uStack_a0f;\n  code *****apppppcStack_a0c [20];\n  code ****ppppcStack_9bc;\n  code ******ppppppcStack_9b8;\n  int *piStack_9b4;\n  undefined *puStack_9b0;\n  int *piStack_9ac;\n  code *******pppppppcStack_9a8;\n  int *piStack_9a4;\n  code *******pppppppcStack_9a0;\n  int *piStack_99c;\n  code *******pppppppcStack_998;\n  code *pcStack_994;\n  code ******ppppppcStack_988;\n  undefined1 *puStack_984;\n  code *******pppppppcStack_980;\n  int *piStack_97c;\n  code *****pppppcStack_978;\n  int *piStack_974;\n  undefined1 uStack_970;\n  int iStack_96c;\n  undefined *puStack_968;\n  int *piStack_964;\n  code *******pppppppcStack_960;\n  undefined1 *puStack_95c;\n  undefined *puStack_958;\n  code *pcStack_954;\n  undefined *puStack_940;\n  undefined *puStack_934;\n  code *******pppppppcStack_92c;\n  code *******pppppppcStack_928;\n  code *******pppppppcStack_924;\n  undefined4 uStack_520;\n  int iStack_4cc;\n  undefined *puStack_4c8;\n  int *piStack_4c4;\n  int iStack_4c0;\n  undefined *puStack_4bc;\n  undefined1 *puStack_4b8;\n  int *piStack_4b4;\n  undefined4 uStack_4b0;\n  code *******pppppppcStack_48c;\n  int local_484;\n  undefined4 local_480;\n  int local_47c;\n  undefined1 uStack_78;\n  undefined1 auStack_77 [83];\n  int local_24;\n  \n  puVar40 = PTR___stack_chk_guard_000534bc;\n  local_24 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar16 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  puStack_940 = puVar16 + 0x1fac0;\n  piVar31 = *(int **)(puVar16 + 0x17f8c);\n  pppppppcVar29 = (code *******)&uStack_520;\n  puStack_4bc = puVar40;\n  iStack_4cc = *piVar31;\n  pppppppcVar2 = pppppppcVar29;\n  puVar16 = param_4;\n  puStack_4c8 = unaff_s0;\n  piStack_4c4 = unaff_s1;\n  iStack_4c0 = unaff_s2;\n  puStack_4b8 = unaff_s4;\n  piStack_4b4 = unaff_s5;\n  uStack_4b0 = unaff_s6;\n  iVar1 = FUN_0003449c();\n  puVar40 = puStack_940;\n  if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  iVar1 = param_1[0x53];\n  pcVar32 = *(code **)(puVar40 + -0x7be4);\n  pcVar42 = FUN_0003b988;\n  piVar27 = param_1;\n  (*pcVar32)(param_1,iVar1);\n  pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);\n  piVar20 = *(int **)(pcVar32 + 0x17b34);\n  iStack_96c = *piVar20;\n  ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);\n  puStack_968 = unaff_s0;\n  piStack_964 = param_1;\n  pppppppcStack_960 = pppppppcStack_48c;\n  puStack_95c = &_gp_1;\n  puStack_958 = param_4;\n  pcStack_954 = pcVar42;\n  if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }\n  (*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);\n  (*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);\n  puVar17 = (undefined1 *)0x9;\n  uStack_970 = SUB41(puVar4,0);\n  piVar5 = piVar27;\n  ppppppcVar33 = &pppppcStack_978;\n  FUN_00039d28(piVar27,0x6f464673);\n  if (iStack_96c == *piVar20) {\n    return;\n  }\n  ppppppcVar34 = pppppppcStack_980[-0x1edb];\n  pcVar32 = FUN_0003ba7c;\n  (*(code *)ppppppcVar34)();\n  pppppppcVar24 = pppppppcStack_980;\n  ppppppcVar14 = ppppppcVar34 + 0x7d5d;\n  pppppcStack_a30 = ppppppcVar34[0x5e90];\n  pppppcStack_a34 = pppppcStack_978;\n  ppppcStack_9bc = *pppppcStack_a30;\n  piStack_a70 = piVar20;\n  ppppppcStack_a40 = ppppppcVar14;\n  ppppppcStack_9b8 = &pppppcStack_978;\n  piStack_9b4 = piVar20;\n  puStack_9b0 = puVar4;\n  piStack_9ac = piVar27;\n  pppppppcStack_9a8 = pppppppcVar2;\n  piStack_9a4 = param_2;\n  pppppppcStack_9a0 = pppppppcVar29;\n  piStack_99c = piVar31;\n  pppppppcStack_998 = unaff_s8;\n  pcStack_994 = pcVar32;\n  ppppppcStack_988 = ppppppcVar33;\n  puStack_984 = puVar17;\n  if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }\n  pppppcVar35 = ppppppcVar14[-0x1edb];\n  pcVar32 = FUN_0003bed8;\n  (*(code *)pppppcVar35)();\n  pppppcStack_ac8 = pppppcVar35 + 0x7c46;\n  ppppcVar25 = pppppcVar35[0x5d79];\n  pppcStack_a7c = *ppppcVar25;\n  ppppppcVar14 = ppppppcVar33;\n  puVar6 = puVar17;\n  pppppppcStack_a6c = pppppppcVar24;\n  piStack_a68 = piVar27;\n  pppppppcStack_a64 = pppppppcVar2;\n  piStack_a60 = param_2;\n  pppppppcStack_a5c = pppppppcVar29;\n  piStack_a58 = piVar31;\n  pcStack_a54 = pcVar32;\n  ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);\n  iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);\n  puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);\n  piVar31 = piVar5;\n  if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }\n  if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }\n  ppppcVar36 = pppppcStack_ac8[-0x1edb];\n  pcVar32 = FUN_0003c02c;\n  (*(code *)ppppcVar36)();\n  ppppcStack_b08 = ppppcVar36 + 0x7bf1;\n  pppcVar21 = ppppcVar36[0x5d24];\n  ppcStack_af4 = *pppcVar21;\n  pppcVar37 = ppppcVar36[0x5ced];\n  puStack_af0 = puVar18;\n  ppppppcStack_aec = ppppppcVar34;\n  ppppcStack_ae8 = ppppcVar25;\n  puStack_ae4 = puVar17;\n  iStack_ae0 = iVar1;\n  pcStack_adc = pcVar32;\n  if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }\n  (*(code *)pppcVar37)(&iStack_b00,ppppcVar10);\n  (*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);\n  piVar11 = (int *)&DAT_70485973;\n  uStack_af8 = SUB41(puVar6,0);\n  piVar27 = piVar31;\n  piVar15 = &iStack_b00;\n  FUN_00039d28();\n  if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }\n  pppcVar37 = ppppcStack_b08[-0x1edb];\n  pcVar32 = FUN_0003c120;\n  (*(code *)pppcVar37)();\n  pppcStack_b48 = pppcVar37 + 0x7bb4;\n  ppcVar22 = pppcVar37[0x5ce7];\n  pcStack_b34 = *ppcVar22;\n  piVar19 = &iStack_b00;\n  piVar7 = piVar27;\n  piStack_b2c = &iStack_b00;\n  pppcStack_b28 = pppcVar21;\n  puStack_b24 = puVar6;\n  piStack_b20 = piVar31;\n  pcStack_b1c = pcVar32;\n  if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }\n  if (pcStack_b34 == *ppcVar22) {\n    return;\n  }\n  ppcVar38 = pppcStack_b48[-0x1edb];\n  pcVar42 = FUN_0003c240;\n  (*(code *)ppcVar38)();\n  ppcStack_b88 = ppcVar38 + 0x7b6c;\n  pcVar32 = ppcVar38[0x5c9f];\n  piVar7[0xc9] = (int)ppcVar12;\n  iStack_b74 = *(int *)pcVar32;\n  piStack_b6c = piVar11;\n  ppcStack_b68 = ppcVar22;\n  piStack_b64 = piVar27;\n  piStack_b60 = piVar31;\n  pcStack_b5c = pcVar42;\n  (*ppcVar38[0x5c68])(auStack_b7c);\n  (*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);\n  iVar8 = 8;\n  iVar1 = 0x6163544c;\n  piVar31 = piVar7;\n  puVar17 = auStack_b7c;\n  FUN_00039d28();\n  if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }\n  pcVar39 = ppcStack_b88[0xffffe125];\n  uVar43 = 0x3c310;\n  (*pcVar39)();\n  pcVar42 = pcVar39 + 0x1ece0;\n  puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);\n  piVar27 = (int *)*puVar30;\n  uVar28 = (uint)uStack_b7e;\n  pcStack_bf0 = pcVar42;\n  piStack_bc4 = piVar27;\n  puStack_bc0 = auStack_b7c;\n  piStack_bbc = piVar7;\n  pcStack_bb8 = pcVar32;\n  piStack_bb4 = piVar15;\n  ppppppcStack_bb0 = ppppppcVar14;\n  piStack_bac = piVar5;\n  ppppppcStack_ba8 = ppppppcVar33;\n  pppppppcStack_ba4 = pppppppcVar9;\n  piStack_ba0 = piVar20;\n  uStack_b9c = uVar43;\n  if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }\n  pcVar32 = *(code **)(pcVar42 + -0x7b6c);\n  pcVar42 = FUN_0003c510;\n  (*pcVar32)();\n  piVar5 = *(int **)(pcVar32 + 0x16fac);\n  iStack_c34 = *piVar5;\n  piStack_c30 = piVar31;\n  piStack_c2c = piVar7;\n  puStack_c28 = puVar17;\n  iStack_c24 = iVar1;\n  uStack_c20 = uVar28;\n  pcStack_c1c = pcVar42;\n  if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }\n  (**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20);\n  (**(code **)(pcVar32 + 0x16ef8))(piVar20);\n  iVar1 = *piVar5;\n  piVar20[0xc3] = piVar20[0xc3] + 1;\n  if (iStack_c34 == iVar1) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x16f74);\n  iVar1 = iStack_c34;\n  (*pcVar32)();\n  if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;\n  if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;\n  FUN_00039dec();\n  while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }\n  (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));\nLAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);\n  pcVar32 = *(code **)(pcVar32 + 0x16dfc);\n  (*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));\n  uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);\n  if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }\n  iVar13 = uVar23 + 1;\n  pcVar42 = *(code **)(pcVar32 + 0x169a0);\n  *(char *)(iVar1 + 0x206) = (char)uVar28;\n  *(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);\n  puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);\n  *(undefined1 **)(iVar1 + 0x1d4) = puVar17;\n  *puVar17 = 0;\n  if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }\n  if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }\n  cVar26 = (char)uVar28;\n  *(char *)(iVar1 + 0x1fe) = cVar26;\n  if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }\n  uVar43 = (*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  *(undefined4 *)(iVar1 + 0x1d0) = uVar43;\nLAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }\n  *(int *)(iVar1 + 0x1b8) = iVar8;\n  *(int *)(iVar1 + 0x1bc) = iVar3;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0003b374(int *param_1,int *param_2,int param_3,undefined *param_4)" (identifier "FUN_0003b374") (parameter_list "(int *param_1,int *param_2,int param_3,undefined *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (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") (identifier "param_3")) (, ",") (parameter_declaration "undefined *param_4" (type_identifier "undefined") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  int iVar1;\n  code *******pppppppcVar2;\n  int iVar3;\n  undefined *puVar4;\n  int *piVar5;\n  undefined1 *puVar6;\n  int *piVar7;\n  int iVar8;\n  code *******pppppppcVar9;\n  code ****ppppcVar10;\n  int *piVar11;\n  code **ppcVar12;\n  int iVar13;\n  code ******ppppppcVar14;\n  int *piVar15;\n  undefined *puVar16;\n  undefined1 *puVar17;\n  undefined *unaff_s0;\n  undefined1 *puVar18;\n  int *piVar19;\n  int *unaff_s1;\n  int *piVar20;\n  code ***pppcVar21;\n  code **ppcVar22;\n  uint uVar23;\n  int unaff_s2;\n  code *******pppppppcVar24;\n  code ****ppppcVar25;\n  char cVar26;\n  int *piVar27;\n  undefined1 *unaff_s4;\n  uint uVar28;\n  int *unaff_s5;\n  undefined4 unaff_s6;\n  code *******pppppppcVar29;\n  undefined4 *puVar30;\n  int *piVar31;\n  code *pcVar32;\n  code ******ppppppcVar33;\n  code ******ppppppcVar34;\n  code *****pppppcVar35;\n  code ****ppppcVar36;\n  code ***pppcVar37;\n  code **ppcVar38;\n  code *pcVar39;\n  undefined *puVar40;\n  code *******unaff_s8;\n  int iVar41;\n  code *pcVar42;\n  undefined4 uVar43;\n  undefined1 auStack_c38 [4];\n  int iStack_c34;\n  int *piStack_c30;\n  int *piStack_c2c;\n  undefined1 *puStack_c28;\n  int iStack_c24;\n  uint uStack_c20;\n  code *pcStack_c1c;\n  code **ppcStack_c08;\n  uint uStack_c04;\n  uint uStack_c00;\n  uint uStack_bfc;\n  uint uStack_bf8;\n  code *pcStack_bf0;\n  uint uStack_be4;\n  int iStack_be0;\n  undefined1 auStack_bdc [4];\n  undefined1 auStack_bd8 [4];\n  undefined1 auStack_bd4 [4];\n  undefined1 auStack_bd0 [4];\n  undefined1 auStack_bcc [2];\n  undefined1 auStack_bca [2];\n  byte bStack_bc8;\n  byte bStack_bc7;\n  int *piStack_bc4;\n  undefined1 *puStack_bc0;\n  int *piStack_bbc;\n  code *pcStack_bb8;\n  int *piStack_bb4;\n  code ******ppppppcStack_bb0;\n  int *piStack_bac;\n  code ******ppppppcStack_ba8;\n  code *******pppppppcStack_ba4;\n  int *piStack_ba0;\n  undefined4 uStack_b9c;\n  code **ppcStack_b88;\n  ushort uStack_b82;\n  ushort uStack_b7e;\n  undefined1 auStack_b7c [3];\n  byte bStack_b79;\n  undefined1 auStack_b78 [3];\n  byte bStack_b75;\n  int iStack_b74;\n  int *piStack_b6c;\n  code **ppcStack_b68;\n  int *piStack_b64;\n  int *piStack_b60;\n  code *pcStack_b5c;\n  code ***pppcStack_b48;\n  undefined4 uStack_b3c;\n  undefined2 uStack_b38;\n  undefined1 uStack_b36;\n  code *pcStack_b34;\n  int *piStack_b2c;\n  code ***pppcStack_b28;\n  undefined1 *puStack_b24;\n  int *piStack_b20;\n  code *pcStack_b1c;\n  code ****ppppcStack_b08;\n  int iStack_b00;\n  undefined1 auStack_afc [4];\n  undefined1 uStack_af8;\n  code **ppcStack_af4;\n  undefined1 *puStack_af0;\n  code ******ppppppcStack_aec;\n  code ****ppppcStack_ae8;\n  undefined1 *puStack_ae4;\n  int iStack_ae0;\n  code *pcStack_adc;\n  code *****pppppcStack_ac8;\n  undefined1 uStack_abc;\n  undefined1 uStack_abb;\n  undefined1 auStack_aba [62];\n  code ***pppcStack_a7c;\n  int *piStack_a74;\n  int *piStack_a70;\n  code *******pppppppcStack_a6c;\n  int *piStack_a68;\n  code *******pppppppcStack_a64;\n  int *piStack_a60;\n  code *******pppppppcStack_a5c;\n  int *piStack_a58;\n  code *pcStack_a54;\n  code ******ppppppcStack_a40;\n  code *****pppppcStack_a34;\n  code *****pppppcStack_a30;\n  int iStack_a2c;\n  code ******ppppppcStack_a28;\n  uint uStack_a24;\n  uint uStack_a20;\n  code ******ppppppcStack_a1c;\n  int iStack_a18;\n  undefined1 auStack_a14 [4];\n  undefined1 uStack_a10;\n  undefined1 uStack_a0f;\n  code *****apppppcStack_a0c [20];\n  code ****ppppcStack_9bc;\n  code ******ppppppcStack_9b8;\n  int *piStack_9b4;\n  undefined *puStack_9b0;\n  int *piStack_9ac;\n  code *******pppppppcStack_9a8;\n  int *piStack_9a4;\n  code *******pppppppcStack_9a0;\n  int *piStack_99c;\n  code *******pppppppcStack_998;\n  code *pcStack_994;\n  code ******ppppppcStack_988;\n  undefined1 *puStack_984;\n  code *******pppppppcStack_980;\n  int *piStack_97c;\n  code *****pppppcStack_978;\n  int *piStack_974;\n  undefined1 uStack_970;\n  int iStack_96c;\n  undefined *puStack_968;\n  int *piStack_964;\n  code *******pppppppcStack_960;\n  undefined1 *puStack_95c;\n  undefined *puStack_958;\n  code *pcStack_954;\n  undefined *puStack_940;\n  undefined *puStack_934;\n  code *******pppppppcStack_92c;\n  code *******pppppppcStack_928;\n  code *******pppppppcStack_924;\n  undefined4 uStack_520;\n  int iStack_4cc;\n  undefined *puStack_4c8;\n  int *piStack_4c4;\n  int iStack_4c0;\n  undefined *puStack_4bc;\n  undefined1 *puStack_4b8;\n  int *piStack_4b4;\n  undefined4 uStack_4b0;\n  code *******pppppppcStack_48c;\n  int local_484;\n  undefined4 local_480;\n  int local_47c;\n  undefined1 uStack_78;\n  undefined1 auStack_77 [83];\n  int local_24;\n  \n  puVar40 = PTR___stack_chk_guard_000534bc;\n  local_24 = *(int *)PTR___stack_chk_guard_000534bc;\n  if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }\n  puVar16 = PTR___stack_chk_fail_00053484;\n  (*(code *)PTR___stack_chk_fail_00053484)();\n  puStack_940 = puVar16 + 0x1fac0;\n  piVar31 = *(int **)(puVar16 + 0x17f8c);\n  pppppppcVar29 = (code *******)&uStack_520;\n  puStack_4bc = puVar40;\n  iStack_4cc = *piVar31;\n  pppppppcVar2 = pppppppcVar29;\n  puVar16 = param_4;\n  puStack_4c8 = unaff_s0;\n  piStack_4c4 = unaff_s1;\n  iStack_4c0 = unaff_s2;\n  puStack_4b8 = unaff_s4;\n  piStack_4b4 = unaff_s5;\n  uStack_4b0 = unaff_s6;\n  iVar1 = FUN_0003449c();\n  puVar40 = puStack_940;\n  if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }\n  iVar1 = param_1[0x53];\n  pcVar32 = *(code **)(puVar40 + -0x7be4);\n  pcVar42 = FUN_0003b988;\n  piVar27 = param_1;\n  (*pcVar32)(param_1,iVar1);\n  pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);\n  piVar20 = *(int **)(pcVar32 + 0x17b34);\n  iStack_96c = *piVar20;\n  ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);\n  puStack_968 = unaff_s0;\n  piStack_964 = param_1;\n  pppppppcStack_960 = pppppppcStack_48c;\n  puStack_95c = &_gp_1;\n  puStack_958 = param_4;\n  pcStack_954 = pcVar42;\n  if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }\n  (*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);\n  (*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);\n  puVar17 = (undefined1 *)0x9;\n  uStack_970 = SUB41(puVar4,0);\n  piVar5 = piVar27;\n  ppppppcVar33 = &pppppcStack_978;\n  FUN_00039d28(piVar27,0x6f464673);\n  if (iStack_96c == *piVar20) {\n    return;\n  }\n  ppppppcVar34 = pppppppcStack_980[-0x1edb];\n  pcVar32 = FUN_0003ba7c;\n  (*(code *)ppppppcVar34)();\n  pppppppcVar24 = pppppppcStack_980;\n  ppppppcVar14 = ppppppcVar34 + 0x7d5d;\n  pppppcStack_a30 = ppppppcVar34[0x5e90];\n  pppppcStack_a34 = pppppcStack_978;\n  ppppcStack_9bc = *pppppcStack_a30;\n  piStack_a70 = piVar20;\n  ppppppcStack_a40 = ppppppcVar14;\n  ppppppcStack_9b8 = &pppppcStack_978;\n  piStack_9b4 = piVar20;\n  puStack_9b0 = puVar4;\n  piStack_9ac = piVar27;\n  pppppppcStack_9a8 = pppppppcVar2;\n  piStack_9a4 = param_2;\n  pppppppcStack_9a0 = pppppppcVar29;\n  piStack_99c = piVar31;\n  pppppppcStack_998 = unaff_s8;\n  pcStack_994 = pcVar32;\n  ppppppcStack_988 = ppppppcVar33;\n  puStack_984 = puVar17;\n  if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }\n  pppppcVar35 = ppppppcVar14[-0x1edb];\n  pcVar32 = FUN_0003bed8;\n  (*(code *)pppppcVar35)();\n  pppppcStack_ac8 = pppppcVar35 + 0x7c46;\n  ppppcVar25 = pppppcVar35[0x5d79];\n  pppcStack_a7c = *ppppcVar25;\n  ppppppcVar14 = ppppppcVar33;\n  puVar6 = puVar17;\n  pppppppcStack_a6c = pppppppcVar24;\n  piStack_a68 = piVar27;\n  pppppppcStack_a64 = pppppppcVar2;\n  piStack_a60 = param_2;\n  pppppppcStack_a5c = pppppppcVar29;\n  piStack_a58 = piVar31;\n  pcStack_a54 = pcVar32;\n  ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);\n  iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);\n  puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);\n  piVar31 = piVar5;\n  if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }\n  if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }\n  ppppcVar36 = pppppcStack_ac8[-0x1edb];\n  pcVar32 = FUN_0003c02c;\n  (*(code *)ppppcVar36)();\n  ppppcStack_b08 = ppppcVar36 + 0x7bf1;\n  pppcVar21 = ppppcVar36[0x5d24];\n  ppcStack_af4 = *pppcVar21;\n  pppcVar37 = ppppcVar36[0x5ced];\n  puStack_af0 = puVar18;\n  ppppppcStack_aec = ppppppcVar34;\n  ppppcStack_ae8 = ppppcVar25;\n  puStack_ae4 = puVar17;\n  iStack_ae0 = iVar1;\n  pcStack_adc = pcVar32;\n  if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }\n  (*(code *)pppcVar37)(&iStack_b00,ppppcVar10);\n  (*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);\n  piVar11 = (int *)&DAT_70485973;\n  uStack_af8 = SUB41(puVar6,0);\n  piVar27 = piVar31;\n  piVar15 = &iStack_b00;\n  FUN_00039d28();\n  if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }\n  pppcVar37 = ppppcStack_b08[-0x1edb];\n  pcVar32 = FUN_0003c120;\n  (*(code *)pppcVar37)();\n  pppcStack_b48 = pppcVar37 + 0x7bb4;\n  ppcVar22 = pppcVar37[0x5ce7];\n  pcStack_b34 = *ppcVar22;\n  piVar19 = &iStack_b00;\n  piVar7 = piVar27;\n  piStack_b2c = &iStack_b00;\n  pppcStack_b28 = pppcVar21;\n  puStack_b24 = puVar6;\n  piStack_b20 = piVar31;\n  pcStack_b1c = pcVar32;\n  if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }\n  if (pcStack_b34 == *ppcVar22) {\n    return;\n  }\n  ppcVar38 = pppcStack_b48[-0x1edb];\n  pcVar42 = FUN_0003c240;\n  (*(code *)ppcVar38)();\n  ppcStack_b88 = ppcVar38 + 0x7b6c;\n  pcVar32 = ppcVar38[0x5c9f];\n  piVar7[0xc9] = (int)ppcVar12;\n  iStack_b74 = *(int *)pcVar32;\n  piStack_b6c = piVar11;\n  ppcStack_b68 = ppcVar22;\n  piStack_b64 = piVar27;\n  piStack_b60 = piVar31;\n  pcStack_b5c = pcVar42;\n  (*ppcVar38[0x5c68])(auStack_b7c);\n  (*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);\n  iVar8 = 8;\n  iVar1 = 0x6163544c;\n  piVar31 = piVar7;\n  puVar17 = auStack_b7c;\n  FUN_00039d28();\n  if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }\n  pcVar39 = ppcStack_b88[0xffffe125];\n  uVar43 = 0x3c310;\n  (*pcVar39)();\n  pcVar42 = pcVar39 + 0x1ece0;\n  puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);\n  piVar27 = (int *)*puVar30;\n  uVar28 = (uint)uStack_b7e;\n  pcStack_bf0 = pcVar42;\n  piStack_bc4 = piVar27;\n  puStack_bc0 = auStack_b7c;\n  piStack_bbc = piVar7;\n  pcStack_bb8 = pcVar32;\n  piStack_bb4 = piVar15;\n  ppppppcStack_bb0 = ppppppcVar14;\n  piStack_bac = piVar5;\n  ppppppcStack_ba8 = ppppppcVar33;\n  pppppppcStack_ba4 = pppppppcVar9;\n  piStack_ba0 = piVar20;\n  uStack_b9c = uVar43;\n  if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }\n  pcVar32 = *(code **)(pcVar42 + -0x7b6c);\n  pcVar42 = FUN_0003c510;\n  (*pcVar32)();\n  piVar5 = *(int **)(pcVar32 + 0x16fac);\n  iStack_c34 = *piVar5;\n  piStack_c30 = piVar31;\n  piStack_c2c = piVar7;\n  puStack_c28 = puVar17;\n  iStack_c24 = iVar1;\n  uStack_c20 = uVar28;\n  pcStack_c1c = pcVar42;\n  if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }\n  (**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);\n  (**(code **)(pcVar32 + 0x16fec))(piVar20);\n  (**(code **)(pcVar32 + 0x16ef8))(piVar20);\n  iVar1 = *piVar5;\n  piVar20[0xc3] = piVar20[0xc3] + 1;\n  if (iStack_c34 == iVar1) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x16f74);\n  iVar1 = iStack_c34;\n  (*pcVar32)();\n  if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;\n  if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;\n  FUN_00039dec();\n  while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }\n  (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));\nLAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);\nLAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);\n  pcVar32 = *(code **)(pcVar32 + 0x16dfc);\n  (*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));\n  uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);\n  if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }\n  iVar13 = uVar23 + 1;\n  pcVar42 = *(code **)(pcVar32 + 0x169a0);\n  *(char *)(iVar1 + 0x206) = (char)uVar28;\n  *(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);\n  puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);\n  *(undefined1 **)(iVar1 + 0x1d4) = puVar17;\n  *puVar17 = 0;\n  if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }\n  if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }\n  cVar26 = (char)uVar28;\n  *(char *)(iVar1 + 0x1fe) = cVar26;\n  if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }\n  uVar43 = (*pcVar42)(iVar1,iVar13);\n  iVar8 = *(int *)(iVar1 + 0x1b4);\n  iVar3 = *(int *)(iVar1 + 0x1b0);\n  *(undefined4 *)(iVar1 + 0x1d0) = uVar43;\nLAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }\n  *(int *)(iVar1 + 0x1b8) = iVar8;\n  *(int *)(iVar1 + 0x1bc) = iVar3;\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "code *******pppppppcVar2;" (type_identifier "code") (pointer_declarator "*******pppppppcVar2" (* "*") (pointer_declarator "******pppppppcVar2" (* "*") (pointer_declarator "*****pppppppcVar2" (* "*") (pointer_declarator "****pppppppcVar2" (* "*") (pointer_declarator "***pppppppcVar2" (* "*") (pointer_declarator "**pppppppcVar2" (* "*") (pointer_declarator "*pppppppcVar2" (* "*") (identifier "pppppppcVar2")))))))) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined1 *puVar6;" (type_identifier "undefined1") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "code *******pppppppcVar9;" (type_identifier "code") (pointer_declarator "*******pppppppcVar9" (* "*") (pointer_declarator "******pppppppcVar9" (* "*") (pointer_declarator "*****pppppppcVar9" (* "*") (pointer_declarator "****pppppppcVar9" (* "*") (pointer_declarator "***pppppppcVar9" (* "*") (pointer_declarator "**pppppppcVar9" (* "*") (pointer_declarator "*pppppppcVar9" (* "*") (identifier "pppppppcVar9")))))))) (; ";")) (declaration "code ****ppppcVar10;" (type_identifier "code") (pointer_declarator "****ppppcVar10" (* "*") (pointer_declarator "***ppppcVar10" (* "*") (pointer_declarator "**ppppcVar10" (* "*") (pointer_declarator "*ppppcVar10" (* "*") (identifier "ppppcVar10"))))) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "code **ppcVar12;" (type_identifier "code") (pointer_declarator "**ppcVar12" (* "*") (pointer_declarator "*ppcVar12" (* "*") (identifier "ppcVar12"))) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "code ******ppppppcVar14;" (type_identifier "code") (pointer_declarator "******ppppppcVar14" (* "*") (pointer_declarator "*****ppppppcVar14" (* "*") (pointer_declarator "****ppppppcVar14" (* "*") (pointer_declarator "***ppppppcVar14" (* "*") (pointer_declarator "**ppppppcVar14" (* "*") (pointer_declarator "*ppppppcVar14" (* "*") (identifier "ppppppcVar14"))))))) (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined1 *puVar17;" (type_identifier "undefined1") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined *unaff_s0;" (type_identifier "undefined") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "undefined1 *puVar18;" (type_identifier "undefined1") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "int *unaff_s1;" (primitive_type "int") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "code ***pppcVar21;" (type_identifier "code") (pointer_declarator "***pppcVar21" (* "*") (pointer_declarator "**pppcVar21" (* "*") (pointer_declarator "*pppcVar21" (* "*") (identifier "pppcVar21")))) (; ";")) (declaration "code **ppcVar22;" (type_identifier "code") (pointer_declarator "**ppcVar22" (* "*") (pointer_declarator "*ppcVar22" (* "*") (identifier "ppcVar22"))) (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "int unaff_s2;" (primitive_type "int") (identifier "unaff_s2") (; ";")) (declaration "code *******pppppppcVar24;" (type_identifier "code") (pointer_declarator "*******pppppppcVar24" (* "*") (pointer_declarator "******pppppppcVar24" (* "*") (pointer_declarator "*****pppppppcVar24" (* "*") (pointer_declarator "****pppppppcVar24" (* "*") (pointer_declarator "***pppppppcVar24" (* "*") (pointer_declarator "**pppppppcVar24" (* "*") (pointer_declarator "*pppppppcVar24" (* "*") (identifier "pppppppcVar24")))))))) (; ";")) (declaration "code ****ppppcVar25;" (type_identifier "code") (pointer_declarator "****ppppcVar25" (* "*") (pointer_declarator "***ppppcVar25" (* "*") (pointer_declarator "**ppppcVar25" (* "*") (pointer_declarator "*ppppcVar25" (* "*") (identifier "ppppcVar25"))))) (; ";")) (declaration "char cVar26;" (primitive_type "char") (identifier "cVar26") (; ";")) (declaration "int *piVar27;" (primitive_type "int") (pointer_declarator "*piVar27" (* "*") (identifier "piVar27")) (; ";")) (declaration "undefined1 *unaff_s4;" (type_identifier "undefined1") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "uint uVar28;" (type_identifier "uint") (identifier "uVar28") (; ";")) (declaration "int *unaff_s5;" (primitive_type "int") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined4 unaff_s6;" (type_identifier "undefined4") (identifier "unaff_s6") (; ";")) (declaration "code *******pppppppcVar29;" (type_identifier "code") (pointer_declarator "*******pppppppcVar29" (* "*") (pointer_declarator "******pppppppcVar29" (* "*") (pointer_declarator "*****pppppppcVar29" (* "*") (pointer_declarator "****pppppppcVar29" (* "*") (pointer_declarator "***pppppppcVar29" (* "*") (pointer_declarator "**pppppppcVar29" (* "*") (pointer_declarator "*pppppppcVar29" (* "*") (identifier "pppppppcVar29")))))))) (; ";")) (declaration "undefined4 *puVar30;" (type_identifier "undefined4") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "int *piVar31;" (primitive_type "int") (pointer_declarator "*piVar31" (* "*") (identifier "piVar31")) (; ";")) (declaration "code *pcVar32;" (type_identifier "code") (pointer_declarator "*pcVar32" (* "*") (identifier "pcVar32")) (; ";")) (declaration "code ******ppppppcVar33;" (type_identifier "code") (pointer_declarator "******ppppppcVar33" (* "*") (pointer_declarator "*****ppppppcVar33" (* "*") (pointer_declarator "****ppppppcVar33" (* "*") (pointer_declarator "***ppppppcVar33" (* "*") (pointer_declarator "**ppppppcVar33" (* "*") (pointer_declarator "*ppppppcVar33" (* "*") (identifier "ppppppcVar33"))))))) (; ";")) (declaration "code ******ppppppcVar34;" (type_identifier "code") (pointer_declarator "******ppppppcVar34" (* "*") (pointer_declarator "*****ppppppcVar34" (* "*") (pointer_declarator "****ppppppcVar34" (* "*") (pointer_declarator "***ppppppcVar34" (* "*") (pointer_declarator "**ppppppcVar34" (* "*") (pointer_declarator "*ppppppcVar34" (* "*") (identifier "ppppppcVar34"))))))) (; ";")) (declaration "code *****pppppcVar35;" (type_identifier "code") (pointer_declarator "*****pppppcVar35" (* "*") (pointer_declarator "****pppppcVar35" (* "*") (pointer_declarator "***pppppcVar35" (* "*") (pointer_declarator "**pppppcVar35" (* "*") (pointer_declarator "*pppppcVar35" (* "*") (identifier "pppppcVar35")))))) (; ";")) (declaration "code ****ppppcVar36;" (type_identifier "code") (pointer_declarator "****ppppcVar36" (* "*") (pointer_declarator "***ppppcVar36" (* "*") (pointer_declarator "**ppppcVar36" (* "*") (pointer_declarator "*ppppcVar36" (* "*") (identifier "ppppcVar36"))))) (; ";")) (declaration "code ***pppcVar37;" (type_identifier "code") (pointer_declarator "***pppcVar37" (* "*") (pointer_declarator "**pppcVar37" (* "*") (pointer_declarator "*pppcVar37" (* "*") (identifier "pppcVar37")))) (; ";")) (declaration "code **ppcVar38;" (type_identifier "code") (pointer_declarator "**ppcVar38" (* "*") (pointer_declarator "*ppcVar38" (* "*") (identifier "ppcVar38"))) (; ";")) (declaration "code *pcVar39;" (type_identifier "code") (pointer_declarator "*pcVar39" (* "*") (identifier "pcVar39")) (; ";")) (declaration "undefined *puVar40;" (type_identifier "undefined") (pointer_declarator "*puVar40" (* "*") (identifier "puVar40")) (; ";")) (declaration "code *******unaff_s8;" (type_identifier "code") (pointer_declarator "*******unaff_s8" (* "*") (pointer_declarator "******unaff_s8" (* "*") (pointer_declarator "*****unaff_s8" (* "*") (pointer_declarator "****unaff_s8" (* "*") (pointer_declarator "***unaff_s8" (* "*") (pointer_declarator "**unaff_s8" (* "*") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")))))))) (; ";")) (declaration "int iVar41;" (primitive_type "int") (identifier "iVar41") (; ";")) (declaration "code *pcVar42;" (type_identifier "code") (pointer_declarator "*pcVar42" (* "*") (identifier "pcVar42")) (; ";")) (declaration "undefined4 uVar43;" (type_identifier "undefined4") (identifier "uVar43") (; ";")) (declaration "undefined1 auStack_c38 [4];" (type_identifier "undefined1") (array_declarator "auStack_c38 [4]" (identifier "auStack_c38") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int iStack_c34;" (primitive_type "int") (identifier "iStack_c34") (; ";")) (declaration "int *piStack_c30;" (primitive_type "int") (pointer_declarator "*piStack_c30" (* "*") (identifier "piStack_c30")) (; ";")) (declaration "int *piStack_c2c;" (primitive_type "int") (pointer_declarator "*piStack_c2c" (* "*") (identifier "piStack_c2c")) (; ";")) (declaration "undefined1 *puStack_c28;" (type_identifier "undefined1") (pointer_declarator "*puStack_c28" (* "*") (identifier "puStack_c28")) (; ";")) (declaration "int iStack_c24;" (primitive_type "int") (identifier "iStack_c24") (; ";")) (declaration "uint uStack_c20;" (type_identifier "uint") (identifier "uStack_c20") (; ";")) (declaration "code *pcStack_c1c;" (type_identifier "code") (pointer_declarator "*pcStack_c1c" (* "*") (identifier "pcStack_c1c")) (; ";")) (declaration "code **ppcStack_c08;" (type_identifier "code") (pointer_declarator "**ppcStack_c08" (* "*") (pointer_declarator "*ppcStack_c08" (* "*") (identifier "ppcStack_c08"))) (; ";")) (declaration "uint uStack_c04;" (type_identifier "uint") (identifier "uStack_c04") (; ";")) (declaration "uint uStack_c00;" (type_identifier "uint") (identifier "uStack_c00") (; ";")) (declaration "uint uStack_bfc;" (type_identifier "uint") (identifier "uStack_bfc") (; ";")) (declaration "uint uStack_bf8;" (type_identifier "uint") (identifier "uStack_bf8") (; ";")) (declaration "code *pcStack_bf0;" (type_identifier "code") (pointer_declarator "*pcStack_bf0" (* "*") (identifier "pcStack_bf0")) (; ";")) (declaration "uint uStack_be4;" (type_identifier "uint") (identifier "uStack_be4") (; ";")) (declaration "int iStack_be0;" (primitive_type "int") (identifier "iStack_be0") (; ";")) (declaration "undefined1 auStack_bdc [4];" (type_identifier "undefined1") (array_declarator "auStack_bdc [4]" (identifier "auStack_bdc") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_bd8 [4];" (type_identifier "undefined1") (array_declarator "auStack_bd8 [4]" (identifier "auStack_bd8") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_bd4 [4];" (type_identifier "undefined1") (array_declarator "auStack_bd4 [4]" (identifier "auStack_bd4") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_bd0 [4];" (type_identifier "undefined1") (array_declarator "auStack_bd0 [4]" (identifier "auStack_bd0") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_bcc [2];" (type_identifier "undefined1") (array_declarator "auStack_bcc [2]" (identifier "auStack_bcc") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined1 auStack_bca [2];" (type_identifier "undefined1") (array_declarator "auStack_bca [2]" (identifier "auStack_bca") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "byte bStack_bc8;" (type_identifier "byte") (identifier "bStack_bc8") (; ";")) (declaration "byte bStack_bc7;" (type_identifier "byte") (identifier "bStack_bc7") (; ";")) (declaration "int *piStack_bc4;" (primitive_type "int") (pointer_declarator "*piStack_bc4" (* "*") (identifier "piStack_bc4")) (; ";")) (declaration "undefined1 *puStack_bc0;" (type_identifier "undefined1") (pointer_declarator "*puStack_bc0" (* "*") (identifier "puStack_bc0")) (; ";")) (declaration "int *piStack_bbc;" (primitive_type "int") (pointer_declarator "*piStack_bbc" (* "*") (identifier "piStack_bbc")) (; ";")) (declaration "code *pcStack_bb8;" (type_identifier "code") (pointer_declarator "*pcStack_bb8" (* "*") (identifier "pcStack_bb8")) (; ";")) (declaration "int *piStack_bb4;" (primitive_type "int") (pointer_declarator "*piStack_bb4" (* "*") (identifier "piStack_bb4")) (; ";")) (declaration "code ******ppppppcStack_bb0;" (type_identifier "code") (pointer_declarator "******ppppppcStack_bb0" (* "*") (pointer_declarator "*****ppppppcStack_bb0" (* "*") (pointer_declarator "****ppppppcStack_bb0" (* "*") (pointer_declarator "***ppppppcStack_bb0" (* "*") (pointer_declarator "**ppppppcStack_bb0" (* "*") (pointer_declarator "*ppppppcStack_bb0" (* "*") (identifier "ppppppcStack_bb0"))))))) (; ";")) (declaration "int *piStack_bac;" (primitive_type "int") (pointer_declarator "*piStack_bac" (* "*") (identifier "piStack_bac")) (; ";")) (declaration "code ******ppppppcStack_ba8;" (type_identifier "code") (pointer_declarator "******ppppppcStack_ba8" (* "*") (pointer_declarator "*****ppppppcStack_ba8" (* "*") (pointer_declarator "****ppppppcStack_ba8" (* "*") (pointer_declarator "***ppppppcStack_ba8" (* "*") (pointer_declarator "**ppppppcStack_ba8" (* "*") (pointer_declarator "*ppppppcStack_ba8" (* "*") (identifier "ppppppcStack_ba8"))))))) (; ";")) (declaration "code *******pppppppcStack_ba4;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_ba4" (* "*") (pointer_declarator "******pppppppcStack_ba4" (* "*") (pointer_declarator "*****pppppppcStack_ba4" (* "*") (pointer_declarator "****pppppppcStack_ba4" (* "*") (pointer_declarator "***pppppppcStack_ba4" (* "*") (pointer_declarator "**pppppppcStack_ba4" (* "*") (pointer_declarator "*pppppppcStack_ba4" (* "*") (identifier "pppppppcStack_ba4")))))))) (; ";")) (declaration "int *piStack_ba0;" (primitive_type "int") (pointer_declarator "*piStack_ba0" (* "*") (identifier "piStack_ba0")) (; ";")) (declaration "undefined4 uStack_b9c;" (type_identifier "undefined4") (identifier "uStack_b9c") (; ";")) (declaration "code **ppcStack_b88;" (type_identifier "code") (pointer_declarator "**ppcStack_b88" (* "*") (pointer_declarator "*ppcStack_b88" (* "*") (identifier "ppcStack_b88"))) (; ";")) (declaration "ushort uStack_b82;" (type_identifier "ushort") (identifier "uStack_b82") (; ";")) (declaration "ushort uStack_b7e;" (type_identifier "ushort") (identifier "uStack_b7e") (; ";")) (declaration "undefined1 auStack_b7c [3];" (type_identifier "undefined1") (array_declarator "auStack_b7c [3]" (identifier "auStack_b7c") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "byte bStack_b79;" (type_identifier "byte") (identifier "bStack_b79") (; ";")) (declaration "undefined1 auStack_b78 [3];" (type_identifier "undefined1") (array_declarator "auStack_b78 [3]" (identifier "auStack_b78") ([ "[") (number_literal "3") (] "]")) (; ";")) (declaration "byte bStack_b75;" (type_identifier "byte") (identifier "bStack_b75") (; ";")) (declaration "int iStack_b74;" (primitive_type "int") (identifier "iStack_b74") (; ";")) (declaration "int *piStack_b6c;" (primitive_type "int") (pointer_declarator "*piStack_b6c" (* "*") (identifier "piStack_b6c")) (; ";")) (declaration "code **ppcStack_b68;" (type_identifier "code") (pointer_declarator "**ppcStack_b68" (* "*") (pointer_declarator "*ppcStack_b68" (* "*") (identifier "ppcStack_b68"))) (; ";")) (declaration "int *piStack_b64;" (primitive_type "int") (pointer_declarator "*piStack_b64" (* "*") (identifier "piStack_b64")) (; ";")) (declaration "int *piStack_b60;" (primitive_type "int") (pointer_declarator "*piStack_b60" (* "*") (identifier "piStack_b60")) (; ";")) (declaration "code *pcStack_b5c;" (type_identifier "code") (pointer_declarator "*pcStack_b5c" (* "*") (identifier "pcStack_b5c")) (; ";")) (declaration "code ***pppcStack_b48;" (type_identifier "code") (pointer_declarator "***pppcStack_b48" (* "*") (pointer_declarator "**pppcStack_b48" (* "*") (pointer_declarator "*pppcStack_b48" (* "*") (identifier "pppcStack_b48")))) (; ";")) (declaration "undefined4 uStack_b3c;" (type_identifier "undefined4") (identifier "uStack_b3c") (; ";")) (declaration "undefined2 uStack_b38;" (type_identifier "undefined2") (identifier "uStack_b38") (; ";")) (declaration "undefined1 uStack_b36;" (type_identifier "undefined1") (identifier "uStack_b36") (; ";")) (declaration "code *pcStack_b34;" (type_identifier "code") (pointer_declarator "*pcStack_b34" (* "*") (identifier "pcStack_b34")) (; ";")) (declaration "int *piStack_b2c;" (primitive_type "int") (pointer_declarator "*piStack_b2c" (* "*") (identifier "piStack_b2c")) (; ";")) (declaration "code ***pppcStack_b28;" (type_identifier "code") (pointer_declarator "***pppcStack_b28" (* "*") (pointer_declarator "**pppcStack_b28" (* "*") (pointer_declarator "*pppcStack_b28" (* "*") (identifier "pppcStack_b28")))) (; ";")) (declaration "undefined1 *puStack_b24;" (type_identifier "undefined1") (pointer_declarator "*puStack_b24" (* "*") (identifier "puStack_b24")) (; ";")) (declaration "int *piStack_b20;" (primitive_type "int") (pointer_declarator "*piStack_b20" (* "*") (identifier "piStack_b20")) (; ";")) (declaration "code *pcStack_b1c;" (type_identifier "code") (pointer_declarator "*pcStack_b1c" (* "*") (identifier "pcStack_b1c")) (; ";")) (declaration "code ****ppppcStack_b08;" (type_identifier "code") (pointer_declarator "****ppppcStack_b08" (* "*") (pointer_declarator "***ppppcStack_b08" (* "*") (pointer_declarator "**ppppcStack_b08" (* "*") (pointer_declarator "*ppppcStack_b08" (* "*") (identifier "ppppcStack_b08"))))) (; ";")) (declaration "int iStack_b00;" (primitive_type "int") (identifier "iStack_b00") (; ";")) (declaration "undefined1 auStack_afc [4];" (type_identifier "undefined1") (array_declarator "auStack_afc [4]" (identifier "auStack_afc") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 uStack_af8;" (type_identifier "undefined1") (identifier "uStack_af8") (; ";")) (declaration "code **ppcStack_af4;" (type_identifier "code") (pointer_declarator "**ppcStack_af4" (* "*") (pointer_declarator "*ppcStack_af4" (* "*") (identifier "ppcStack_af4"))) (; ";")) (declaration "undefined1 *puStack_af0;" (type_identifier "undefined1") (pointer_declarator "*puStack_af0" (* "*") (identifier "puStack_af0")) (; ";")) (declaration "code ******ppppppcStack_aec;" (type_identifier "code") (pointer_declarator "******ppppppcStack_aec" (* "*") (pointer_declarator "*****ppppppcStack_aec" (* "*") (pointer_declarator "****ppppppcStack_aec" (* "*") (pointer_declarator "***ppppppcStack_aec" (* "*") (pointer_declarator "**ppppppcStack_aec" (* "*") (pointer_declarator "*ppppppcStack_aec" (* "*") (identifier "ppppppcStack_aec"))))))) (; ";")) (declaration "code ****ppppcStack_ae8;" (type_identifier "code") (pointer_declarator "****ppppcStack_ae8" (* "*") (pointer_declarator "***ppppcStack_ae8" (* "*") (pointer_declarator "**ppppcStack_ae8" (* "*") (pointer_declarator "*ppppcStack_ae8" (* "*") (identifier "ppppcStack_ae8"))))) (; ";")) (declaration "undefined1 *puStack_ae4;" (type_identifier "undefined1") (pointer_declarator "*puStack_ae4" (* "*") (identifier "puStack_ae4")) (; ";")) (declaration "int iStack_ae0;" (primitive_type "int") (identifier "iStack_ae0") (; ";")) (declaration "code *pcStack_adc;" (type_identifier "code") (pointer_declarator "*pcStack_adc" (* "*") (identifier "pcStack_adc")) (; ";")) (declaration "code *****pppppcStack_ac8;" (type_identifier "code") (pointer_declarator "*****pppppcStack_ac8" (* "*") (pointer_declarator "****pppppcStack_ac8" (* "*") (pointer_declarator "***pppppcStack_ac8" (* "*") (pointer_declarator "**pppppcStack_ac8" (* "*") (pointer_declarator "*pppppcStack_ac8" (* "*") (identifier "pppppcStack_ac8")))))) (; ";")) (declaration "undefined1 uStack_abc;" (type_identifier "undefined1") (identifier "uStack_abc") (; ";")) (declaration "undefined1 uStack_abb;" (type_identifier "undefined1") (identifier "uStack_abb") (; ";")) (declaration "undefined1 auStack_aba [62];" (type_identifier "undefined1") (array_declarator "auStack_aba [62]" (identifier "auStack_aba") ([ "[") (number_literal "62") (] "]")) (; ";")) (declaration "code ***pppcStack_a7c;" (type_identifier "code") (pointer_declarator "***pppcStack_a7c" (* "*") (pointer_declarator "**pppcStack_a7c" (* "*") (pointer_declarator "*pppcStack_a7c" (* "*") (identifier "pppcStack_a7c")))) (; ";")) (declaration "int *piStack_a74;" (primitive_type "int") (pointer_declarator "*piStack_a74" (* "*") (identifier "piStack_a74")) (; ";")) (declaration "int *piStack_a70;" (primitive_type "int") (pointer_declarator "*piStack_a70" (* "*") (identifier "piStack_a70")) (; ";")) (declaration "code *******pppppppcStack_a6c;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_a6c" (* "*") (pointer_declarator "******pppppppcStack_a6c" (* "*") (pointer_declarator "*****pppppppcStack_a6c" (* "*") (pointer_declarator "****pppppppcStack_a6c" (* "*") (pointer_declarator "***pppppppcStack_a6c" (* "*") (pointer_declarator "**pppppppcStack_a6c" (* "*") (pointer_declarator "*pppppppcStack_a6c" (* "*") (identifier "pppppppcStack_a6c")))))))) (; ";")) (declaration "int *piStack_a68;" (primitive_type "int") (pointer_declarator "*piStack_a68" (* "*") (identifier "piStack_a68")) (; ";")) (declaration "code *******pppppppcStack_a64;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_a64" (* "*") (pointer_declarator "******pppppppcStack_a64" (* "*") (pointer_declarator "*****pppppppcStack_a64" (* "*") (pointer_declarator "****pppppppcStack_a64" (* "*") (pointer_declarator "***pppppppcStack_a64" (* "*") (pointer_declarator "**pppppppcStack_a64" (* "*") (pointer_declarator "*pppppppcStack_a64" (* "*") (identifier "pppppppcStack_a64")))))))) (; ";")) (declaration "int *piStack_a60;" (primitive_type "int") (pointer_declarator "*piStack_a60" (* "*") (identifier "piStack_a60")) (; ";")) (declaration "code *******pppppppcStack_a5c;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_a5c" (* "*") (pointer_declarator "******pppppppcStack_a5c" (* "*") (pointer_declarator "*****pppppppcStack_a5c" (* "*") (pointer_declarator "****pppppppcStack_a5c" (* "*") (pointer_declarator "***pppppppcStack_a5c" (* "*") (pointer_declarator "**pppppppcStack_a5c" (* "*") (pointer_declarator "*pppppppcStack_a5c" (* "*") (identifier "pppppppcStack_a5c")))))))) (; ";")) (declaration "int *piStack_a58;" (primitive_type "int") (pointer_declarator "*piStack_a58" (* "*") (identifier "piStack_a58")) (; ";")) (declaration "code *pcStack_a54;" (type_identifier "code") (pointer_declarator "*pcStack_a54" (* "*") (identifier "pcStack_a54")) (; ";")) (declaration "code ******ppppppcStack_a40;" (type_identifier "code") (pointer_declarator "******ppppppcStack_a40" (* "*") (pointer_declarator "*****ppppppcStack_a40" (* "*") (pointer_declarator "****ppppppcStack_a40" (* "*") (pointer_declarator "***ppppppcStack_a40" (* "*") (pointer_declarator "**ppppppcStack_a40" (* "*") (pointer_declarator "*ppppppcStack_a40" (* "*") (identifier "ppppppcStack_a40"))))))) (; ";")) (declaration "code *****pppppcStack_a34;" (type_identifier "code") (pointer_declarator "*****pppppcStack_a34" (* "*") (pointer_declarator "****pppppcStack_a34" (* "*") (pointer_declarator "***pppppcStack_a34" (* "*") (pointer_declarator "**pppppcStack_a34" (* "*") (pointer_declarator "*pppppcStack_a34" (* "*") (identifier "pppppcStack_a34")))))) (; ";")) (declaration "code *****pppppcStack_a30;" (type_identifier "code") (pointer_declarator "*****pppppcStack_a30" (* "*") (pointer_declarator "****pppppcStack_a30" (* "*") (pointer_declarator "***pppppcStack_a30" (* "*") (pointer_declarator "**pppppcStack_a30" (* "*") (pointer_declarator "*pppppcStack_a30" (* "*") (identifier "pppppcStack_a30")))))) (; ";")) (declaration "int iStack_a2c;" (primitive_type "int") (identifier "iStack_a2c") (; ";")) (declaration "code ******ppppppcStack_a28;" (type_identifier "code") (pointer_declarator "******ppppppcStack_a28" (* "*") (pointer_declarator "*****ppppppcStack_a28" (* "*") (pointer_declarator "****ppppppcStack_a28" (* "*") (pointer_declarator "***ppppppcStack_a28" (* "*") (pointer_declarator "**ppppppcStack_a28" (* "*") (pointer_declarator "*ppppppcStack_a28" (* "*") (identifier "ppppppcStack_a28"))))))) (; ";")) (declaration "uint uStack_a24;" (type_identifier "uint") (identifier "uStack_a24") (; ";")) (declaration "uint uStack_a20;" (type_identifier "uint") (identifier "uStack_a20") (; ";")) (declaration "code ******ppppppcStack_a1c;" (type_identifier "code") (pointer_declarator "******ppppppcStack_a1c" (* "*") (pointer_declarator "*****ppppppcStack_a1c" (* "*") (pointer_declarator "****ppppppcStack_a1c" (* "*") (pointer_declarator "***ppppppcStack_a1c" (* "*") (pointer_declarator "**ppppppcStack_a1c" (* "*") (pointer_declarator "*ppppppcStack_a1c" (* "*") (identifier "ppppppcStack_a1c"))))))) (; ";")) (declaration "int iStack_a18;" (primitive_type "int") (identifier "iStack_a18") (; ";")) (declaration "undefined1 auStack_a14 [4];" (type_identifier "undefined1") (array_declarator "auStack_a14 [4]" (identifier "auStack_a14") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 uStack_a10;" (type_identifier "undefined1") (identifier "uStack_a10") (; ";")) (declaration "undefined1 uStack_a0f;" (type_identifier "undefined1") (identifier "uStack_a0f") (; ";")) (declaration "code *****apppppcStack_a0c [20];" (type_identifier "code") (pointer_declarator "*****apppppcStack_a0c [20]" (* "*") (pointer_declarator "****apppppcStack_a0c [20]" (* "*") (pointer_declarator "***apppppcStack_a0c [20]" (* "*") (pointer_declarator "**apppppcStack_a0c [20]" (* "*") (pointer_declarator "*apppppcStack_a0c [20]" (* "*") (array_declarator "apppppcStack_a0c [20]" (identifier "apppppcStack_a0c") ([ "[") (number_literal "20") (] "]"))))))) (; ";")) (declaration "code ****ppppcStack_9bc;" (type_identifier "code") (pointer_declarator "****ppppcStack_9bc" (* "*") (pointer_declarator "***ppppcStack_9bc" (* "*") (pointer_declarator "**ppppcStack_9bc" (* "*") (pointer_declarator "*ppppcStack_9bc" (* "*") (identifier "ppppcStack_9bc"))))) (; ";")) (declaration "code ******ppppppcStack_9b8;" (type_identifier "code") (pointer_declarator "******ppppppcStack_9b8" (* "*") (pointer_declarator "*****ppppppcStack_9b8" (* "*") (pointer_declarator "****ppppppcStack_9b8" (* "*") (pointer_declarator "***ppppppcStack_9b8" (* "*") (pointer_declarator "**ppppppcStack_9b8" (* "*") (pointer_declarator "*ppppppcStack_9b8" (* "*") (identifier "ppppppcStack_9b8"))))))) (; ";")) (declaration "int *piStack_9b4;" (primitive_type "int") (pointer_declarator "*piStack_9b4" (* "*") (identifier "piStack_9b4")) (; ";")) (declaration "undefined *puStack_9b0;" (type_identifier "undefined") (pointer_declarator "*puStack_9b0" (* "*") (identifier "puStack_9b0")) (; ";")) (declaration "int *piStack_9ac;" (primitive_type "int") (pointer_declarator "*piStack_9ac" (* "*") (identifier "piStack_9ac")) (; ";")) (declaration "code *******pppppppcStack_9a8;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_9a8" (* "*") (pointer_declarator "******pppppppcStack_9a8" (* "*") (pointer_declarator "*****pppppppcStack_9a8" (* "*") (pointer_declarator "****pppppppcStack_9a8" (* "*") (pointer_declarator "***pppppppcStack_9a8" (* "*") (pointer_declarator "**pppppppcStack_9a8" (* "*") (pointer_declarator "*pppppppcStack_9a8" (* "*") (identifier "pppppppcStack_9a8")))))))) (; ";")) (declaration "int *piStack_9a4;" (primitive_type "int") (pointer_declarator "*piStack_9a4" (* "*") (identifier "piStack_9a4")) (; ";")) (declaration "code *******pppppppcStack_9a0;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_9a0" (* "*") (pointer_declarator "******pppppppcStack_9a0" (* "*") (pointer_declarator "*****pppppppcStack_9a0" (* "*") (pointer_declarator "****pppppppcStack_9a0" (* "*") (pointer_declarator "***pppppppcStack_9a0" (* "*") (pointer_declarator "**pppppppcStack_9a0" (* "*") (pointer_declarator "*pppppppcStack_9a0" (* "*") (identifier "pppppppcStack_9a0")))))))) (; ";")) (declaration "int *piStack_99c;" (primitive_type "int") (pointer_declarator "*piStack_99c" (* "*") (identifier "piStack_99c")) (; ";")) (declaration "code *******pppppppcStack_998;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_998" (* "*") (pointer_declarator "******pppppppcStack_998" (* "*") (pointer_declarator "*****pppppppcStack_998" (* "*") (pointer_declarator "****pppppppcStack_998" (* "*") (pointer_declarator "***pppppppcStack_998" (* "*") (pointer_declarator "**pppppppcStack_998" (* "*") (pointer_declarator "*pppppppcStack_998" (* "*") (identifier "pppppppcStack_998")))))))) (; ";")) (declaration "code *pcStack_994;" (type_identifier "code") (pointer_declarator "*pcStack_994" (* "*") (identifier "pcStack_994")) (; ";")) (declaration "code ******ppppppcStack_988;" (type_identifier "code") (pointer_declarator "******ppppppcStack_988" (* "*") (pointer_declarator "*****ppppppcStack_988" (* "*") (pointer_declarator "****ppppppcStack_988" (* "*") (pointer_declarator "***ppppppcStack_988" (* "*") (pointer_declarator "**ppppppcStack_988" (* "*") (pointer_declarator "*ppppppcStack_988" (* "*") (identifier "ppppppcStack_988"))))))) (; ";")) (declaration "undefined1 *puStack_984;" (type_identifier "undefined1") (pointer_declarator "*puStack_984" (* "*") (identifier "puStack_984")) (; ";")) (declaration "code *******pppppppcStack_980;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_980" (* "*") (pointer_declarator "******pppppppcStack_980" (* "*") (pointer_declarator "*****pppppppcStack_980" (* "*") (pointer_declarator "****pppppppcStack_980" (* "*") (pointer_declarator "***pppppppcStack_980" (* "*") (pointer_declarator "**pppppppcStack_980" (* "*") (pointer_declarator "*pppppppcStack_980" (* "*") (identifier "pppppppcStack_980")))))))) (; ";")) (declaration "int *piStack_97c;" (primitive_type "int") (pointer_declarator "*piStack_97c" (* "*") (identifier "piStack_97c")) (; ";")) (declaration "code *****pppppcStack_978;" (type_identifier "code") (pointer_declarator "*****pppppcStack_978" (* "*") (pointer_declarator "****pppppcStack_978" (* "*") (pointer_declarator "***pppppcStack_978" (* "*") (pointer_declarator "**pppppcStack_978" (* "*") (pointer_declarator "*pppppcStack_978" (* "*") (identifier "pppppcStack_978")))))) (; ";")) (declaration "int *piStack_974;" (primitive_type "int") (pointer_declarator "*piStack_974" (* "*") (identifier "piStack_974")) (; ";")) (declaration "undefined1 uStack_970;" (type_identifier "undefined1") (identifier "uStack_970") (; ";")) (declaration "int iStack_96c;" (primitive_type "int") (identifier "iStack_96c") (; ";")) (declaration "undefined *puStack_968;" (type_identifier "undefined") (pointer_declarator "*puStack_968" (* "*") (identifier "puStack_968")) (; ";")) (declaration "int *piStack_964;" (primitive_type "int") (pointer_declarator "*piStack_964" (* "*") (identifier "piStack_964")) (; ";")) (declaration "code *******pppppppcStack_960;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_960" (* "*") (pointer_declarator "******pppppppcStack_960" (* "*") (pointer_declarator "*****pppppppcStack_960" (* "*") (pointer_declarator "****pppppppcStack_960" (* "*") (pointer_declarator "***pppppppcStack_960" (* "*") (pointer_declarator "**pppppppcStack_960" (* "*") (pointer_declarator "*pppppppcStack_960" (* "*") (identifier "pppppppcStack_960")))))))) (; ";")) (declaration "undefined1 *puStack_95c;" (type_identifier "undefined1") (pointer_declarator "*puStack_95c" (* "*") (identifier "puStack_95c")) (; ";")) (declaration "undefined *puStack_958;" (type_identifier "undefined") (pointer_declarator "*puStack_958" (* "*") (identifier "puStack_958")) (; ";")) (declaration "code *pcStack_954;" (type_identifier "code") (pointer_declarator "*pcStack_954" (* "*") (identifier "pcStack_954")) (; ";")) (declaration "undefined *puStack_940;" (type_identifier "undefined") (pointer_declarator "*puStack_940" (* "*") (identifier "puStack_940")) (; ";")) (declaration "undefined *puStack_934;" (type_identifier "undefined") (pointer_declarator "*puStack_934" (* "*") (identifier "puStack_934")) (; ";")) (declaration "code *******pppppppcStack_92c;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_92c" (* "*") (pointer_declarator "******pppppppcStack_92c" (* "*") (pointer_declarator "*****pppppppcStack_92c" (* "*") (pointer_declarator "****pppppppcStack_92c" (* "*") (pointer_declarator "***pppppppcStack_92c" (* "*") (pointer_declarator "**pppppppcStack_92c" (* "*") (pointer_declarator "*pppppppcStack_92c" (* "*") (identifier "pppppppcStack_92c")))))))) (; ";")) (declaration "code *******pppppppcStack_928;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_928" (* "*") (pointer_declarator "******pppppppcStack_928" (* "*") (pointer_declarator "*****pppppppcStack_928" (* "*") (pointer_declarator "****pppppppcStack_928" (* "*") (pointer_declarator "***pppppppcStack_928" (* "*") (pointer_declarator "**pppppppcStack_928" (* "*") (pointer_declarator "*pppppppcStack_928" (* "*") (identifier "pppppppcStack_928")))))))) (; ";")) (declaration "code *******pppppppcStack_924;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_924" (* "*") (pointer_declarator "******pppppppcStack_924" (* "*") (pointer_declarator "*****pppppppcStack_924" (* "*") (pointer_declarator "****pppppppcStack_924" (* "*") (pointer_declarator "***pppppppcStack_924" (* "*") (pointer_declarator "**pppppppcStack_924" (* "*") (pointer_declarator "*pppppppcStack_924" (* "*") (identifier "pppppppcStack_924")))))))) (; ";")) (declaration "undefined4 uStack_520;" (type_identifier "undefined4") (identifier "uStack_520") (; ";")) (declaration "int iStack_4cc;" (primitive_type "int") (identifier "iStack_4cc") (; ";")) (declaration "undefined *puStack_4c8;" (type_identifier "undefined") (pointer_declarator "*puStack_4c8" (* "*") (identifier "puStack_4c8")) (; ";")) (declaration "int *piStack_4c4;" (primitive_type "int") (pointer_declarator "*piStack_4c4" (* "*") (identifier "piStack_4c4")) (; ";")) (declaration "int iStack_4c0;" (primitive_type "int") (identifier "iStack_4c0") (; ";")) (declaration "undefined *puStack_4bc;" (type_identifier "undefined") (pointer_declarator "*puStack_4bc" (* "*") (identifier "puStack_4bc")) (; ";")) (declaration "undefined1 *puStack_4b8;" (type_identifier "undefined1") (pointer_declarator "*puStack_4b8" (* "*") (identifier "puStack_4b8")) (; ";")) (declaration "int *piStack_4b4;" (primitive_type "int") (pointer_declarator "*piStack_4b4" (* "*") (identifier "piStack_4b4")) (; ";")) (declaration "undefined4 uStack_4b0;" (type_identifier "undefined4") (identifier "uStack_4b0") (; ";")) (declaration "code *******pppppppcStack_48c;" (type_identifier "code") (pointer_declarator "*******pppppppcStack_48c" (* "*") (pointer_declarator "******pppppppcStack_48c" (* "*") (pointer_declarator "*****pppppppcStack_48c" (* "*") (pointer_declarator "****pppppppcStack_48c" (* "*") (pointer_declarator "***pppppppcStack_48c" (* "*") (pointer_declarator "**pppppppcStack_48c" (* "*") (pointer_declarator "*pppppppcStack_48c" (* "*") (identifier "pppppppcStack_48c")))))))) (; ";")) (declaration "int local_484;" (primitive_type "int") (identifier "local_484") (; ";")) (declaration "undefined4 local_480;" (type_identifier "undefined4") (identifier "local_480") (; ";")) (declaration "int local_47c;" (primitive_type "int") (identifier "local_47c") (; ";")) (declaration "undefined1 uStack_78;" (type_identifier "undefined1") (identifier "uStack_78") (; ";")) (declaration "undefined1 auStack_77 [83];" (type_identifier "undefined1") (array_declarator "auStack_77 [83]" (identifier "auStack_77") ([ "[") (number_literal "83") (] "]")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar40 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar40 = PTR___stack_chk_guard_000534bc" (identifier "puVar40") (= "=") (identifier "PTR___stack_chk_guard_000534bc")) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_000534bc" (identifier "local_24") (= "=") (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")))) (; ";")) (if_statement "if (param_4 == (undefined *)0xffffffff) {\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }\n  else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }" (if "if") (parenthesized_expression "(param_4 == (undefined *)0xffffffff)" (( "(") (binary_expression "param_4 == (undefined *)0xffffffff" (identifier "param_4") (== "==") (cast_expression "(undefined *)0xffffffff" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n    param_4 = (undefined *)0x0;\n    FUN_0003b1e0();\nLAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }\n  }" ({ "{") (expression_statement "param_4 = (undefined *)0x0;" (assignment_expression "param_4 = (undefined *)0x0" (identifier "param_4") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0003b1e0();" (call_expression "FUN_0003b1e0()" (identifier "FUN_0003b1e0") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0003b4a4:\n    if (local_24 == *(int *)puVar40) {\n      return;\n    }" (statement_identifier "LAB_0003b4a4") (: ":") (if_statement "if (local_24 == *(int *)puVar40) {\n      return;\n    }" (if "if") (parenthesized_expression "(local_24 == *(int *)puVar40)" (( "(") (binary_expression "local_24 == *(int *)puVar40" (identifier "local_24") (== "==") (pointer_expression "*(int *)puVar40" (* "*") (cast_expression "(int *)puVar40" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar40")))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }" (else "else") (compound_statement "{\n    if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }\n    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);\n    (*(code *)PTR_png_error_0005340c)();\n  }" ({ "{") (if_statement "if (param_4 == (undefined *)0x0) {\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }" (if "if") (parenthesized_expression "(param_4 == (undefined *)0x0)" (( "(") (binary_expression "param_4 == (undefined *)0x0" (identifier "param_4") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      unaff_s4 = &uStack_78;\n      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);\n      unaff_s1 = param_1;\n      unaff_s2 = param_3;\n      if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }\n      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);\n    }" ({ "{") (expression_statement "unaff_s4 = &uStack_78;" (assignment_expression "unaff_s4 = &uStack_78" (identifier "unaff_s4") (= "=") (pointer_expression "&uStack_78" (& "&") (identifier "uStack_78"))) (; ";")) (expression_statement "iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);" (assignment_expression "iVar1 = FUN_0003449c(param_1,param_2,unaff_s4)" (identifier "iVar1") (= "=") (call_expression "FUN_0003449c(param_1,param_2,unaff_s4)" (identifier "FUN_0003449c") (argument_list "(param_1,param_2,unaff_s4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "unaff_s4") () ")")))) (; ";")) (expression_statement "unaff_s1 = param_1;" (assignment_expression "unaff_s1 = param_1" (identifier "unaff_s1") (= "=") (identifier "param_1")) (; ";")) (expression_statement "unaff_s2 = param_3;" (assignment_expression "unaff_s2 = param_3" (identifier "unaff_s2") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (iVar1 != 0) {\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        unaff_s0 = (undefined *)(iVar1 + 2);\n        auStack_77[iVar1] = 0;\n        if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }\n        unaff_s6 = 0x7a540000;\n        unaff_s5 = &local_484;\n        local_47c = 0;\n        param_4 = unaff_s0;\n        local_484 = param_3;\n        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);\n        if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }\n        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);\n      }" ({ "{") (expression_statement "unaff_s0 = (undefined *)(iVar1 + 2);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 2)" (identifier "unaff_s0") (= "=") (cast_expression "(undefined *)(iVar1 + 2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 2)" (( "(") (binary_expression "iVar1 + 2" (identifier "iVar1") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "auStack_77[iVar1] = 0;" (assignment_expression "auStack_77[iVar1] = 0" (subscript_expression "auStack_77[iVar1]" (identifier "auStack_77") ([ "[") (identifier "iVar1") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_3 == 0) {\n          local_480 = 0;\n        }\n        else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_480 = 0;\n        }" ({ "{") (expression_statement "local_480 = 0;" (assignment_expression "local_480 = 0" (identifier "local_480") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }" (else "else") (compound_statement "{\n          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);\n        }" ({ "{") (expression_statement "local_480 = (*(code *)PTR_strlen_000533d4)(param_3);" (assignment_expression "local_480 = (*(code *)PTR_strlen_000533d4)(param_3)" (identifier "local_480") (= "=") (call_expression "(*(code *)PTR_strlen_000533d4)(param_3)" (parenthesized_expression "(*(code *)PTR_strlen_000533d4)" (( "(") (pointer_expression "*(code *)PTR_strlen_000533d4" (* "*") (cast_expression "(code *)PTR_strlen_000533d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000533d4"))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (} "}")))) (expression_statement "unaff_s6 = 0x7a540000;" (assignment_expression "unaff_s6 = 0x7a540000" (identifier "unaff_s6") (= "=") (number_literal "0x7a540000")) (; ";")) (expression_statement "unaff_s5 = &local_484;" (assignment_expression "unaff_s5 = &local_484" (identifier "unaff_s5") (= "=") (pointer_expression "&local_484" (& "&") (identifier "local_484"))) (; ";")) (expression_statement "local_47c = 0;" (assignment_expression "local_47c = 0" (identifier "local_47c") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_4 = unaff_s0;" (assignment_expression "param_4 = unaff_s0" (identifier "param_4") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "local_484 = param_3;" (assignment_expression "local_484 = param_3" (identifier "local_484") (= "=") (identifier "param_3")) (; ";")) (expression_statement "iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);" (assignment_expression "iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5)" (identifier "iVar1") (= "=") (call_expression "FUN_00039670(param_1,0x7a545874,unaff_s5)" (identifier "FUN_00039670") (argument_list "(param_1,0x7a545874,unaff_s5)" (( "(") (identifier "param_1") (, ",") (number_literal "0x7a545874") (, ",") (identifier "unaff_s5") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }\n          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);\n          param_2 = unaff_s5;\n          FUN_00039bc4(param_1);\n          (*(code *)PTR_png_write_chunk_end_00053408)();\n          goto LAB_0003b4a4;\n        }" ({ "{") (if_statement "if (param_1 != (int *)0x0) {\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }" (if "if") (parenthesized_expression "(param_1 != (int *)0x0)" (( "(") (binary_expression "param_1 != (int *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);\n          }" ({ "{") (expression_statement "FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);" (call_expression "FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c)" (identifier "FUN_00039938") (argument_list "(param_1,0x7a545874,unaff_s0 + local_47c)" (( "(") (identifier "param_1") (, ",") (number_literal "0x7a545874") (, ",") (binary_expression "unaff_s0 + local_47c" (identifier "unaff_s0") (+ "+") (identifier "local_47c")) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);" (call_expression "(*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0)" (parenthesized_expression "(*(code *)PTR_png_write_chunk_data_000534fc)" (( "(") (pointer_expression "*(code *)PTR_png_write_chunk_data_000534fc" (* "*") (cast_expression "(code *)PTR_png_write_chunk_data_000534fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_write_chunk_data_000534fc"))) () ")")) (argument_list "(param_1,unaff_s4,unaff_s0)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (identifier "unaff_s0") () ")"))) (; ";")) (expression_statement "param_2 = unaff_s5;" (assignment_expression "param_2 = unaff_s5" (identifier "param_2") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "FUN_00039bc4(param_1);" (call_expression "FUN_00039bc4(param_1)" (identifier "FUN_00039bc4") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_png_write_chunk_end_00053408)();" (call_expression "(*(code *)PTR_png_write_chunk_end_00053408)()" (parenthesized_expression "(*(code *)PTR_png_write_chunk_end_00053408)" (( "(") (pointer_expression "*(code *)PTR_png_write_chunk_end_00053408" (* "*") (cast_expression "(code *)PTR_png_write_chunk_end_00053408" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_write_chunk_end_00053408"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0003b4a4;" (goto "goto") (statement_identifier "LAB_0003b4a4") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);" (call_expression "(*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53])" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" (( "(") (pointer_expression "*(code *)PTR_png_error_0005340c" (* "*") (cast_expression "(code *)PTR_png_error_0005340c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_error_0005340c"))) () ")")) (argument_list "(param_1,param_1[0x53])" (( "(") (identifier "param_1") (, ",") (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);" (call_expression "(*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604)" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" (( "(") (pointer_expression "*(code *)PTR_png_error_0005340c" (* "*") (cast_expression "(code *)PTR_png_error_0005340c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_error_0005340c"))) () ")")) (argument_list "(param_1,PTR_s_nt_0005301c + 0x2604)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_nt_0005301c + 0x2604" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x2604")) () ")"))) (; ";")) (} "}"))) (expression_statement "param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);" (assignment_expression "param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4)" (identifier "param_2") (= "=") (cast_expression "(int *)(PTR_s_nt_0005301c + 0x25e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_nt_0005301c + 0x25e4)" (( "(") (binary_expression "PTR_s_nt_0005301c + 0x25e4" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x25e4")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_png_error_0005340c)();" (call_expression "(*(code *)PTR_png_error_0005340c)()" (parenthesized_expression "(*(code *)PTR_png_error_0005340c)" (( "(") (pointer_expression "*(code *)PTR_png_error_0005340c" (* "*") (cast_expression "(code *)PTR_png_error_0005340c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_error_0005340c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar16 = PTR___stack_chk_fail_00053484;" (assignment_expression "puVar16 = PTR___stack_chk_fail_00053484" (identifier "puVar16") (= "=") (identifier "PTR___stack_chk_fail_00053484")) (; ";")) (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 "puStack_940 = puVar16 + 0x1fac0;" (assignment_expression "puStack_940 = puVar16 + 0x1fac0" (identifier "puStack_940") (= "=") (binary_expression "puVar16 + 0x1fac0" (identifier "puVar16") (+ "+") (number_literal "0x1fac0"))) (; ";")) (expression_statement "piVar31 = *(int **)(puVar16 + 0x17f8c);" (assignment_expression "piVar31 = *(int **)(puVar16 + 0x17f8c)" (identifier "piVar31") (= "=") (pointer_expression "*(int **)(puVar16 + 0x17f8c)" (* "*") (cast_expression "(int **)(puVar16 + 0x17f8c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + 0x17f8c)" (( "(") (binary_expression "puVar16 + 0x17f8c" (identifier "puVar16") (+ "+") (number_literal "0x17f8c")) () ")"))))) (; ";")) (expression_statement "pppppppcVar29 = (code *******)&uStack_520;" (assignment_expression "pppppppcVar29 = (code *******)&uStack_520" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)&uStack_520" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&uStack_520" (& "&") (identifier "uStack_520")))) (; ";")) (expression_statement "puStack_4bc = puVar40;" (assignment_expression "puStack_4bc = puVar40" (identifier "puStack_4bc") (= "=") (identifier "puVar40")) (; ";")) (expression_statement "iStack_4cc = *piVar31;" (assignment_expression "iStack_4cc = *piVar31" (identifier "iStack_4cc") (= "=") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) (; ";")) (expression_statement "pppppppcVar2 = pppppppcVar29;" (assignment_expression "pppppppcVar2 = pppppppcVar29" (identifier "pppppppcVar2") (= "=") (identifier "pppppppcVar29")) (; ";")) (expression_statement "puVar16 = param_4;" (assignment_expression "puVar16 = param_4" (identifier "puVar16") (= "=") (identifier "param_4")) (; ";")) (expression_statement "puStack_4c8 = unaff_s0;" (assignment_expression "puStack_4c8 = unaff_s0" (identifier "puStack_4c8") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "piStack_4c4 = unaff_s1;" (assignment_expression "piStack_4c4 = unaff_s1" (identifier "piStack_4c4") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "iStack_4c0 = unaff_s2;" (assignment_expression "iStack_4c0 = unaff_s2" (identifier "iStack_4c0") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puStack_4b8 = unaff_s4;" (assignment_expression "puStack_4b8 = unaff_s4" (identifier "puStack_4b8") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "piStack_4b4 = unaff_s5;" (assignment_expression "piStack_4b4 = unaff_s5" (identifier "piStack_4b4") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "uStack_4b0 = unaff_s6;" (assignment_expression "uStack_4b0 = unaff_s6" (identifier "uStack_4b0") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "iVar1 = FUN_0003449c();" (assignment_expression "iVar1 = FUN_0003449c()" (identifier "iVar1") (= "=") (call_expression "FUN_0003449c()" (identifier "FUN_0003449c") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" (identifier "puVar40") (= "=") (identifier "puStack_940")) (; ";")) (if_statement "if (iVar1 == 0) {\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }\n  else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);\nLAB_0003b968:\n    puVar4 = puVar16;\n    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);\n  }" ({ "{") (labeled_statement "LAB_0003b954:\n    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;" (statement_identifier "LAB_0003b954") (: ":") (expression_statement "iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;" (assignment_expression "iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c" (identifier "iVar8") (= "=") (binary_expression "*(int *)(puVar40 + -0x7fd4) + 0x261c" (pointer_expression "*(int *)(puVar40 + -0x7fd4)" (* "*") (cast_expression "(int *)(puVar40 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar40 + -0x7fd4)" (( "(") (binary_expression "puVar40 + -0x7fd4" (identifier "puVar40") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x261c"))) (; ";"))) (expression_statement "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8);" (call_expression "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8)" (parenthesized_expression "(**(code **)(puVar40 + -0x7be4))" (( "(") (pointer_expression "**(code **)(puVar40 + -0x7be4)" (* "*") (pointer_expression "*(code **)(puVar40 + -0x7be4)" (* "*") (cast_expression "(code **)(puVar40 + -0x7be4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar40 + -0x7be4)" (( "(") (binary_expression "puVar40 + -0x7be4" (identifier "puVar40") (+ "+") (number_literal "-0x7be4")) () ")"))))) () ")")) (argument_list "(param_1,iVar8)" (( "(") (identifier "param_1") (, ",") (identifier "iVar8") () ")"))) (; ";")) (labeled_statement "LAB_0003b968:\n    puVar4 = puVar16;" (statement_identifier "LAB_0003b968") (: ":") (expression_statement "puVar4 = puVar16;" (assignment_expression "puVar4 = puVar16" (identifier "puVar4") (= "=") (identifier "puVar16")) (; ";"))) (expression_statement "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);" (call_expression "(**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650)" (parenthesized_expression "(**(code **)(puVar40 + -0x7be4))" (( "(") (pointer_expression "**(code **)(puVar40 + -0x7be4)" (* "*") (pointer_expression "*(code **)(puVar40 + -0x7be4)" (* "*") (cast_expression "(code **)(puVar40 + -0x7be4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar40 + -0x7be4)" (( "(") (binary_expression "puVar40 + -0x7be4" (identifier "puVar40") (+ "+") (number_literal "-0x7be4")) () ")"))))) () ")")) (argument_list "(param_1,iVar8 + 0x2650)" (( "(") (identifier "param_1") (, ",") (binary_expression "iVar8 + 0x2650" (identifier "iVar8") (+ "+") (number_literal "0x2650")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" (else "else") (compound_statement "{\n    if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }\nLAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;\n    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\njoined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }\n    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);\n    unaff_s8 = (code *******)(iVar8 + 1);\n    if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }\n    pppppppcStack_928 = (code *******)0x0;\n    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;\nLAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);\n    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;\n    puVar4 = puVar4 + (int)unaff_s8;\n    pppppppcStack_92c = pppppppcStack_48c;\n    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;\nLAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;\n    unaff_s0 = (undefined *)(iVar1 + 3);\n    pppppppcStack_48c = (code *******)&pppppppcStack_92c;\n    pppppppcVar2 = pppppppcStack_48c;\n    puStack_934 = puVar4;\n    iVar8 = FUN_00039670(param_1,0x69545874);\n    puVar40 = puStack_940;\n    if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }\n  }" ({ "{") (if_statement "if (param_2 != (int *)0x0) {\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }\nLAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);\nLAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();\n      goto LAB_0003b954;\n    }" ({ "{") (if_statement "if (0 < (int)param_2) {\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }" (if "if") (parenthesized_expression "(0 < (int)param_2)" (( "(") (binary_expression "0 < (int)param_2" (number_literal "0") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (compound_statement "{\n        if (param_2 == (int *)0x1) goto LAB_0003b768;\n        iVar8 = *(int *)(puStack_940 + -0x7fd4);\n        if (param_2 != (int *)0x2) goto LAB_0003b938;\n        goto LAB_0003b5d0;\n      }" ({ "{") (if_statement "if (param_2 == (int *)0x1) goto LAB_0003b768;" (if "if") (parenthesized_expression "(param_2 == (int *)0x1)" (( "(") (binary_expression "param_2 == (int *)0x1" (identifier "param_2") (== "==") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (goto_statement "goto LAB_0003b768;" (goto "goto") (statement_identifier "LAB_0003b768") (; ";"))) (expression_statement "iVar8 = *(int *)(puStack_940 + -0x7fd4);" (assignment_expression "iVar8 = *(int *)(puStack_940 + -0x7fd4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_940 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_940 + -0x7fd4)" (( "(") (binary_expression "puStack_940 + -0x7fd4" (identifier "puStack_940") (+ "+") (number_literal "-0x7fd4")) () ")"))))) (; ";")) (if_statement "if (param_2 != (int *)0x2) goto LAB_0003b938;" (if "if") (parenthesized_expression "(param_2 != (int *)0x2)" (( "(") (binary_expression "param_2 != (int *)0x2" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (goto_statement "goto LAB_0003b938;" (goto "goto") (statement_identifier "LAB_0003b938") (; ";"))) (goto_statement "goto LAB_0003b5d0;" (goto "goto") (statement_identifier "LAB_0003b5d0") (; ";")) (} "}"))) (expression_statement "iVar8 = *(int *)(puStack_940 + -0x7fd4);" (assignment_expression "iVar8 = *(int *)(puStack_940 + -0x7fd4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_940 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_940 + -0x7fd4)" (( "(") (binary_expression "puStack_940 + -0x7fd4" (identifier "puStack_940") (+ "+") (number_literal "-0x7fd4")) () ")"))))) (; ";")) (if_statement "if (param_2 == (int *)0xffffffff) {\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }" (if "if") (parenthesized_expression "(param_2 == (int *)0xffffffff)" (( "(") (binary_expression "param_2 == (int *)0xffffffff" (identifier "param_2") (== "==") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\nLAB_0003b768:\n        puStack_934 = (undefined *)0x0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;\n        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;\n        goto joined_r0x0003b780;\n      }" ({ "{") (labeled_statement "LAB_0003b768:\n        puStack_934 = (undefined *)0x0;" (statement_identifier "LAB_0003b768") (: ":") (expression_statement "puStack_934 = (undefined *)0x0;" (assignment_expression "puStack_934 = (undefined *)0x0" (identifier "puStack_934") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1)" (* "*") (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_520 + iVar1 + 1)" (( "(") (binary_expression "(int)&uStack_520 + iVar1 + 1" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_520" (& "&") (identifier "uStack_520"))) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2)" (* "*") (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_520 + iVar1 + 2)" (( "(") (binary_expression "(int)&uStack_520 + iVar1 + 2" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_520" (& "&") (identifier "uStack_520"))) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto joined_r0x0003b780;" (goto "goto") (statement_identifier "joined_r0x0003b780") (; ";")) (} "}"))) (labeled_statement "LAB_0003b938:\n      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);" (statement_identifier "LAB_0003b938") (: ":") (expression_statement "(**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);" (call_expression "(**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7be4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7be4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7be4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7be4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7be4)" (( "(") (binary_expression "puStack_940 + -0x7be4" (identifier "puStack_940") (+ "+") (number_literal "-0x7be4")) () ")"))))) () ")")) (argument_list "(param_1,iVar8 + 0x2634)" (( "(") (identifier "param_1") (, ",") (binary_expression "iVar8 + 0x2634" (identifier "iVar8") (+ "+") (number_literal "0x2634")) () ")"))) (; ";"))) (labeled_statement "LAB_0003b948:\n      (**(code **)(puVar40 + -0x7b6c))();" (statement_identifier "LAB_0003b948") (: ":") (expression_statement "(**(code **)(puVar40 + -0x7b6c))();" (call_expression "(**(code **)(puVar40 + -0x7b6c))()" (parenthesized_expression "(**(code **)(puVar40 + -0x7b6c))" (( "(") (pointer_expression "**(code **)(puVar40 + -0x7b6c)" (* "*") (pointer_expression "*(code **)(puVar40 + -0x7b6c)" (* "*") (cast_expression "(code **)(puVar40 + -0x7b6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar40 + -0x7b6c)" (( "(") (binary_expression "puVar40 + -0x7b6c" (identifier "puVar40") (+ "+") (number_literal "-0x7b6c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (goto_statement "goto LAB_0003b954;" (goto "goto") (statement_identifier "LAB_0003b954") (; ";")) (} "}"))) (labeled_statement "LAB_0003b5d0:\n    puStack_934 = (undefined *)0x1;" (statement_identifier "LAB_0003b5d0") (: ":") (expression_statement "puStack_934 = (undefined *)0x1;" (assignment_expression "puStack_934 = (undefined *)0x1" (identifier "puStack_934") (= "=") (cast_expression "(undefined *)0x1" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";"))) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 1)" (* "*") (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_520 + iVar1 + 1)" (( "(") (binary_expression "(int)&uStack_520 + iVar1 + 1" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_520" (& "&") (identifier "uStack_520"))) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0" (pointer_expression "*(undefined1 *)((int)&uStack_520 + iVar1 + 2)" (* "*") (cast_expression "(undefined1 *)((int)&uStack_520 + iVar1 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_520 + iVar1 + 2)" (( "(") (binary_expression "(int)&uStack_520 + iVar1 + 2" (binary_expression "(int)&uStack_520 + iVar1" (cast_expression "(int)&uStack_520" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_520" (& "&") (identifier "uStack_520"))) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "joined_r0x0003b780:\n    if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" (statement_identifier "joined_r0x0003b780") (: ":") (if_statement "if (param_4 == (undefined *)0x0) {\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }\n    else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" (if "if") (parenthesized_expression "(param_4 == (undefined *)0x0)" (( "(") (binary_expression "param_4 == (undefined *)0x0" (identifier "param_4") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      param_2 = (int *)0x1;\n      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);\n    }" ({ "{") (expression_statement "param_2 = (int *)0x1;" (assignment_expression "param_2 = (int *)0x1" (identifier "param_2") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);" (assignment_expression "param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" (identifier "param_4") (= "=") (cast_expression "(undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" (( "(") (binary_expression "*(int *)(puStack_940 + -0x7fd4) + -0xc84" (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_940 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_940 + -0x7fd4)" (( "(") (binary_expression "puStack_940 + -0x7fd4" (identifier "puStack_940") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0xc84")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" (else "else") (compound_statement "{\n      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);\n      param_2 = (int *)(iVar8 + 1);\n    }" ({ "{") (expression_statement "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);" (assignment_expression "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puStack_940 + -0x7c1c))(param_4)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7c1c))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7c1c)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7c1c)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7c1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7c1c)" (( "(") (binary_expression "puStack_940 + -0x7c1c" (identifier "puStack_940") (+ "+") (number_literal "-0x7c1c")) () ")"))))) () ")")) (argument_list "(param_4)" (( "(") (identifier "param_4") () ")")))) (; ";")) (expression_statement "param_2 = (int *)(iVar8 + 1);" (assignment_expression "param_2 = (int *)(iVar8 + 1)" (identifier "param_2") (= "=") (cast_expression "(int *)(iVar8 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 1)" (( "(") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))))) (expression_statement "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);" (assignment_expression "iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puStack_940 + -0x7c1c))(&_gp_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7c1c))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7c1c)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7c1c)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7c1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7c1c)" (( "(") (binary_expression "puStack_940 + -0x7c1c" (identifier "puStack_940") (+ "+") (number_literal "-0x7c1c")) () ")"))))) () ")")) (argument_list "(&_gp_1)" (( "(") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) () ")")))) (; ";")) (expression_statement "unaff_s8 = (code *******)(iVar8 + 1);" (assignment_expression "unaff_s8 = (code *******)(iVar8 + 1)" (identifier "unaff_s8") (= "=") (cast_expression "(code *******)(iVar8 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(iVar8 + 1)" (( "(") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pppppppcStack_48c != (code *******)0x0) {\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }" (if "if") (parenthesized_expression "(pppppppcStack_48c != (code *******)0x0)" (( "(") (binary_expression "pppppppcStack_48c != (code *******)0x0" (identifier "pppppppcStack_48c") (!= "!=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);\n      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;\nLAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;\nLAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      puVar16 = (undefined *)0x7fffffff;\n      iVar8 = *(int *)(puStack_940 + -0x7fd4);\n      puVar40 = puStack_940;\n      pppppppcStack_92c = pppppppcStack_48c;\n      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }\n      goto LAB_0003b968;\n    }" ({ "{") (expression_statement "pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);" (assignment_expression "pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c)" (identifier "pppppppcStack_928") (= "=") (cast_expression "(code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7c1c))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7c1c)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7c1c)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7c1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7c1c)" (( "(") (binary_expression "puStack_940 + -0x7c1c" (identifier "puStack_940") (+ "+") (number_literal "-0x7c1c")) () ")"))))) () ")")) (argument_list "(pppppppcStack_48c)" (( "(") (identifier "pppppppcStack_48c") () ")"))))) (; ";")) (if_statement "if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;" (if "if") (parenthesized_expression "(param_2 <= (int *)(0x7fffffff - (iVar1 + 3)))" (( "(") (binary_expression "param_2 <= (int *)(0x7fffffff - (iVar1 + 3))" (identifier "param_2") (<= "<=") (cast_expression "(int *)(0x7fffffff - (iVar1 + 3))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(0x7fffffff - (iVar1 + 3))" (( "(") (binary_expression "0x7fffffff - (iVar1 + 3)" (number_literal "0x7fffffff") (- "-") (parenthesized_expression "(iVar1 + 3)" (( "(") (binary_expression "iVar1 + 3" (identifier "iVar1") (+ "+") (number_literal "3")) () ")"))) () ")")))) () ")")) (goto_statement "goto LAB_0003b648;" (goto "goto") (statement_identifier "LAB_0003b648") (; ";"))) (labeled_statement "LAB_0003b7c8:\n      puVar4 = (undefined *)0x7fffffff;" (statement_identifier "LAB_0003b7c8") (: ":") (expression_statement "puVar4 = (undefined *)0x7fffffff;" (assignment_expression "puVar4 = (undefined *)0x7fffffff" (identifier "puVar4") (= "=") (cast_expression "(undefined *)0x7fffffff" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7fffffff"))) (; ";"))) (expression_statement "pppppppcStack_92c = pppppppcStack_48c;" (assignment_expression "pppppppcStack_92c = pppppppcStack_48c" (identifier "pppppppcStack_92c") (= "=") (identifier "pppppppcStack_48c")) (; ";")) (if_statement "if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;" (if "if") (parenthesized_expression "(puStack_934 != (undefined *)0x0)" (( "(") (binary_expression "puStack_934 != (undefined *)0x0" (identifier "puStack_934") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0003b7e0;" (goto "goto") (statement_identifier "LAB_0003b7e0") (; ";"))) (labeled_statement "LAB_0003b670:\n      pppppppcStack_924 = (code *******)0x0;" (statement_identifier "LAB_0003b670") (: ":") (expression_statement "pppppppcStack_924 = (code *******)0x0;" (assignment_expression "pppppppcStack_924 = (code *******)0x0" (identifier "pppppppcStack_924") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "unaff_s0 = (undefined *)(iVar1 + 3);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 3)" (identifier "unaff_s0") (= "=") (cast_expression "(undefined *)(iVar1 + 3)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 3)" (( "(") (binary_expression "iVar1 + 3" (identifier "iVar1") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "puVar16 = (undefined *)0x7fffffff;" (assignment_expression "puVar16 = (undefined *)0x7fffffff" (identifier "puVar16") (= "=") (cast_expression "(undefined *)0x7fffffff" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "iVar8 = *(int *)(puStack_940 + -0x7fd4);" (assignment_expression "iVar8 = *(int *)(puStack_940 + -0x7fd4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_940 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_940 + -0x7fd4)" (( "(") (binary_expression "puStack_940 + -0x7fd4" (identifier "puStack_940") (+ "+") (number_literal "-0x7fd4")) () ")"))))) (; ";")) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" (identifier "puVar40") (= "=") (identifier "puStack_940")) (; ";")) (expression_statement "pppppppcStack_92c = pppppppcStack_48c;" (assignment_expression "pppppppcStack_92c = pppppppcStack_48c" (identifier "pppppppcStack_92c") (= "=") (identifier "pppppppcStack_48c")) (; ";")) (if_statement "if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }" (if "if") (parenthesized_expression "(pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4))" (( "(") (binary_expression "pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)" (identifier "pppppppcStack_928") (<= "<=") (cast_expression "(code *******)(0x7fffffff - (int)puVar4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(0x7fffffff - (int)puVar4)" (( "(") (binary_expression "0x7fffffff - (int)puVar4" (number_literal "0x7fffffff") (- "-") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) () ")")))) () ")")) (compound_statement "{\n        pppppppcStack_924 = pppppppcStack_928;\n        if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }\n        pppppppcVar2 = pppppppcStack_924;\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);\n        goto LAB_0003b710;\n      }" ({ "{") (expression_statement "pppppppcStack_924 = pppppppcStack_928;" (assignment_expression "pppppppcStack_924 = pppppppcStack_928" (identifier "pppppppcStack_924") (= "=") (identifier "pppppppcStack_928")) (; ";")) (if_statement "if (param_1 == (int *)0x0) {\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }\n        else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);\n        }" ({ "{") (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(0,pppppppcVar29,unaff_s0)" (( "(") (number_literal "0") (, ",") (identifier "pppppppcVar29") (, ",") (identifier "unaff_s0") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(0,param_4,param_2)" (( "(") (number_literal "0") (, ",") (identifier "param_4") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(0,&_gp_1,unaff_s8)" (( "(") (number_literal "0") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (, ",") (identifier "unaff_s8") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }" (else "else") (compound_statement "{\n          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);\n        }" ({ "{") (expression_statement "FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);" (call_expression "FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928)" (identifier "FUN_00039938") (argument_list "(param_1,0x69545874,puVar4 + (int)pppppppcStack_928)" (( "(") (identifier "param_1") (, ",") (number_literal "0x69545874") (, ",") (binary_expression "puVar4 + (int)pppppppcStack_928" (identifier "puVar4") (+ "+") (cast_expression "(int)pppppppcStack_928" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcStack_928"))) () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(param_1,pppppppcVar29,unaff_s0)" (( "(") (identifier "param_1") (, ",") (identifier "pppppppcVar29") (, ",") (identifier "unaff_s0") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(param_1,param_4,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(param_1,&_gp_1,unaff_s8)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (, ",") (identifier "unaff_s8") () ")"))) (; ";")) (} "}")))) (expression_statement "pppppppcVar2 = pppppppcStack_924;" (assignment_expression "pppppppcVar2 = pppppppcStack_924" (identifier "pppppppcVar2") (= "=") (identifier "pppppppcStack_924")) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(param_1,pppppppcStack_48c)" (( "(") (identifier "param_1") (, ",") (identifier "pppppppcStack_48c") () ")"))) (; ";")) (goto_statement "goto LAB_0003b710;" (goto "goto") (statement_identifier "LAB_0003b710") (; ";")) (} "}"))) (goto_statement "goto LAB_0003b968;" (goto "goto") (statement_identifier "LAB_0003b968") (; ";")) (} "}"))) (expression_statement "pppppppcStack_928 = (code *******)0x0;" (assignment_expression "pppppppcStack_928 = (code *******)0x0" (identifier "pppppppcStack_928") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);" (assignment_expression "pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" (identifier "pppppppcStack_48c") (= "=") (cast_expression "(code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(*(int *)(puStack_940 + -0x7fd4) + -0xc84)" (( "(") (binary_expression "*(int *)(puStack_940 + -0x7fd4) + -0xc84" (pointer_expression "*(int *)(puStack_940 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_940 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_940 + -0x7fd4)" (( "(") (binary_expression "puStack_940 + -0x7fd4" (identifier "puStack_940") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0xc84")) () ")")))) (; ";")) (if_statement "if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;" (if "if") (parenthesized_expression "((int *)(0x7fffffff - (iVar1 + 3)) < param_2)" (( "(") (binary_expression "(int *)(0x7fffffff - (iVar1 + 3)) < param_2" (cast_expression "(int *)(0x7fffffff - (iVar1 + 3))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(0x7fffffff - (iVar1 + 3))" (( "(") (binary_expression "0x7fffffff - (iVar1 + 3)" (number_literal "0x7fffffff") (- "-") (parenthesized_expression "(iVar1 + 3)" (( "(") (binary_expression "iVar1 + 3" (identifier "iVar1") (+ "+") (number_literal "3")) () ")"))) () ")"))) (< "<") (identifier "param_2")) () ")")) (goto_statement "goto LAB_0003b7c8;" (goto "goto") (statement_identifier "LAB_0003b7c8") (; ";"))) (labeled_statement "LAB_0003b648:\n    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);" (statement_identifier "LAB_0003b648") (: ":") (expression_statement "puVar4 = (undefined *)((int)param_2 + iVar1 + 3);" (assignment_expression "puVar4 = (undefined *)((int)param_2 + iVar1 + 3)" (identifier "puVar4") (= "=") (cast_expression "(undefined *)((int)param_2 + iVar1 + 3)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + iVar1 + 3)" (( "(") (binary_expression "(int)param_2 + iVar1 + 3" (binary_expression "(int)param_2 + iVar1" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "3")) () ")")))) (; ";"))) (if_statement "if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;" (if "if") (parenthesized_expression "((code *******)(0x7fffffff - (int)puVar4) < unaff_s8)" (( "(") (binary_expression "(code *******)(0x7fffffff - (int)puVar4) < unaff_s8" (cast_expression "(code *******)(0x7fffffff - (int)puVar4)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(0x7fffffff - (int)puVar4)" (( "(") (binary_expression "0x7fffffff - (int)puVar4" (number_literal "0x7fffffff") (- "-") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) () ")"))) (< "<") (identifier "unaff_s8")) () ")")) (goto_statement "goto LAB_0003b7c8;" (goto "goto") (statement_identifier "LAB_0003b7c8") (; ";"))) (expression_statement "puVar4 = puVar4 + (int)unaff_s8;" (assignment_expression "puVar4 = puVar4 + (int)unaff_s8" (identifier "puVar4") (= "=") (binary_expression "puVar4 + (int)unaff_s8" (identifier "puVar4") (+ "+") (cast_expression "(int)unaff_s8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s8")))) (; ";")) (expression_statement "pppppppcStack_92c = pppppppcStack_48c;" (assignment_expression "pppppppcStack_92c = pppppppcStack_48c" (identifier "pppppppcStack_92c") (= "=") (identifier "pppppppcStack_48c")) (; ";")) (if_statement "if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;" (if "if") (parenthesized_expression "(puStack_934 == (undefined *)0x0)" (( "(") (binary_expression "puStack_934 == (undefined *)0x0" (identifier "puStack_934") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0003b670;" (goto "goto") (statement_identifier "LAB_0003b670") (; ";"))) (labeled_statement "LAB_0003b7e0:\n    pppppppcStack_924 = (code *******)0x0;" (statement_identifier "LAB_0003b7e0") (: ":") (expression_statement "pppppppcStack_924 = (code *******)0x0;" (assignment_expression "pppppppcStack_924 = (code *******)0x0" (identifier "pppppppcStack_924") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "unaff_s0 = (undefined *)(iVar1 + 3);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 3)" (identifier "unaff_s0") (= "=") (cast_expression "(undefined *)(iVar1 + 3)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 3)" (( "(") (binary_expression "iVar1 + 3" (identifier "iVar1") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "pppppppcStack_48c = (code *******)&pppppppcStack_92c;" (assignment_expression "pppppppcStack_48c = (code *******)&pppppppcStack_92c" (identifier "pppppppcStack_48c") (= "=") (cast_expression "(code *******)&pppppppcStack_92c" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (pointer_expression "&pppppppcStack_92c" (& "&") (identifier "pppppppcStack_92c")))) (; ";")) (expression_statement "pppppppcVar2 = pppppppcStack_48c;" (assignment_expression "pppppppcVar2 = pppppppcStack_48c" (identifier "pppppppcVar2") (= "=") (identifier "pppppppcStack_48c")) (; ";")) (expression_statement "puStack_934 = puVar4;" (assignment_expression "puStack_934 = puVar4" (identifier "puStack_934") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "iVar8 = FUN_00039670(param_1,0x69545874);" (assignment_expression "iVar8 = FUN_00039670(param_1,0x69545874)" (identifier "iVar8") (= "=") (call_expression "FUN_00039670(param_1,0x69545874)" (identifier "FUN_00039670") (argument_list "(param_1,0x69545874)" (( "(") (identifier "param_1") (, ",") (number_literal "0x69545874") () ")")))) (; ";")) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" (identifier "puVar40") (= "=") (identifier "puStack_940")) (; ";")) (if_statement "if (iVar8 == 0) {\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pppppppcVar2 = unaff_s8;\n      if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }\n      FUN_00039bc4(param_1,pppppppcStack_48c);\nLAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);\n      (**(code **)(puStack_940 + -0x7be8))(param_1);\n      puVar40 = puStack_940;\n      if (iStack_4cc == *piVar31) {\n        return;\n      }\n      goto LAB_0003b948;\n    }" ({ "{") (expression_statement "pppppppcVar2 = unaff_s8;" (assignment_expression "pppppppcVar2 = unaff_s8" (identifier "pppppppcVar2") (= "=") (identifier "unaff_s8")) (; ";")) (if_statement "if (param_1 == (int *)0x0) {\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }\n      else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }" (if "if") (parenthesized_expression "(param_1 == (int *)0x0)" (( "(") (binary_expression "param_1 == (int *)0x0" (identifier "param_1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);\n        puVar16 = puVar4;\n      }" ({ "{") (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(0,pppppppcVar29,unaff_s0)" (( "(") (number_literal "0") (, ",") (identifier "pppppppcVar29") (, ",") (identifier "unaff_s0") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(0,param_4,param_2)" (( "(") (number_literal "0") (, ",") (identifier "param_4") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(0,&_gp_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(0,&_gp_1)" (( "(") (number_literal "0") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) () ")"))) (; ";")) (expression_statement "puVar16 = puVar4;" (assignment_expression "puVar16 = puVar4" (identifier "puVar16") (= "=") (identifier "puVar4")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }" (else "else") (compound_statement "{\n        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);\n        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);\n        puVar16 = puVar4;\n      }" ({ "{") (expression_statement "FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);" (call_expression "FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924)" (identifier "FUN_00039938") (argument_list "(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924)" (( "(") (identifier "param_1") (, ",") (number_literal "0x69545874") (, ",") (binary_expression "puStack_934 + (int)pppppppcStack_924" (identifier "puStack_934") (+ "+") (cast_expression "(int)pppppppcStack_924" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcStack_924"))) () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(param_1,pppppppcVar29,unaff_s0)" (( "(") (identifier "param_1") (, ",") (identifier "pppppppcVar29") (, ",") (identifier "unaff_s0") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(param_1,param_4,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);" (call_expression "(**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7af4))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7af4)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7af4)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7af4)" (( "(") (binary_expression "puStack_940 + -0x7af4" (identifier "puStack_940") (+ "+") (number_literal "-0x7af4")) () ")"))))) () ")")) (argument_list "(param_1,&_gp_1)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) () ")"))) (; ";")) (expression_statement "puVar16 = puVar4;" (assignment_expression "puVar16 = puVar4" (identifier "puVar16") (= "=") (identifier "puVar4")) (; ";")) (} "}")))) (expression_statement "FUN_00039bc4(param_1,pppppppcStack_48c);" (call_expression "FUN_00039bc4(param_1,pppppppcStack_48c)" (identifier "FUN_00039bc4") (argument_list "(param_1,pppppppcStack_48c)" (( "(") (identifier "param_1") (, ",") (identifier "pppppppcStack_48c") () ")"))) (; ";")) (labeled_statement "LAB_0003b710:\n      unaff_s0 = (undefined *)(iVar1 + 3);" (statement_identifier "LAB_0003b710") (: ":") (expression_statement "unaff_s0 = (undefined *)(iVar1 + 3);" (assignment_expression "unaff_s0 = (undefined *)(iVar1 + 3)" (identifier "unaff_s0") (= "=") (cast_expression "(undefined *)(iVar1 + 3)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 3)" (( "(") (binary_expression "iVar1 + 3" (identifier "iVar1") (+ "+") (number_literal "3")) () ")")))) (; ";"))) (expression_statement "(**(code **)(puStack_940 + -0x7be8))(param_1);" (call_expression "(**(code **)(puStack_940 + -0x7be8))(param_1)" (parenthesized_expression "(**(code **)(puStack_940 + -0x7be8))" (( "(") (pointer_expression "**(code **)(puStack_940 + -0x7be8)" (* "*") (pointer_expression "*(code **)(puStack_940 + -0x7be8)" (* "*") (cast_expression "(code **)(puStack_940 + -0x7be8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_940 + -0x7be8)" (( "(") (binary_expression "puStack_940 + -0x7be8" (identifier "puStack_940") (+ "+") (number_literal "-0x7be8")) () ")"))))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "puVar40 = puStack_940;" (assignment_expression "puVar40 = puStack_940" (identifier "puVar40") (= "=") (identifier "puStack_940")) (; ";")) (if_statement "if (iStack_4cc == *piVar31) {\n        return;\n      }" (if "if") (parenthesized_expression "(iStack_4cc == *piVar31)" (( "(") (binary_expression "iStack_4cc == *piVar31" (identifier "iStack_4cc") (== "==") (pointer_expression "*piVar31" (* "*") (identifier "piVar31"))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0003b948;" (goto "goto") (statement_identifier "LAB_0003b948") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar1 = param_1[0x53];" (assignment_expression "iVar1 = param_1[0x53]" (identifier "iVar1") (= "=") (subscript_expression "param_1[0x53]" (identifier "param_1") ([ "[") (number_literal "0x53") (] "]"))) (; ";")) (expression_statement "pcVar32 = *(code **)(puVar40 + -0x7be4);" (assignment_expression "pcVar32 = *(code **)(puVar40 + -0x7be4)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(puVar40 + -0x7be4)" (* "*") (cast_expression "(code **)(puVar40 + -0x7be4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar40 + -0x7be4)" (( "(") (binary_expression "puVar40 + -0x7be4" (identifier "puVar40") (+ "+") (number_literal "-0x7be4")) () ")"))))) (; ";")) (expression_statement "pcVar42 = FUN_0003b988;" (assignment_expression "pcVar42 = FUN_0003b988" (identifier "pcVar42") (= "=") (identifier "FUN_0003b988")) (; ";")) (expression_statement "piVar27 = param_1;" (assignment_expression "piVar27 = param_1" (identifier "piVar27") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*pcVar32)(param_1,iVar1);" (call_expression "(*pcVar32)(param_1,iVar1)" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(param_1,iVar1)" (( "(") (identifier "param_1") (, ",") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);" (assignment_expression "pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668)" (identifier "pppppppcStack_980") (= "=") (cast_expression "(code *******)(pcVar32 + 0x1f668)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pcVar32 + 0x1f668)" (( "(") (binary_expression "pcVar32 + 0x1f668" (identifier "pcVar32") (+ "+") (number_literal "0x1f668")) () ")")))) (; ";")) (expression_statement "piVar20 = *(int **)(pcVar32 + 0x17b34);" (assignment_expression "piVar20 = *(int **)(pcVar32 + 0x17b34)" (identifier "piVar20") (= "=") (pointer_expression "*(int **)(pcVar32 + 0x17b34)" (* "*") (cast_expression "(int **)(pcVar32 + 0x17b34)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x17b34)" (( "(") (binary_expression "pcVar32 + 0x17b34" (identifier "pcVar32") (+ "+") (number_literal "0x17b34")) () ")"))))) (; ";")) (expression_statement "iStack_96c = *piVar20;" (assignment_expression "iStack_96c = *piVar20" (identifier "iStack_96c") (= "=") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) (; ";")) (expression_statement "ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);" (assignment_expression "ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50)" (identifier "ppppppcVar33") (= "=") (pointer_expression "*(code *******)(pcVar32 + 0x17a50)" (* "*") (cast_expression "(code *******)(pcVar32 + 0x17a50)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(pcVar32 + 0x17a50)" (( "(") (binary_expression "pcVar32 + 0x17a50" (identifier "pcVar32") (+ "+") (number_literal "0x17a50")) () ")"))))) (; ";")) (expression_statement "puStack_968 = unaff_s0;" (assignment_expression "puStack_968 = unaff_s0" (identifier "puStack_968") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "piStack_964 = param_1;" (assignment_expression "piStack_964 = param_1" (identifier "piStack_964") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pppppppcStack_960 = pppppppcStack_48c;" (assignment_expression "pppppppcStack_960 = pppppppcStack_48c" (identifier "pppppppcStack_960") (= "=") (identifier "pppppppcStack_48c")) (; ";")) (expression_statement "puStack_95c = &_gp_1;" (assignment_expression "puStack_95c = &_gp_1" (identifier "puStack_95c") (= "=") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1"))) (; ";")) (expression_statement "puStack_958 = param_4;" (assignment_expression "puStack_958 = param_4" (identifier "puStack_958") (= "=") (identifier "param_4")) (; ";")) (expression_statement "pcStack_954 = pcVar42;" (assignment_expression "pcStack_954 = pcVar42" (identifier "pcStack_954") (= "=") (identifier "pcVar42")) (; ";")) (if_statement "if (1 < (int)puVar4) {\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }" (if "if") (parenthesized_expression "(1 < (int)puVar4)" (( "(") (binary_expression "1 < (int)puVar4" (number_literal "1") (< "<") (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar32 + 0x17ab8))();\n    ppppppcVar33 = pppppppcStack_980[-0x1f06];\n  }" ({ "{") (expression_statement "(**(code **)(pcVar32 + 0x17ab8))();" (call_expression "(**(code **)(pcVar32 + 0x17ab8))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x17ab8))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x17ab8)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x17ab8)" (* "*") (cast_expression "(code **)(pcVar32 + 0x17ab8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x17ab8)" (( "(") (binary_expression "pcVar32 + 0x17ab8" (identifier "pcVar32") (+ "+") (number_literal "0x17ab8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppppppcVar33 = pppppppcStack_980[-0x1f06];" (assignment_expression "ppppppcVar33 = pppppppcStack_980[-0x1f06]" (identifier "ppppppcVar33") (= "=") (subscript_expression "pppppppcStack_980[-0x1f06]" (identifier "pppppppcStack_980") ([ "[") (number_literal "-0x1f06") (] "]"))) (; ";")) (} "}"))) (expression_statement "(*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);" (call_expression "(*(code *)ppppppcVar33)(&pppppcStack_978,iVar1)" (parenthesized_expression "(*(code *)ppppppcVar33)" (( "(") (pointer_expression "*(code *)ppppppcVar33" (* "*") (cast_expression "(code *)ppppppcVar33" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppcVar33"))) () ")")) (argument_list "(&pppppcStack_978,iVar1)" (( "(") (pointer_expression "&pppppcStack_978" (& "&") (identifier "pppppcStack_978")) (, ",") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "(*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);" (call_expression "(*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2)" (parenthesized_expression "(*(code *)pppppppcStack_980[-0x1f06])" (( "(") (pointer_expression "*(code *)pppppppcStack_980[-0x1f06]" (* "*") (cast_expression "(code *)pppppppcStack_980[-0x1f06]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pppppppcStack_980[-0x1f06]" (identifier "pppppppcStack_980") ([ "[") (number_literal "-0x1f06") (] "]")))) () ")")) (argument_list "(&piStack_974,pppppppcVar2)" (( "(") (pointer_expression "&piStack_974" (& "&") (identifier "piStack_974")) (, ",") (identifier "pppppppcVar2") () ")"))) (; ";")) (expression_statement "puVar17 = (undefined1 *)0x9;" (assignment_expression "puVar17 = (undefined1 *)0x9" (identifier "puVar17") (= "=") (cast_expression "(undefined1 *)0x9" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x9"))) (; ";")) (expression_statement "uStack_970 = SUB41(puVar4,0);" (assignment_expression "uStack_970 = SUB41(puVar4,0)" (identifier "uStack_970") (= "=") (call_expression "SUB41(puVar4,0)" (identifier "SUB41") (argument_list "(puVar4,0)" (( "(") (identifier "puVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "piVar5 = piVar27;" (assignment_expression "piVar5 = piVar27" (identifier "piVar5") (= "=") (identifier "piVar27")) (; ";")) (expression_statement "ppppppcVar33 = &pppppcStack_978;" (assignment_expression "ppppppcVar33 = &pppppcStack_978" (identifier "ppppppcVar33") (= "=") (pointer_expression "&pppppcStack_978" (& "&") (identifier "pppppcStack_978"))) (; ";")) (expression_statement "FUN_00039d28(piVar27,0x6f464673);" (call_expression "FUN_00039d28(piVar27,0x6f464673)" (identifier "FUN_00039d28") (argument_list "(piVar27,0x6f464673)" (( "(") (identifier "piVar27") (, ",") (number_literal "0x6f464673") () ")"))) (; ";")) (if_statement "if (iStack_96c == *piVar20) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_96c == *piVar20)" (( "(") (binary_expression "iStack_96c == *piVar20" (identifier "iStack_96c") (== "==") (pointer_expression "*piVar20" (* "*") (identifier "piVar20"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "ppppppcVar34 = pppppppcStack_980[-0x1edb];" (assignment_expression "ppppppcVar34 = pppppppcStack_980[-0x1edb]" (identifier "ppppppcVar34") (= "=") (subscript_expression "pppppppcStack_980[-0x1edb]" (identifier "pppppppcStack_980") ([ "[") (number_literal "-0x1edb") (] "]"))) (; ";")) (expression_statement "pcVar32 = FUN_0003ba7c;" (assignment_expression "pcVar32 = FUN_0003ba7c" (identifier "pcVar32") (= "=") (identifier "FUN_0003ba7c")) (; ";")) (expression_statement "(*(code *)ppppppcVar34)();" (call_expression "(*(code *)ppppppcVar34)()" (parenthesized_expression "(*(code *)ppppppcVar34)" (( "(") (pointer_expression "*(code *)ppppppcVar34" (* "*") (cast_expression "(code *)ppppppcVar34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppppcVar34"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppppppcVar24 = pppppppcStack_980;" (assignment_expression "pppppppcVar24 = pppppppcStack_980" (identifier "pppppppcVar24") (= "=") (identifier "pppppppcStack_980")) (; ";")) (expression_statement "ppppppcVar14 = ppppppcVar34 + 0x7d5d;" (assignment_expression "ppppppcVar14 = ppppppcVar34 + 0x7d5d" (identifier "ppppppcVar14") (= "=") (binary_expression "ppppppcVar34 + 0x7d5d" (identifier "ppppppcVar34") (+ "+") (number_literal "0x7d5d"))) (; ";")) (expression_statement "pppppcStack_a30 = ppppppcVar34[0x5e90];" (assignment_expression "pppppcStack_a30 = ppppppcVar34[0x5e90]" (identifier "pppppcStack_a30") (= "=") (subscript_expression "ppppppcVar34[0x5e90]" (identifier "ppppppcVar34") ([ "[") (number_literal "0x5e90") (] "]"))) (; ";")) (expression_statement "pppppcStack_a34 = pppppcStack_978;" (assignment_expression "pppppcStack_a34 = pppppcStack_978" (identifier "pppppcStack_a34") (= "=") (identifier "pppppcStack_978")) (; ";")) (expression_statement "ppppcStack_9bc = *pppppcStack_a30;" (assignment_expression "ppppcStack_9bc = *pppppcStack_a30" (identifier "ppppcStack_9bc") (= "=") (pointer_expression "*pppppcStack_a30" (* "*") (identifier "pppppcStack_a30"))) (; ";")) (expression_statement "piStack_a70 = piVar20;" (assignment_expression "piStack_a70 = piVar20" (identifier "piStack_a70") (= "=") (identifier "piVar20")) (; ";")) (expression_statement "ppppppcStack_a40 = ppppppcVar14;" (assignment_expression "ppppppcStack_a40 = ppppppcVar14" (identifier "ppppppcStack_a40") (= "=") (identifier "ppppppcVar14")) (; ";")) (expression_statement "ppppppcStack_9b8 = &pppppcStack_978;" (assignment_expression "ppppppcStack_9b8 = &pppppcStack_978" (identifier "ppppppcStack_9b8") (= "=") (pointer_expression "&pppppcStack_978" (& "&") (identifier "pppppcStack_978"))) (; ";")) (expression_statement "piStack_9b4 = piVar20;" (assignment_expression "piStack_9b4 = piVar20" (identifier "piStack_9b4") (= "=") (identifier "piVar20")) (; ";")) (expression_statement "puStack_9b0 = puVar4;" (assignment_expression "puStack_9b0 = puVar4" (identifier "puStack_9b0") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "piStack_9ac = piVar27;" (assignment_expression "piStack_9ac = piVar27" (identifier "piStack_9ac") (= "=") (identifier "piVar27")) (; ";")) (expression_statement "pppppppcStack_9a8 = pppppppcVar2;" (assignment_expression "pppppppcStack_9a8 = pppppppcVar2" (identifier "pppppppcStack_9a8") (= "=") (identifier "pppppppcVar2")) (; ";")) (expression_statement "piStack_9a4 = param_2;" (assignment_expression "piStack_9a4 = param_2" (identifier "piStack_9a4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pppppppcStack_9a0 = pppppppcVar29;" (assignment_expression "pppppppcStack_9a0 = pppppppcVar29" (identifier "pppppppcStack_9a0") (= "=") (identifier "pppppppcVar29")) (; ";")) (expression_statement "piStack_99c = piVar31;" (assignment_expression "piStack_99c = piVar31" (identifier "piStack_99c") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "pppppppcStack_998 = unaff_s8;" (assignment_expression "pppppppcStack_998 = unaff_s8" (identifier "pppppppcStack_998") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_994 = pcVar32;" (assignment_expression "pcStack_994 = pcVar32" (identifier "pcStack_994") (= "=") (identifier "pcVar32")) (; ";")) (expression_statement "ppppppcStack_988 = ppppppcVar33;" (assignment_expression "ppppppcStack_988 = ppppppcVar33" (identifier "ppppppcStack_988") (= "=") (identifier "ppppppcVar33")) (; ";")) (expression_statement "puStack_984 = puVar17;" (assignment_expression "puStack_984 = puVar17" (identifier "puStack_984") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if ((int)pppppppcStack_980 < 4) {\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }\n  else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }" (if "if") (parenthesized_expression "((int)pppppppcStack_980 < 4)" (( "(") (binary_expression "(int)pppppppcStack_980 < 4" (cast_expression "(int)pppppppcStack_980" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcStack_980")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    ppppppcVar33 = apppppcStack_a0c;\n    ppppppcStack_a1c = ppppppcVar33;\n    iVar1 = FUN_0003449c();\n    ppppppcVar14 = ppppppcStack_a40;\n    piStack_a70 = piVar5;\n    if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }\n    iStack_a2c = iVar1 + 1;\n    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);\n    uStack_a24 = (uint)pppppppcVar24 & 0xff;\n    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);\n    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);\n    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);\n    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);\n    uStack_a20 = (uint)piStack_97c & 0xff;\n    if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }\n    pppppppcVar9 = pppppppcVar2;\n    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);\n    (*(code *)ppppppcStack_a40[-0x1efa])();\n    piStack_a74 = piVar20;\n    ppppppcVar14 = ppppppcStack_a40;\n    piVar20 = piStack_974;\n    if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }\n  }" ({ "{") (expression_statement "ppppppcVar33 = apppppcStack_a0c;" (assignment_expression "ppppppcVar33 = apppppcStack_a0c" (identifier "ppppppcVar33") (= "=") (identifier "apppppcStack_a0c")) (; ";")) (expression_statement "ppppppcStack_a1c = ppppppcVar33;" (assignment_expression "ppppppcStack_a1c = ppppppcVar33" (identifier "ppppppcStack_a1c") (= "=") (identifier "ppppppcVar33")) (; ";")) (expression_statement "iVar1 = FUN_0003449c();" (assignment_expression "iVar1 = FUN_0003449c()" (identifier "iVar1") (= "=") (call_expression "FUN_0003449c()" (identifier "FUN_0003449c") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "ppppppcVar14 = ppppppcStack_a40;" (assignment_expression "ppppppcVar14 = ppppppcStack_a40" (identifier "ppppppcVar14") (= "=") (identifier "ppppppcStack_a40")) (; ";")) (expression_statement "piStack_a70 = piVar5;" (assignment_expression "piStack_a70 = piVar5" (identifier "piStack_a70") (= "=") (identifier "piVar5")) (; ";")) (if_statement "if (iVar1 == 0) {\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);\n      pppppppcVar2 = (code *******)0x0;\n      goto LAB_0003bebc;\n    }" ({ "{") (expression_statement "(*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ef9])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ef9]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ef9]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ef9]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ef9") (] "]")))) () ")")) (argument_list "(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2)" (( "(") (identifier "piVar5") (, ",") (binary_expression "ppppppcStack_a40[-0x1ff5] + 0x9b2" (subscript_expression "ppppppcStack_a40[-0x1ff5]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ff5") (] "]")) (+ "+") (number_literal "0x9b2")) () ")"))) (; ";")) (expression_statement "pppppppcVar2 = (code *******)0x0;" (assignment_expression "pppppppcVar2 = (code *******)0x0" (identifier "pppppppcVar2") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0003bebc;" (goto "goto") (statement_identifier "LAB_0003bebc") (; ";")) (} "}"))) (expression_statement "iStack_a2c = iVar1 + 1;" (assignment_expression "iStack_a2c = iVar1 + 1" (identifier "iStack_a2c") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);" (assignment_expression "piVar27 = (int *)(uint)(piStack_97c != (int *)0x0)" (identifier "piVar27") (= "=") (cast_expression "(int *)(uint)(piStack_97c != (int *)0x0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(uint)(piStack_97c != (int *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piStack_97c != (int *)0x0)" (( "(") (binary_expression "piStack_97c != (int *)0x0" (identifier "piStack_97c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))))) (; ";")) (expression_statement "uStack_a24 = (uint)pppppppcVar24 & 0xff;" (assignment_expression "uStack_a24 = (uint)pppppppcVar24 & 0xff" (identifier "uStack_a24") (= "=") (binary_expression "(uint)pppppppcVar24 & 0xff" (cast_expression "(uint)pppppppcVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppppcVar24")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);" (assignment_expression "iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34)" (identifier "iVar8") (= "=") (call_expression "(*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f07])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f07]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f07]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f07]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f07") (] "]")))) () ")")) (argument_list "(pppppcStack_a34)" (( "(") (identifier "pppppcStack_a34") () ")")))) (; ";")) (expression_statement "ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);" (assignment_expression "ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8)" (identifier "ppppppcStack_a28") (= "=") (cast_expression "(code ******)((int)piVar27 + iVar8)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((int)piVar27 + iVar8)" (( "(") (binary_expression "(int)piVar27 + iVar8" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (identifier "iVar8")) () ")")))) (; ";")) (expression_statement "piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);" (assignment_expression "piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb)" (identifier "piVar31") (= "=") (cast_expression "(int *)((int)ppppppcStack_a28 + iVar1 + 0xb)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppcStack_a28 + iVar1 + 0xb)" (( "(") (binary_expression "(int)ppppppcStack_a28 + iVar1 + 0xb" (binary_expression "(int)ppppppcStack_a28 + iVar1" (cast_expression "(int)ppppppcStack_a28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcStack_a28")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "0xb")) () ")")))) (; ";")) (expression_statement "pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);" (assignment_expression "pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2)" (identifier "pppppppcVar2") (= "=") (cast_expression "(code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (call_expression "(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f3a])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f3a]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f3a]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f3a]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f3a") (] "]")))) () ")")) (argument_list "(piVar5,(int)piStack_97c << 2)" (( "(") (identifier "piVar5") (, ",") (binary_expression "(int)piStack_97c << 2" (cast_expression "(int)piStack_97c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_97c")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uStack_a20 = (uint)piStack_97c & 0xff;" (assignment_expression "uStack_a20 = (uint)piStack_97c & 0xff" (identifier "uStack_a20") (= "=") (binary_expression "(uint)piStack_97c & 0xff" (cast_expression "(uint)piStack_97c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piStack_97c")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if ((int)piStack_97c < 1) {\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }\n    else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }" (if "if") (parenthesized_expression "((int)piStack_97c < 1)" (( "(") (binary_expression "(int)piStack_97c < 1" (cast_expression "(int)piStack_97c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_97c")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }\n    }" ({ "{") (if_statement "if (piVar5 == (int *)0x0) {\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);\n      }" ({ "{") (expression_statement "piVar20 = &iStack_a18;" (assignment_expression "piVar20 = &iStack_a18" (identifier "piVar20") (= "=") (pointer_expression "&iStack_a18" (& "&") (identifier "iStack_a18"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(0,ppppppcStack_a1c,iStack_a2c)" (( "(") (number_literal "0") (, ",") (identifier "ppppppcStack_a1c") (, ",") (identifier "iStack_a2c") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f06]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f06") (] "]")))) () ")")) (argument_list "(piVar20,ppppppcStack_988)" (( "(") (identifier "piVar20") (, ",") (identifier "ppppppcStack_988") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f06]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f06") (] "]")))) () ")")) (argument_list "(auStack_a14,puStack_984)" (( "(") (identifier "auStack_a14") (, ",") (identifier "puStack_984") () ")"))) (; ";")) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" (identifier "uStack_a10") (= "=") (cast_expression "(undefined1)uStack_a24" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uStack_a24"))) (; ";")) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" (identifier "uStack_a0f") (= "=") (cast_expression "(undefined1)uStack_a20" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uStack_a20"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(0,piVar20,10)" (( "(") (number_literal "0") (, ",") (identifier "piVar20") (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "ppppppcVar33 = ppppppcStack_a28;" (assignment_expression "ppppppcVar33 = ppppppcStack_a28" (identifier "ppppppcVar33") (= "=") (identifier "ppppppcStack_a28")) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(0,pppppcStack_a34)" (( "(") (number_literal "0") (, ",") (identifier "pppppcStack_a34") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }" (else "else") (compound_statement "{\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        piVar20 = &iStack_a18;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);\n        ppppppcVar33 = ppppppcStack_a28;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);\n      }" ({ "{") (expression_statement "FUN_00039938(piVar5,0x7043414c,piVar31);" (call_expression "FUN_00039938(piVar5,0x7043414c,piVar31)" (identifier "FUN_00039938") (argument_list "(piVar5,0x7043414c,piVar31)" (( "(") (identifier "piVar5") (, ",") (number_literal "0x7043414c") (, ",") (identifier "piVar31") () ")"))) (; ";")) (expression_statement "piVar20 = &iStack_a18;" (assignment_expression "piVar20 = &iStack_a18" (identifier "piVar20") (= "=") (pointer_expression "&iStack_a18" (& "&") (identifier "iStack_a18"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(piVar5,ppppppcStack_a1c,iStack_a2c)" (( "(") (identifier "piVar5") (, ",") (identifier "ppppppcStack_a1c") (, ",") (identifier "iStack_a2c") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f06]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f06") (] "]")))) () ")")) (argument_list "(piVar20,ppppppcStack_988)" (( "(") (identifier "piVar20") (, ",") (identifier "ppppppcStack_988") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f06]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f06") (] "]")))) () ")")) (argument_list "(auStack_a14,puStack_984)" (( "(") (identifier "auStack_a14") (, ",") (identifier "puStack_984") () ")"))) (; ";")) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" (identifier "uStack_a10") (= "=") (cast_expression "(undefined1)uStack_a24" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uStack_a24"))) (; ";")) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" (identifier "uStack_a0f") (= "=") (cast_expression "(undefined1)uStack_a20" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uStack_a20"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(piVar5,piVar20,10)" (( "(") (identifier "piVar5") (, ",") (identifier "piVar20") (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "ppppppcVar33 = ppppppcStack_a28;" (assignment_expression "ppppppcVar33 = ppppppcStack_a28" (identifier "ppppppcVar33") (= "=") (identifier "ppppppcStack_a28")) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(piVar5,pppppcStack_a34)" (( "(") (identifier "piVar5") (, ",") (identifier "pppppcStack_a34") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }" (else "else") (compound_statement "{\n      piVar27 = (int *)0x0;\n      param_2 = piStack_974;\n      pppppppcVar29 = pppppppcVar2;\n      do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);\n      if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }\n      pppppppcVar29 = (code *******)0x0;\n      pppppppcVar24 = pppppppcVar2;\n      piVar15 = piStack_974;\n      do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);\n    }" ({ "{") (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" (identifier "piVar27") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_2 = piStack_974;" (assignment_expression "param_2 = piStack_974" (identifier "param_2") (= "=") (identifier "piStack_974")) (; ";")) (expression_statement "pppppppcVar29 = pppppppcVar2;" (assignment_expression "pppppppcVar29 = pppppppcVar2" (identifier "pppppppcVar29") (= "=") (identifier "pppppppcVar2")) (; ";")) (do_statement "do {\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      } while (piStack_97c != piVar27);" (do "do") (compound_statement "{\n        iVar1 = *param_2;\n        param_2 = param_2 + 1;\n        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);\n        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);\n        piVar27 = (int *)((int)piVar27 + 1);\n        *pppppppcVar29 = ppppppcVar33;\n        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);\n        pppppppcVar29 = pppppppcVar29 + 1;\n      }" ({ "{") (expression_statement "iVar1 = *param_2;" (assignment_expression "iVar1 = *param_2" (identifier "iVar1") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "param_2 = param_2 + 1;" (assignment_expression "param_2 = param_2 + 1" (identifier "param_2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);" (assignment_expression "iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1)" (identifier "iVar1") (= "=") (call_expression "(*(code *)ppppppcStack_a40[-0x1f07])(iVar1)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f07])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f07]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f07]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f07]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f07") (] "]")))) () ")")) (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);" (assignment_expression "ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1)" (identifier "ppppppcVar33") (= "=") (cast_expression "(code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1)" (( "(") (binary_expression "(uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1" (call_expression "(uint)(piVar27 != (int *)((int)piStack_97c + -1))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar27 != (int *)((int)piStack_97c + -1))" (( "(") (binary_expression "piVar27 != (int *)((int)piStack_97c + -1)" (identifier "piVar27") (!= "!=") (cast_expression "(int *)((int)piStack_97c + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piStack_97c + -1)" (( "(") (binary_expression "(int)piStack_97c + -1" (cast_expression "(int)piStack_97c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_97c")) (+ "+") (number_literal "-1")) () ")")))) () ")"))) (+ "+") (identifier "iVar1")) () ")")))) (; ";")) (expression_statement "piVar27 = (int *)((int)piVar27 + 1);" (assignment_expression "piVar27 = (int *)((int)piVar27 + 1)" (identifier "piVar27") (= "=") (cast_expression "(int *)((int)piVar27 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar27 + 1)" (( "(") (binary_expression "(int)piVar27 + 1" (cast_expression "(int)piVar27" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar27")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*pppppppcVar29 = ppppppcVar33;" (assignment_expression "*pppppppcVar29 = ppppppcVar33" (pointer_expression "*pppppppcVar29" (* "*") (identifier "pppppppcVar29")) (= "=") (identifier "ppppppcVar33")) (; ";")) (expression_statement "piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);" (assignment_expression "piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33)" (identifier "piVar31") (= "=") (cast_expression "(int *)((int)piVar31 + (int)ppppppcVar33)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar31 + (int)ppppppcVar33)" (( "(") (binary_expression "(int)piVar31 + (int)ppppppcVar33" (cast_expression "(int)piVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar31")) (+ "+") (cast_expression "(int)ppppppcVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar33"))) () ")")))) (; ";")) (expression_statement "pppppppcVar29 = pppppppcVar29 + 1;" (assignment_expression "pppppppcVar29 = pppppppcVar29 + 1" (identifier "pppppppcVar29") (= "=") (binary_expression "pppppppcVar29 + 1" (identifier "pppppppcVar29") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piStack_97c != piVar27)" (( "(") (binary_expression "piStack_97c != piVar27" (identifier "piStack_97c") (!= "!=") (identifier "piVar27")) () ")")) (; ";")) (if_statement "if (piVar5 == (int *)0x0) {\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }\n      else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);\n      }" ({ "{") (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(0,ppppppcStack_a1c,iStack_a2c)" (( "(") (number_literal "0") (, ",") (identifier "ppppppcStack_a1c") (, ",") (identifier "iStack_a2c") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f06]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f06") (] "]")))) () ")")) (argument_list "(&iStack_a18,ppppppcStack_988)" (( "(") (pointer_expression "&iStack_a18" (& "&") (identifier "iStack_a18")) (, ",") (identifier "ppppppcStack_988") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f06]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f06") (] "]")))) () ")")) (argument_list "(auStack_a14,puStack_984)" (( "(") (identifier "auStack_a14") (, ",") (identifier "puStack_984") () ")"))) (; ";")) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" (identifier "uStack_a10") (= "=") (cast_expression "(undefined1)uStack_a24" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uStack_a24"))) (; ";")) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" (identifier "uStack_a0f") (= "=") (cast_expression "(undefined1)uStack_a20" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uStack_a20"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(0,&iStack_a18,10)" (( "(") (number_literal "0") (, ",") (pointer_expression "&iStack_a18" (& "&") (identifier "iStack_a18")) (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(0,pppppcStack_a34,ppppppcStack_a28)" (( "(") (number_literal "0") (, ",") (identifier "pppppcStack_a34") (, ",") (identifier "ppppppcStack_a28") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }" (else "else") (compound_statement "{\n        FUN_00039938(piVar5,0x7043414c,piVar31);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);\n        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);\n        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);\n        uStack_a10 = (undefined1)uStack_a24;\n        uStack_a0f = (undefined1)uStack_a20;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);\n      }" ({ "{") (expression_statement "FUN_00039938(piVar5,0x7043414c,piVar31);" (call_expression "FUN_00039938(piVar5,0x7043414c,piVar31)" (identifier "FUN_00039938") (argument_list "(piVar5,0x7043414c,piVar31)" (( "(") (identifier "piVar5") (, ",") (number_literal "0x7043414c") (, ",") (identifier "piVar31") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(piVar5,ppppppcStack_a1c,iStack_a2c)" (( "(") (identifier "piVar5") (, ",") (identifier "ppppppcStack_a1c") (, ",") (identifier "iStack_a2c") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f06]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f06") (] "]")))) () ")")) (argument_list "(&iStack_a18,ppppppcStack_988)" (( "(") (pointer_expression "&iStack_a18" (& "&") (identifier "iStack_a18")) (, ",") (identifier "ppppppcStack_988") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f06])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f06]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f06]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f06]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f06") (] "]")))) () ")")) (argument_list "(auStack_a14,puStack_984)" (( "(") (identifier "auStack_a14") (, ",") (identifier "puStack_984") () ")"))) (; ";")) (expression_statement "uStack_a10 = (undefined1)uStack_a24;" (assignment_expression "uStack_a10 = (undefined1)uStack_a24" (identifier "uStack_a10") (= "=") (cast_expression "(undefined1)uStack_a24" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uStack_a24"))) (; ";")) (expression_statement "uStack_a0f = (undefined1)uStack_a20;" (assignment_expression "uStack_a0f = (undefined1)uStack_a20" (identifier "uStack_a0f") (= "=") (cast_expression "(undefined1)uStack_a20" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "uStack_a20"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(piVar5,&iStack_a18,10)" (( "(") (identifier "piVar5") (, ",") (pointer_expression "&iStack_a18" (& "&") (identifier "iStack_a18")) (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(piVar5,pppppcStack_a34,ppppppcStack_a28)" (( "(") (identifier "piVar5") (, ",") (identifier "pppppcStack_a34") (, ",") (identifier "ppppppcStack_a28") () ")"))) (; ";")) (} "}")))) (expression_statement "pppppppcVar29 = (code *******)0x0;" (assignment_expression "pppppppcVar29 = (code *******)0x0" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)0x0" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pppppppcVar24 = pppppppcVar2;" (assignment_expression "pppppppcVar24 = pppppppcVar2" (identifier "pppppppcVar24") (= "=") (identifier "pppppppcVar2")) (; ";")) (expression_statement "piVar15 = piStack_974;" (assignment_expression "piVar15 = piStack_974" (identifier "piVar15") (= "=") (identifier "piStack_974")) (; ";")) (do_statement "do {\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      } while ((int)pppppppcVar29 < (int)piStack_97c);" (do "do") (compound_statement "{\n        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);\n        ppppppcVar33 = *pppppppcVar24;\n        iVar1 = *piVar15;\n        pppppppcVar24 = pppppppcVar24 + 1;\n        piVar15 = piVar15 + 1;\n        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);\n        piVar20 = piStack_97c;\n        piStack_974 = piVar15;\n      }" ({ "{") (expression_statement "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);" (assignment_expression "pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1)" (identifier "pppppppcVar29") (= "=") (cast_expression "(code *******)((int)pppppppcVar29 + 1)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "((int)pppppppcVar29 + 1)" (( "(") (binary_expression "(int)pppppppcVar29 + 1" (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "ppppppcVar33 = *pppppppcVar24;" (assignment_expression "ppppppcVar33 = *pppppppcVar24" (identifier "ppppppcVar33") (= "=") (pointer_expression "*pppppppcVar24" (* "*") (identifier "pppppppcVar24"))) (; ";")) (expression_statement "iVar1 = *piVar15;" (assignment_expression "iVar1 = *piVar15" (identifier "iVar1") (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (expression_statement "pppppppcVar24 = pppppppcVar24 + 1;" (assignment_expression "pppppppcVar24 = pppppppcVar24 + 1" (identifier "pppppppcVar24") (= "=") (binary_expression "pppppppcVar24 + 1" (identifier "pppppppcVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" (identifier "piVar15") (= "=") (binary_expression "piVar15 + 1" (identifier "piVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);" (call_expression "(*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1ebd])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1ebd]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1ebd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1ebd]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1ebd") (] "]")))) () ")")) (argument_list "(piVar5,iVar1)" (( "(") (identifier "piVar5") (, ",") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "piVar20 = piStack_97c;" (assignment_expression "piVar20 = piStack_97c" (identifier "piVar20") (= "=") (identifier "piStack_97c")) (; ";")) (expression_statement "piStack_974 = piVar15;" (assignment_expression "piStack_974 = piVar15" (identifier "piStack_974") (= "=") (identifier "piVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)pppppppcVar29 < (int)piStack_97c)" (( "(") (binary_expression "(int)pppppppcVar29 < (int)piStack_97c" (cast_expression "(int)pppppppcVar29" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppppcVar29")) (< "<") (cast_expression "(int)piStack_97c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_97c"))) () ")")) (; ";")) (} "}")))) (expression_statement "pppppppcVar9 = pppppppcVar2;" (assignment_expression "pppppppcVar9 = pppppppcVar2" (identifier "pppppppcVar9") (= "=") (identifier "pppppppcVar2")) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1f33])(piVar5);" (call_expression "(*(code *)ppppppcStack_a40[-0x1f33])(piVar5)" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1f33])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1f33]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1f33]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1f33]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1f33") (] "]")))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (expression_statement "(*(code *)ppppppcStack_a40[-0x1efa])();" (call_expression "(*(code *)ppppppcStack_a40[-0x1efa])()" (parenthesized_expression "(*(code *)ppppppcStack_a40[-0x1efa])" (( "(") (pointer_expression "*(code *)ppppppcStack_a40[-0x1efa]" (* "*") (cast_expression "(code *)ppppppcStack_a40[-0x1efa]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcStack_a40[-0x1efa]" (identifier "ppppppcStack_a40") ([ "[") (number_literal "-0x1efa") (] "]")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piStack_a74 = piVar20;" (assignment_expression "piStack_a74 = piVar20" (identifier "piStack_a74") (= "=") (identifier "piVar20")) (; ";")) (expression_statement "ppppppcVar14 = ppppppcStack_a40;" (assignment_expression "ppppppcVar14 = ppppppcStack_a40" (identifier "ppppppcVar14") (= "=") (identifier "ppppppcStack_a40")) (; ";")) (expression_statement "piVar20 = piStack_974;" (assignment_expression "piVar20 = piStack_974" (identifier "piVar20") (= "=") (identifier "piStack_974")) (; ";")) (if_statement "if (ppppcStack_9bc == *pppppcStack_a30) {\n      return;\n    }" (if "if") (parenthesized_expression "(ppppcStack_9bc == *pppppcStack_a30)" (( "(") (binary_expression "ppppcStack_9bc == *pppppcStack_a30" (identifier "ppppcStack_9bc") (== "==") (pointer_expression "*pppppcStack_a30" (* "*") (identifier "pppppcStack_a30"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }" (else "else") (compound_statement "{\nLAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);\n    (*(code *)ppppppcVar14[-0x1ef9])();\n    piStack_a74 = piStack_97c;\n    piVar20 = piStack_974;\n  }" ({ "{") (labeled_statement "LAB_0003bebc:\n    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);" (statement_identifier "LAB_0003bebc") (: ":") (expression_statement "pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);" (assignment_expression "pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7)" (identifier "pppppppcVar9") (= "=") (cast_expression "(code *******)(ppppppcVar14[-0x1ff5] + 0x9a7)" (( "(") (type_descriptor "code *******" (type_identifier "code") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (parenthesized_expression "(ppppppcVar14[-0x1ff5] + 0x9a7)" (( "(") (binary_expression "ppppppcVar14[-0x1ff5] + 0x9a7" (subscript_expression "ppppppcVar14[-0x1ff5]" (identifier "ppppppcVar14") ([ "[") (number_literal "-0x1ff5") (] "]")) (+ "+") (number_literal "0x9a7")) () ")")))) (; ";"))) (expression_statement "(*(code *)ppppppcVar14[-0x1ef9])();" (call_expression "(*(code *)ppppppcVar14[-0x1ef9])()" (parenthesized_expression "(*(code *)ppppppcVar14[-0x1ef9])" (( "(") (pointer_expression "*(code *)ppppppcVar14[-0x1ef9]" (* "*") (cast_expression "(code *)ppppppcVar14[-0x1ef9]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppppcVar14[-0x1ef9]" (identifier "ppppppcVar14") ([ "[") (number_literal "-0x1ef9") (] "]")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piStack_a74 = piStack_97c;" (assignment_expression "piStack_a74 = piStack_97c" (identifier "piStack_a74") (= "=") (identifier "piStack_97c")) (; ";")) (expression_statement "piVar20 = piStack_974;" (assignment_expression "piVar20 = piStack_974" (identifier "piVar20") (= "=") (identifier "piStack_974")) (; ";")) (} "}")))) (expression_statement "pppppcVar35 = ppppppcVar14[-0x1edb];" (assignment_expression "pppppcVar35 = ppppppcVar14[-0x1edb]" (identifier "pppppcVar35") (= "=") (subscript_expression "ppppppcVar14[-0x1edb]" (identifier "ppppppcVar14") ([ "[") (number_literal "-0x1edb") (] "]"))) (; ";")) (expression_statement "pcVar32 = FUN_0003bed8;" (assignment_expression "pcVar32 = FUN_0003bed8" (identifier "pcVar32") (= "=") (identifier "FUN_0003bed8")) (; ";")) (expression_statement "(*(code *)pppppcVar35)();" (call_expression "(*(code *)pppppcVar35)()" (parenthesized_expression "(*(code *)pppppcVar35)" (( "(") (pointer_expression "*(code *)pppppcVar35" (* "*") (cast_expression "(code *)pppppcVar35" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppcVar35"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppppcStack_ac8 = pppppcVar35 + 0x7c46;" (assignment_expression "pppppcStack_ac8 = pppppcVar35 + 0x7c46" (identifier "pppppcStack_ac8") (= "=") (binary_expression "pppppcVar35 + 0x7c46" (identifier "pppppcVar35") (+ "+") (number_literal "0x7c46"))) (; ";")) (expression_statement "ppppcVar25 = pppppcVar35[0x5d79];" (assignment_expression "ppppcVar25 = pppppcVar35[0x5d79]" (identifier "ppppcVar25") (= "=") (subscript_expression "pppppcVar35[0x5d79]" (identifier "pppppcVar35") ([ "[") (number_literal "0x5d79") (] "]"))) (; ";")) (expression_statement "pppcStack_a7c = *ppppcVar25;" (assignment_expression "pppcStack_a7c = *ppppcVar25" (identifier "pppcStack_a7c") (= "=") (pointer_expression "*ppppcVar25" (* "*") (identifier "ppppcVar25"))) (; ";")) (expression_statement "ppppppcVar14 = ppppppcVar33;" (assignment_expression "ppppppcVar14 = ppppppcVar33" (identifier "ppppppcVar14") (= "=") (identifier "ppppppcVar33")) (; ";")) (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" (identifier "puVar6") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "pppppppcStack_a6c = pppppppcVar24;" (assignment_expression "pppppppcStack_a6c = pppppppcVar24" (identifier "pppppppcStack_a6c") (= "=") (identifier "pppppppcVar24")) (; ";")) (expression_statement "piStack_a68 = piVar27;" (assignment_expression "piStack_a68 = piVar27" (identifier "piStack_a68") (= "=") (identifier "piVar27")) (; ";")) (expression_statement "pppppppcStack_a64 = pppppppcVar2;" (assignment_expression "pppppppcStack_a64 = pppppppcVar2" (identifier "pppppppcStack_a64") (= "=") (identifier "pppppppcVar2")) (; ";")) (expression_statement "piStack_a60 = param_2;" (assignment_expression "piStack_a60 = param_2" (identifier "piStack_a60") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pppppppcStack_a5c = pppppppcVar29;" (assignment_expression "pppppppcStack_a5c = pppppppcVar29" (identifier "pppppppcStack_a5c") (= "=") (identifier "pppppppcVar29")) (; ";")) (expression_statement "piStack_a58 = piVar31;" (assignment_expression "piStack_a58 = piVar31" (identifier "piStack_a58") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "pcStack_a54 = pcVar32;" (assignment_expression "pcStack_a54 = pcVar32" (identifier "pcStack_a54") (= "=") (identifier "pcVar32")) (; ";")) (expression_statement "ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);" (assignment_expression "ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33)" (identifier "ppppppcVar34") (= "=") (cast_expression "(code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33)" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (call_expression "(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33)" (parenthesized_expression "(*(code *)pppppcVar35[0x5d3f])" (( "(") (pointer_expression "*(code *)pppppcVar35[0x5d3f]" (* "*") (cast_expression "(code *)pppppcVar35[0x5d3f]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pppppcVar35[0x5d3f]" (identifier "pppppcVar35") ([ "[") (number_literal "0x5d3f") (] "]")))) () ")")) (argument_list "(ppppppcVar33)" (( "(") (identifier "ppppppcVar33") () ")"))))) (; ";")) (expression_statement "iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);" (assignment_expression "iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17)" (identifier "iVar1") (= "=") (call_expression "(*(code *)pppppcStack_ac8[-0x1f07])(puVar17)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1f07])" (( "(") (pointer_expression "*(code *)pppppcStack_ac8[-0x1f07]" (* "*") (cast_expression "(code *)pppppcStack_ac8[-0x1f07]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pppppcStack_ac8[-0x1f07]" (identifier "pppppcStack_ac8") ([ "[") (number_literal "-0x1f07") (] "]")))) () ")")) (argument_list "(puVar17)" (( "(") (identifier "puVar17") () ")")))) (; ";")) (expression_statement "puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);" (assignment_expression "puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2)" (identifier "puVar18") (= "=") (cast_expression "(undefined1 *)((int)ppppppcVar34 + iVar1 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppcVar34 + iVar1 + 2)" (( "(") (binary_expression "(int)ppppppcVar34 + iVar1 + 2" (binary_expression "(int)ppppppcVar34 + iVar1" (cast_expression "(int)ppppppcVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar34")) (+ "+") (identifier "iVar1")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar31 = piVar5;" (assignment_expression "piVar31 = piVar5" (identifier "piVar31") (= "=") (identifier "piVar5")) (; ";")) (if_statement "if (puVar18 < (undefined1 *)0x41) {\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }\n  else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }" (if "if") (parenthesized_expression "(puVar18 < (undefined1 *)0x41)" (( "(") (binary_expression "puVar18 < (undefined1 *)0x41" (identifier "puVar18") (< "<") (cast_expression "(undefined1 *)0x41" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x41"))) () ")")) (compound_statement "{\n    uStack_abc = SUB41(pppppppcVar9,0);\n    (*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);\n    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);\n    ppppppcVar34 = (code ******)&uStack_abc;\n    (*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);\n    ppppcVar10 = (code ****)0x7343414c;\n    ppppppcVar14 = ppppppcVar34;\n    puVar6 = puVar18;\n    FUN_00039d28(piVar5,0x7343414c);\n  }" ({ "{") (expression_statement "uStack_abc = SUB41(pppppppcVar9,0);" (assignment_expression "uStack_abc = SUB41(pppppppcVar9,0)" (identifier "uStack_abc") (= "=") (call_expression "SUB41(pppppppcVar9,0)" (identifier "SUB41") (argument_list "(pppppppcVar9,0)" (( "(") (identifier "pppppppcVar9") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "(*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);" (call_expression "(*(code *)pppppcStack_ac8[-0x1efc])\n              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1efc])" (( "(") (pointer_expression "*(code *)pppppcStack_ac8[-0x1efc]" (* "*") (cast_expression "(code *)pppppcStack_ac8[-0x1efc]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pppppcStack_ac8[-0x1efc]" (identifier "pppppcStack_ac8") ([ "[") (number_literal "-0x1efc") (] "]")))) () ")")) (argument_list "(&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f)" (( "(") (pointer_expression "&uStack_abb" (& "&") (identifier "uStack_abb")) (, ",") (identifier "ppppppcVar33") (, ",") (cast_expression "(undefined1 *)((int)ppppppcVar34 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppcVar34 + 1)" (( "(") (binary_expression "(int)ppppppcVar34 + 1" (cast_expression "(int)ppppppcVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar34")) (+ "+") (number_literal "1")) () ")"))) (, ",") (number_literal "0x3f") () ")"))) (; ";")) (expression_statement "puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);" (assignment_expression "puVar6 = (undefined1 *)((int)ppppppcVar34 + 2)" (identifier "puVar6") (= "=") (cast_expression "(undefined1 *)((int)ppppppcVar34 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppcVar34 + 2)" (( "(") (binary_expression "(int)ppppppcVar34 + 2" (cast_expression "(int)ppppppcVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar34")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "ppppppcVar34 = (code ******)&uStack_abc;" (assignment_expression "ppppppcVar34 = (code ******)&uStack_abc" (identifier "ppppppcVar34") (= "=") (cast_expression "(code ******)&uStack_abc" (( "(") (type_descriptor "code ******" (type_identifier "code") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (pointer_expression "&uStack_abc" (& "&") (identifier "uStack_abc")))) (; ";")) (expression_statement "(*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);" (call_expression "(*(code *)pppppcStack_ac8[-0x1ecb])\n              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1ecb])" (( "(") (pointer_expression "*(code *)pppppcStack_ac8[-0x1ecb]" (* "*") (cast_expression "(code *)pppppcStack_ac8[-0x1ecb]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pppppcStack_ac8[-0x1ecb]" (identifier "pppppcStack_ac8") ([ "[") (number_literal "-0x1ecb") (] "]")))) () ")")) (argument_list "((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1)" (( "(") (cast_expression "(undefined1 *)((int)ppppppcVar34 + (int)puVar6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppppcVar34 + (int)puVar6)" (( "(") (binary_expression "(int)ppppppcVar34 + (int)puVar6" (cast_expression "(int)ppppppcVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppppcVar34")) (+ "+") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")"))) (, ",") (identifier "puVar17") (, ",") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "ppppcVar10 = (code ****)0x7343414c;" (assignment_expression "ppppcVar10 = (code ****)0x7343414c" (identifier "ppppcVar10") (= "=") (cast_expression "(code ****)0x7343414c" (( "(") (type_descriptor "code ****" (type_identifier "code") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x7343414c"))) (; ";")) (expression_statement "ppppppcVar14 = ppppppcVar34;" (assignment_expression "ppppppcVar14 = ppppppcVar34" (identifier "ppppppcVar14") (= "=") (identifier "ppppppcVar34")) (; ";")) (expression_statement "puVar6 = puVar18;" (assignment_expression "puVar6 = puVar18" (identifier "puVar6") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "FUN_00039d28(piVar5,0x7343414c);" (call_expression "FUN_00039d28(piVar5,0x7343414c)" (identifier "FUN_00039d28") (argument_list "(piVar5,0x7343414c)" (( "(") (identifier "piVar5") (, ",") (number_literal "0x7343414c") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }" (else "else") (compound_statement "{\n    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;\n    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);\n  }" ({ "{") (expression_statement "ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;" (assignment_expression "ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8" (identifier "ppppcVar10") (= "=") (binary_expression "pppppcStack_ac8[-0x1ff5] + 0x9b8" (subscript_expression "pppppcStack_ac8[-0x1ff5]" (identifier "pppppcStack_ac8") ([ "[") (number_literal "-0x1ff5") (] "]")) (+ "+") (number_literal "0x9b8"))) (; ";")) (expression_statement "(*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);" (call_expression "(*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10)" (parenthesized_expression "(*(code *)pppppcStack_ac8[-0x1eec])" (( "(") (pointer_expression "*(code *)pppppcStack_ac8[-0x1eec]" (* "*") (cast_expression "(code *)pppppcStack_ac8[-0x1eec]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pppppcStack_ac8[-0x1eec]" (identifier "pppppcStack_ac8") ([ "[") (number_literal "-0x1eec") (] "]")))) () ")")) (argument_list "(piVar5,ppppcVar10)" (( "(") (identifier "piVar5") (, ",") (identifier "ppppcVar10") () ")"))) (; ";")) (} "}")))) (if_statement "if (pppcStack_a7c == *ppppcVar25) {\n    return;\n  }" (if "if") (parenthesized_expression "(pppcStack_a7c == *ppppcVar25)" (( "(") (binary_expression "pppcStack_a7c == *ppppcVar25" (identifier "pppcStack_a7c") (== "==") (pointer_expression "*ppppcVar25" (* "*") (identifier "ppppcVar25"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "ppppcVar36 = pppppcStack_ac8[-0x1edb];" (assignment_expression "ppppcVar36 = pppppcStack_ac8[-0x1edb]" (identifier "ppppcVar36") (= "=") (subscript_expression "pppppcStack_ac8[-0x1edb]" (identifier "pppppcStack_ac8") ([ "[") (number_literal "-0x1edb") (] "]"))) (; ";")) (expression_statement "pcVar32 = FUN_0003c02c;" (assignment_expression "pcVar32 = FUN_0003c02c" (identifier "pcVar32") (= "=") (identifier "FUN_0003c02c")) (; ";")) (expression_statement "(*(code *)ppppcVar36)();" (call_expression "(*(code *)ppppcVar36)()" (parenthesized_expression "(*(code *)ppppcVar36)" (( "(") (pointer_expression "*(code *)ppppcVar36" (* "*") (cast_expression "(code *)ppppcVar36" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppcVar36"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppppcStack_b08 = ppppcVar36 + 0x7bf1;" (assignment_expression "ppppcStack_b08 = ppppcVar36 + 0x7bf1" (identifier "ppppcStack_b08") (= "=") (binary_expression "ppppcVar36 + 0x7bf1" (identifier "ppppcVar36") (+ "+") (number_literal "0x7bf1"))) (; ";")) (expression_statement "pppcVar21 = ppppcVar36[0x5d24];" (assignment_expression "pppcVar21 = ppppcVar36[0x5d24]" (identifier "pppcVar21") (= "=") (subscript_expression "ppppcVar36[0x5d24]" (identifier "ppppcVar36") ([ "[") (number_literal "0x5d24") (] "]"))) (; ";")) (expression_statement "ppcStack_af4 = *pppcVar21;" (assignment_expression "ppcStack_af4 = *pppcVar21" (identifier "ppcStack_af4") (= "=") (pointer_expression "*pppcVar21" (* "*") (identifier "pppcVar21"))) (; ";")) (expression_statement "pppcVar37 = ppppcVar36[0x5ced];" (assignment_expression "pppcVar37 = ppppcVar36[0x5ced]" (identifier "pppcVar37") (= "=") (subscript_expression "ppppcVar36[0x5ced]" (identifier "ppppcVar36") ([ "[") (number_literal "0x5ced") (] "]"))) (; ";")) (expression_statement "puStack_af0 = puVar18;" (assignment_expression "puStack_af0 = puVar18" (identifier "puStack_af0") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "ppppppcStack_aec = ppppppcVar34;" (assignment_expression "ppppppcStack_aec = ppppppcVar34" (identifier "ppppppcStack_aec") (= "=") (identifier "ppppppcVar34")) (; ";")) (expression_statement "ppppcStack_ae8 = ppppcVar25;" (assignment_expression "ppppcStack_ae8 = ppppcVar25" (identifier "ppppcStack_ae8") (= "=") (identifier "ppppcVar25")) (; ";")) (expression_statement "puStack_ae4 = puVar17;" (assignment_expression "puStack_ae4 = puVar17" (identifier "puStack_ae4") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "iStack_ae0 = iVar1;" (assignment_expression "iStack_ae0 = iVar1" (identifier "iStack_ae0") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "pcStack_adc = pcVar32;" (assignment_expression "pcStack_adc = pcVar32" (identifier "pcStack_adc") (= "=") (identifier "pcVar32")) (; ";")) (if_statement "if (1 < (int)puVar6) {\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }" (if "if") (parenthesized_expression "(1 < (int)puVar6)" (( "(") (binary_expression "1 < (int)puVar6" (number_literal "1") (< "<") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")")) (compound_statement "{\n    (*(code *)ppppcVar36[0x5d05])();\n    pppcVar37 = ppppcStack_b08[-0x1f04];\n  }" ({ "{") (expression_statement "(*(code *)ppppcVar36[0x5d05])();" (call_expression "(*(code *)ppppcVar36[0x5d05])()" (parenthesized_expression "(*(code *)ppppcVar36[0x5d05])" (( "(") (pointer_expression "*(code *)ppppcVar36[0x5d05]" (* "*") (cast_expression "(code *)ppppcVar36[0x5d05]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppcVar36[0x5d05]" (identifier "ppppcVar36") ([ "[") (number_literal "0x5d05") (] "]")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppcVar37 = ppppcStack_b08[-0x1f04];" (assignment_expression "pppcVar37 = ppppcStack_b08[-0x1f04]" (identifier "pppcVar37") (= "=") (subscript_expression "ppppcStack_b08[-0x1f04]" (identifier "ppppcStack_b08") ([ "[") (number_literal "-0x1f04") (] "]"))) (; ";")) (} "}"))) (expression_statement "(*(code *)pppcVar37)(&iStack_b00,ppppcVar10);" (call_expression "(*(code *)pppcVar37)(&iStack_b00,ppppcVar10)" (parenthesized_expression "(*(code *)pppcVar37)" (( "(") (pointer_expression "*(code *)pppcVar37" (* "*") (cast_expression "(code *)pppcVar37" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppcVar37"))) () ")")) (argument_list "(&iStack_b00,ppppcVar10)" (( "(") (pointer_expression "&iStack_b00" (& "&") (identifier "iStack_b00")) (, ",") (identifier "ppppcVar10") () ")"))) (; ";")) (expression_statement "(*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);" (call_expression "(*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14)" (parenthesized_expression "(*(code *)ppppcStack_b08[-0x1f04])" (( "(") (pointer_expression "*(code *)ppppcStack_b08[-0x1f04]" (* "*") (cast_expression "(code *)ppppcStack_b08[-0x1f04]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "ppppcStack_b08[-0x1f04]" (identifier "ppppcStack_b08") ([ "[") (number_literal "-0x1f04") (] "]")))) () ")")) (argument_list "(auStack_afc,ppppppcVar14)" (( "(") (identifier "auStack_afc") (, ",") (identifier "ppppppcVar14") () ")"))) (; ";")) (expression_statement "piVar11 = (int *)&DAT_70485973;" (assignment_expression "piVar11 = (int *)&DAT_70485973" (identifier "piVar11") (= "=") (cast_expression "(int *)&DAT_70485973" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_70485973" (& "&") (identifier "DAT_70485973")))) (; ";")) (expression_statement "uStack_af8 = SUB41(puVar6,0);" (assignment_expression "uStack_af8 = SUB41(puVar6,0)" (identifier "uStack_af8") (= "=") (call_expression "SUB41(puVar6,0)" (identifier "SUB41") (argument_list "(puVar6,0)" (( "(") (identifier "puVar6") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "piVar27 = piVar31;" (assignment_expression "piVar27 = piVar31" (identifier "piVar27") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "piVar15 = &iStack_b00;" (assignment_expression "piVar15 = &iStack_b00" (identifier "piVar15") (= "=") (pointer_expression "&iStack_b00" (& "&") (identifier "iStack_b00"))) (; ";")) (expression_statement "FUN_00039d28();" (call_expression "FUN_00039d28()" (identifier "FUN_00039d28") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (ppcStack_af4 == *pppcVar21) {\n    return;\n  }" (if "if") (parenthesized_expression "(ppcStack_af4 == *pppcVar21)" (( "(") (binary_expression "ppcStack_af4 == *pppcVar21" (identifier "ppcStack_af4") (== "==") (pointer_expression "*pppcVar21" (* "*") (identifier "pppcVar21"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pppcVar37 = ppppcStack_b08[-0x1edb];" (assignment_expression "pppcVar37 = ppppcStack_b08[-0x1edb]" (identifier "pppcVar37") (= "=") (subscript_expression "ppppcStack_b08[-0x1edb]" (identifier "ppppcStack_b08") ([ "[") (number_literal "-0x1edb") (] "]"))) (; ";")) (expression_statement "pcVar32 = FUN_0003c120;" (assignment_expression "pcVar32 = FUN_0003c120" (identifier "pcVar32") (= "=") (identifier "FUN_0003c120")) (; ";")) (expression_statement "(*(code *)pppcVar37)();" (call_expression "(*(code *)pppcVar37)()" (parenthesized_expression "(*(code *)pppcVar37)" (( "(") (pointer_expression "*(code *)pppcVar37" (* "*") (cast_expression "(code *)pppcVar37" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppcVar37"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppcStack_b48 = pppcVar37 + 0x7bb4;" (assignment_expression "pppcStack_b48 = pppcVar37 + 0x7bb4" (identifier "pppcStack_b48") (= "=") (binary_expression "pppcVar37 + 0x7bb4" (identifier "pppcVar37") (+ "+") (number_literal "0x7bb4"))) (; ";")) (expression_statement "ppcVar22 = pppcVar37[0x5ce7];" (assignment_expression "ppcVar22 = pppcVar37[0x5ce7]" (identifier "ppcVar22") (= "=") (subscript_expression "pppcVar37[0x5ce7]" (identifier "pppcVar37") ([ "[") (number_literal "0x5ce7") (] "]"))) (; ";")) (expression_statement "pcStack_b34 = *ppcVar22;" (assignment_expression "pcStack_b34 = *ppcVar22" (identifier "pcStack_b34") (= "=") (pointer_expression "*ppcVar22" (* "*") (identifier "ppcVar22"))) (; ";")) (expression_statement "piVar19 = &iStack_b00;" (assignment_expression "piVar19 = &iStack_b00" (identifier "piVar19") (= "=") (pointer_expression "&iStack_b00" (& "&") (identifier "iStack_b00"))) (; ";")) (expression_statement "piVar7 = piVar27;" (assignment_expression "piVar7 = piVar27" (identifier "piVar7") (= "=") (identifier "piVar27")) (; ";")) (expression_statement "piStack_b2c = &iStack_b00;" (assignment_expression "piStack_b2c = &iStack_b00" (identifier "piStack_b2c") (= "=") (pointer_expression "&iStack_b00" (& "&") (identifier "iStack_b00"))) (; ";")) (expression_statement "pppcStack_b28 = pppcVar21;" (assignment_expression "pppcStack_b28 = pppcVar21" (identifier "pppcStack_b28") (= "=") (identifier "pppcVar21")) (; ";")) (expression_statement "puStack_b24 = puVar6;" (assignment_expression "puStack_b24 = puVar6" (identifier "puStack_b24") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "piStack_b20 = piVar31;" (assignment_expression "piStack_b20 = piVar31" (identifier "piStack_b20") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "pcStack_b1c = pcVar32;" (assignment_expression "pcStack_b1c = pcVar32" (identifier "pcStack_b1c") (= "=") (identifier "pcVar32")) (; ";")) (if_statement "if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }\n  else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }" (if "if") (parenthesized_expression "((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d))" (( "(") (binary_expression "(((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)" (parenthesized_expression "(((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18))" (( "(") (binary_expression "((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))\n      && (*(byte *)(piVar11 + 1) < 0x18)" (parenthesized_expression "((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))" (( "(") (binary_expression "(*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f)" (parenthesized_expression "(*(byte *)((int)piVar11 + 2) - 1 < 0xc)" (( "(") (binary_expression "*(byte *)((int)piVar11 + 2) - 1 < 0xc" (binary_expression "*(byte *)((int)piVar11 + 2) - 1" (pointer_expression "*(byte *)((int)piVar11 + 2)" (* "*") (cast_expression "(byte *)((int)piVar11 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 2)" (( "(") (binary_expression "(int)piVar11 + 2" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "2")) () ")")))) (- "-") (number_literal "1")) (< "<") (number_literal "0xc")) () ")")) (&& "&&") (parenthesized_expression "(piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f)" (( "(") (comma_expression "piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f" (assignment_expression "piVar19 = piVar11" (identifier "piVar19") (= "=") (identifier "piVar11")) (, ",") (binary_expression "(byte)*piVar11 - 1 < 0x1f" (binary_expression "(byte)*piVar11 - 1" (binary_expression "(byte)*piVar11" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (* "*") (identifier "piVar11")) (- "-") (number_literal "1")) (< "<") (number_literal "0x1f"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(byte *)(piVar11 + 1) < 0x18)" (( "(") (binary_expression "*(byte *)(piVar11 + 1) < 0x18" (pointer_expression "*(byte *)(piVar11 + 1)" (* "*") (cast_expression "(byte *)(piVar11 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11 + 1)" (( "(") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1")) () ")")))) (< "<") (number_literal "0x18")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(byte *)((int)piVar11 + 6) < 0x3d)" (( "(") (binary_expression "*(byte *)((int)piVar11 + 6) < 0x3d" (pointer_expression "*(byte *)((int)piVar11 + 6)" (* "*") (cast_expression "(byte *)((int)piVar11 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 6)" (( "(") (binary_expression "(int)piVar11 + 6" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "6")) () ")")))) (< "<") (number_literal "0x3d")) () ")"))) () ")")) (compound_statement "{\n    piVar31 = &uStack_b3c;\n    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);\n    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);\n    ppcVar12 = (code **)0x74494d45;\n    uStack_b3c._2_2_ = (undefined2)*piVar11;\n    uStack_b38 = *(undefined2 *)(piVar11 + 1);\n    piVar15 = piVar31;\n    FUN_00039d28();\n  }" ({ "{") (expression_statement "piVar31 = &uStack_b3c;" (assignment_expression "piVar31 = &uStack_b3c" (identifier "piVar31") (= "=") (pointer_expression "&uStack_b3c" (& "&") (identifier "uStack_b3c"))) (; ";")) (expression_statement "(*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);" (call_expression "(*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11)" (parenthesized_expression "(*(code *)pppcVar37[0x5c80])" (( "(") (pointer_expression "*(code *)pppcVar37[0x5c80]" (* "*") (cast_expression "(code *)pppcVar37[0x5c80]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pppcVar37[0x5c80]" (identifier "pppcVar37") ([ "[") (number_literal "0x5c80") (] "]")))) () ")")) (argument_list "(piVar31,*(undefined2 *)piVar11)" (( "(") (identifier "piVar31") (, ",") (pointer_expression "*(undefined2 *)piVar11" (* "*") (cast_expression "(undefined2 *)piVar11" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar11"))) () ")"))) (; ";")) (expression_statement "uStack_b36 = *(undefined1 *)((int)piVar11 + 6);" (assignment_expression "uStack_b36 = *(undefined1 *)((int)piVar11 + 6)" (identifier "uStack_b36") (= "=") (pointer_expression "*(undefined1 *)((int)piVar11 + 6)" (* "*") (cast_expression "(undefined1 *)((int)piVar11 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + 6)" (( "(") (binary_expression "(int)piVar11 + 6" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "ppcVar12 = (code **)0x74494d45;" (assignment_expression "ppcVar12 = (code **)0x74494d45" (identifier "ppcVar12") (= "=") (cast_expression "(code **)0x74494d45" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x74494d45"))) (; ";")) (expression_statement "uStack_b3c._2_2_ = (undefined2)*piVar11;" (assignment_expression "uStack_b3c._2_2_ = (undefined2)*piVar11" (field_expression "uStack_b3c._2_2_" (identifier "uStack_b3c") (. ".") (field_identifier "_2_2_")) (= "=") (binary_expression "(undefined2)*piVar11" (parenthesized_expression "(undefined2)" (( "(") (identifier "undefined2") () ")")) (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "uStack_b38 = *(undefined2 *)(piVar11 + 1);" (assignment_expression "uStack_b38 = *(undefined2 *)(piVar11 + 1)" (identifier "uStack_b38") (= "=") (pointer_expression "*(undefined2 *)(piVar11 + 1)" (* "*") (cast_expression "(undefined2 *)(piVar11 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar11 + 1)" (( "(") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "piVar15 = piVar31;" (assignment_expression "piVar15 = piVar31" (identifier "piVar15") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "FUN_00039d28();" (call_expression "FUN_00039d28()" (identifier "FUN_00039d28") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }" (else "else") (compound_statement "{\n    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;\n    (*(code *)pppcVar37[0x5cc8])();\n    piVar11 = piVar19;\n  }" ({ "{") (expression_statement "ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;" (assignment_expression "ppcVar12 = pppcVar37[0x5bbf] + 0x9cb" (identifier "ppcVar12") (= "=") (binary_expression "pppcVar37[0x5bbf] + 0x9cb" (subscript_expression "pppcVar37[0x5bbf]" (identifier "pppcVar37") ([ "[") (number_literal "0x5bbf") (] "]")) (+ "+") (number_literal "0x9cb"))) (; ";")) (expression_statement "(*(code *)pppcVar37[0x5cc8])();" (call_expression "(*(code *)pppcVar37[0x5cc8])()" (parenthesized_expression "(*(code *)pppcVar37[0x5cc8])" (( "(") (pointer_expression "*(code *)pppcVar37[0x5cc8]" (* "*") (cast_expression "(code *)pppcVar37[0x5cc8]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pppcVar37[0x5cc8]" (identifier "pppcVar37") ([ "[") (number_literal "0x5cc8") (] "]")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar11 = piVar19;" (assignment_expression "piVar11 = piVar19" (identifier "piVar11") (= "=") (identifier "piVar19")) (; ";")) (} "}")))) (if_statement "if (pcStack_b34 == *ppcVar22) {\n    return;\n  }" (if "if") (parenthesized_expression "(pcStack_b34 == *ppcVar22)" (( "(") (binary_expression "pcStack_b34 == *ppcVar22" (identifier "pcStack_b34") (== "==") (pointer_expression "*ppcVar22" (* "*") (identifier "ppcVar22"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "ppcVar38 = pppcStack_b48[-0x1edb];" (assignment_expression "ppcVar38 = pppcStack_b48[-0x1edb]" (identifier "ppcVar38") (= "=") (subscript_expression "pppcStack_b48[-0x1edb]" (identifier "pppcStack_b48") ([ "[") (number_literal "-0x1edb") (] "]"))) (; ";")) (expression_statement "pcVar42 = FUN_0003c240;" (assignment_expression "pcVar42 = FUN_0003c240" (identifier "pcVar42") (= "=") (identifier "FUN_0003c240")) (; ";")) (expression_statement "(*(code *)ppcVar38)();" (call_expression "(*(code *)ppcVar38)()" (parenthesized_expression "(*(code *)ppcVar38)" (( "(") (pointer_expression "*(code *)ppcVar38" (* "*") (cast_expression "(code *)ppcVar38" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppcVar38"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppcStack_b88 = ppcVar38 + 0x7b6c;" (assignment_expression "ppcStack_b88 = ppcVar38 + 0x7b6c" (identifier "ppcStack_b88") (= "=") (binary_expression "ppcVar38 + 0x7b6c" (identifier "ppcVar38") (+ "+") (number_literal "0x7b6c"))) (; ";")) (expression_statement "pcVar32 = ppcVar38[0x5c9f];" (assignment_expression "pcVar32 = ppcVar38[0x5c9f]" (identifier "pcVar32") (= "=") (subscript_expression "ppcVar38[0x5c9f]" (identifier "ppcVar38") ([ "[") (number_literal "0x5c9f") (] "]"))) (; ";")) (expression_statement "piVar7[0xc9] = (int)ppcVar12;" (assignment_expression "piVar7[0xc9] = (int)ppcVar12" (subscript_expression "piVar7[0xc9]" (identifier "piVar7") ([ "[") (number_literal "0xc9") (] "]")) (= "=") (cast_expression "(int)ppcVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar12"))) (; ";")) (expression_statement "iStack_b74 = *(int *)pcVar32;" (assignment_expression "iStack_b74 = *(int *)pcVar32" (identifier "iStack_b74") (= "=") (pointer_expression "*(int *)pcVar32" (* "*") (cast_expression "(int *)pcVar32" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar32")))) (; ";")) (expression_statement "piStack_b6c = piVar11;" (assignment_expression "piStack_b6c = piVar11" (identifier "piStack_b6c") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "ppcStack_b68 = ppcVar22;" (assignment_expression "ppcStack_b68 = ppcVar22" (identifier "ppcStack_b68") (= "=") (identifier "ppcVar22")) (; ";")) (expression_statement "piStack_b64 = piVar27;" (assignment_expression "piStack_b64 = piVar27" (identifier "piStack_b64") (= "=") (identifier "piVar27")) (; ";")) (expression_statement "piStack_b60 = piVar31;" (assignment_expression "piStack_b60 = piVar31" (identifier "piStack_b60") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "pcStack_b5c = pcVar42;" (assignment_expression "pcStack_b5c = pcVar42" (identifier "pcStack_b5c") (= "=") (identifier "pcVar42")) (; ";")) (expression_statement "(*ppcVar38[0x5c68])(auStack_b7c);" (call_expression "(*ppcVar38[0x5c68])(auStack_b7c)" (parenthesized_expression "(*ppcVar38[0x5c68])" (( "(") (pointer_expression "*ppcVar38[0x5c68]" (* "*") (subscript_expression "ppcVar38[0x5c68]" (identifier "ppcVar38") ([ "[") (number_literal "0x5c68") (] "]"))) () ")")) (argument_list "(auStack_b7c)" (( "(") (identifier "auStack_b7c") () ")"))) (; ";")) (expression_statement "(*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);" (call_expression "(*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15)" (parenthesized_expression "(*ppcStack_b88[0xffffe0fc])" (( "(") (pointer_expression "*ppcStack_b88[0xffffe0fc]" (* "*") (subscript_expression "ppcStack_b88[0xffffe0fc]" (identifier "ppcStack_b88") ([ "[") (number_literal "0xffffe0fc") (] "]"))) () ")")) (argument_list "(auStack_b78,piVar15)" (( "(") (identifier "auStack_b78") (, ",") (identifier "piVar15") () ")"))) (; ";")) (expression_statement "iVar8 = 8;" (assignment_expression "iVar8 = 8" (identifier "iVar8") (= "=") (number_literal "8")) (; ";")) (expression_statement "iVar1 = 0x6163544c;" (assignment_expression "iVar1 = 0x6163544c" (identifier "iVar1") (= "=") (number_literal "0x6163544c")) (; ";")) (expression_statement "piVar31 = piVar7;" (assignment_expression "piVar31 = piVar7" (identifier "piVar31") (= "=") (identifier "piVar7")) (; ";")) (expression_statement "puVar17 = auStack_b7c;" (assignment_expression "puVar17 = auStack_b7c" (identifier "puVar17") (= "=") (identifier "auStack_b7c")) (; ";")) (expression_statement "FUN_00039d28();" (call_expression "FUN_00039d28()" (identifier "FUN_00039d28") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iStack_b74 == *(int *)pcVar32) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_b74 == *(int *)pcVar32)" (( "(") (binary_expression "iStack_b74 == *(int *)pcVar32" (identifier "iStack_b74") (== "==") (pointer_expression "*(int *)pcVar32" (* "*") (cast_expression "(int *)pcVar32" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar32")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar39 = ppcStack_b88[0xffffe125];" (assignment_expression "pcVar39 = ppcStack_b88[0xffffe125]" (identifier "pcVar39") (= "=") (subscript_expression "ppcStack_b88[0xffffe125]" (identifier "ppcStack_b88") ([ "[") (number_literal "0xffffe125") (] "]"))) (; ";")) (expression_statement "uVar43 = 0x3c310;" (assignment_expression "uVar43 = 0x3c310" (identifier "uVar43") (= "=") (number_literal "0x3c310")) (; ";")) (expression_statement "(*pcVar39)();" (call_expression "(*pcVar39)()" (parenthesized_expression "(*pcVar39)" (( "(") (pointer_expression "*pcVar39" (* "*") (identifier "pcVar39")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar42 = pcVar39 + 0x1ece0;" (assignment_expression "pcVar42 = pcVar39 + 0x1ece0" (identifier "pcVar42") (= "=") (binary_expression "pcVar39 + 0x1ece0" (identifier "pcVar39") (+ "+") (number_literal "0x1ece0"))) (; ";")) (expression_statement "puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);" (assignment_expression "puVar30 = *(undefined4 **)(pcVar39 + 0x171ac)" (identifier "puVar30") (= "=") (pointer_expression "*(undefined4 **)(pcVar39 + 0x171ac)" (* "*") (cast_expression "(undefined4 **)(pcVar39 + 0x171ac)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar39 + 0x171ac)" (( "(") (binary_expression "pcVar39 + 0x171ac" (identifier "pcVar39") (+ "+") (number_literal "0x171ac")) () ")"))))) (; ";")) (expression_statement "piVar27 = (int *)*puVar30;" (assignment_expression "piVar27 = (int *)*puVar30" (identifier "piVar27") (= "=") (cast_expression "(int *)*puVar30" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar30" (* "*") (identifier "puVar30")))) (; ";")) (expression_statement "uVar28 = (uint)uStack_b7e;" (assignment_expression "uVar28 = (uint)uStack_b7e" (identifier "uVar28") (= "=") (cast_expression "(uint)uStack_b7e" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_b7e"))) (; ";")) (expression_statement "pcStack_bf0 = pcVar42;" (assignment_expression "pcStack_bf0 = pcVar42" (identifier "pcStack_bf0") (= "=") (identifier "pcVar42")) (; ";")) (expression_statement "piStack_bc4 = piVar27;" (assignment_expression "piStack_bc4 = piVar27" (identifier "piStack_bc4") (= "=") (identifier "piVar27")) (; ";")) (expression_statement "puStack_bc0 = auStack_b7c;" (assignment_expression "puStack_bc0 = auStack_b7c" (identifier "puStack_bc0") (= "=") (identifier "auStack_b7c")) (; ";")) (expression_statement "piStack_bbc = piVar7;" (assignment_expression "piStack_bbc = piVar7" (identifier "piStack_bbc") (= "=") (identifier "piVar7")) (; ";")) (expression_statement "pcStack_bb8 = pcVar32;" (assignment_expression "pcStack_bb8 = pcVar32" (identifier "pcStack_bb8") (= "=") (identifier "pcVar32")) (; ";")) (expression_statement "piStack_bb4 = piVar15;" (assignment_expression "piStack_bb4 = piVar15" (identifier "piStack_bb4") (= "=") (identifier "piVar15")) (; ";")) (expression_statement "ppppppcStack_bb0 = ppppppcVar14;" (assignment_expression "ppppppcStack_bb0 = ppppppcVar14" (identifier "ppppppcStack_bb0") (= "=") (identifier "ppppppcVar14")) (; ";")) (expression_statement "piStack_bac = piVar5;" (assignment_expression "piStack_bac = piVar5" (identifier "piStack_bac") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "ppppppcStack_ba8 = ppppppcVar33;" (assignment_expression "ppppppcStack_ba8 = ppppppcVar33" (identifier "ppppppcStack_ba8") (= "=") (identifier "ppppppcVar33")) (; ";")) (expression_statement "pppppppcStack_ba4 = pppppppcVar9;" (assignment_expression "pppppppcStack_ba4 = pppppppcVar9" (identifier "pppppppcStack_ba4") (= "=") (identifier "pppppppcVar9")) (; ";")) (expression_statement "piStack_ba0 = piVar20;" (assignment_expression "piStack_ba0 = piVar20" (identifier "piStack_ba0") (= "=") (identifier "piVar20")) (; ";")) (expression_statement "uStack_b9c = uVar43;" (assignment_expression "uStack_b9c = uVar43" (identifier "uStack_b9c") (= "=") (identifier "uVar43")) (; ";")) (if_statement "if (piVar31[0xca] == 0) {\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }\n  else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(piVar31[0xca] == 0)" (( "(") (binary_expression "piVar31[0xca] == 0" (subscript_expression "piVar31[0xca]" (identifier "piVar31") ([ "[") (number_literal "0xca") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }\n    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;\n    piVar20 = piVar31;\n    (**(code **)(pcVar39 + 0x170fc))();\n  }" ({ "{") (if_statement "if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }\n    else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }" (if "if") (parenthesized_expression "(iVar8 == 0 && ppcStack_b88 == (code **)0x0)" (( "(") (binary_expression "iVar8 == 0 && ppcStack_b88 == (code **)0x0" (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) (&& "&&") (binary_expression "ppcStack_b88 == (code **)0x0" (identifier "ppcStack_b88") (== "==") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;\n    }" ({ "{") (if_statement "if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;" (if "if") (parenthesized_expression "((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17))" (( "(") (binary_expression "(piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)" (parenthesized_expression "(piVar31[0xc4] == iVar1)" (( "(") (binary_expression "piVar31[0xc4] == iVar1" (subscript_expression "piVar31[0xc4]" (identifier "piVar31") ([ "[") (number_literal "0xc4") (] "]")) (== "==") (identifier "iVar1")) () ")")) (&& "&&") (parenthesized_expression "((undefined1 *)piVar31[0xc5] == puVar17)" (( "(") (binary_expression "(undefined1 *)piVar31[0xc5] == puVar17" (cast_expression "(undefined1 *)piVar31[0xc5]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar31[0xc5]" (identifier "piVar31") ([ "[") (number_literal "0xc5") (] "]"))) (== "==") (identifier "puVar17")) () ")"))) () ")")) (goto_statement "goto LAB_0003c3a8;" (goto "goto") (statement_identifier "LAB_0003c3a8") (; ";"))) (} "}")) (else_clause "else {\n      (**(code **)(pcVar39 + 0x170fc))();\n    }" (else "else") (compound_statement "{\n      (**(code **)(pcVar39 + 0x170fc))();\n    }" ({ "{") (expression_statement "(**(code **)(pcVar39 + 0x170fc))();" (call_expression "(**(code **)(pcVar39 + 0x170fc))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x170fc))" (( "(") (pointer_expression "**(code **)(pcVar39 + 0x170fc)" (* "*") (pointer_expression "*(code **)(pcVar39 + 0x170fc)" (* "*") (cast_expression "(code **)(pcVar39 + 0x170fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar39 + 0x170fc)" (( "(") (binary_expression "pcVar39 + 0x170fc" (identifier "pcVar39") (+ "+") (number_literal "0x170fc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;" (assignment_expression "iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784" (identifier "iVar13") (= "=") (binary_expression "*(int *)(pcVar39 + 0x16d0c) + 0x2784" (pointer_expression "*(int *)(pcVar39 + 0x16d0c)" (* "*") (cast_expression "(int *)(pcVar39 + 0x16d0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar39 + 0x16d0c)" (( "(") (binary_expression "pcVar39 + 0x16d0c" (identifier "pcVar39") (+ "+") (number_literal "0x16d0c")) () ")")))) (+ "+") (number_literal "0x2784"))) (; ";")) (expression_statement "piVar20 = piVar31;" (assignment_expression "piVar20 = piVar31" (identifier "piVar20") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "(**(code **)(pcVar39 + 0x170fc))();" (call_expression "(**(code **)(pcVar39 + 0x170fc))()" (parenthesized_expression "(**(code **)(pcVar39 + 0x170fc))" (( "(") (pointer_expression "**(code **)(pcVar39 + 0x170fc)" (* "*") (pointer_expression "*(code **)(pcVar39 + 0x170fc)" (* "*") (cast_expression "(code **)(pcVar39 + 0x170fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar39 + 0x170fc)" (( "(") (binary_expression "pcVar39 + 0x170fc" (identifier "pcVar39") (+ "+") (number_literal "0x170fc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }" (else "else") (compound_statement "{\nLAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;\n    uStack_c04 = (uint)uStack_b82;\n    uStack_c00 = uVar28;\n    uStack_bfc = (uint)bStack_b79;\n    uStack_bf8 = (uint)bStack_b75;\n    uStack_be4 = (uint)uStack_b82;\n    FUN_00033984(piVar31,iVar1,puVar17,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);\n    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);\n    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);\n    iVar8 = 0x1a;\n    iVar13 = 0x6663544c;\n    bStack_bc8 = bStack_b79;\n    bStack_bc7 = bStack_b75;\n    piVar27 = &iStack_be0;\n    FUN_00039d28(piVar31);\n    piVar5 = (int *)*puVar30;\n    piVar31[0xc3] = piVar31[0xc3] + 1;\n    piVar20 = piStack_bc4;\n    piVar7 = &iStack_be0;\n    pcVar42 = pcStack_bf0;\n    if (piStack_bc4 == piVar5) {\n      return;\n    }\n  }" ({ "{") (labeled_statement "LAB_0003c3a8:\n    ppcStack_c08 = ppcStack_b88;" (statement_identifier "LAB_0003c3a8") (: ":") (expression_statement "ppcStack_c08 = ppcStack_b88;" (assignment_expression "ppcStack_c08 = ppcStack_b88" (identifier "ppcStack_c08") (= "=") (identifier "ppcStack_b88")) (; ";"))) (expression_statement "uStack_c04 = (uint)uStack_b82;" (assignment_expression "uStack_c04 = (uint)uStack_b82" (identifier "uStack_c04") (= "=") (cast_expression "(uint)uStack_b82" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_b82"))) (; ";")) (expression_statement "uStack_c00 = uVar28;" (assignment_expression "uStack_c00 = uVar28" (identifier "uStack_c00") (= "=") (identifier "uVar28")) (; ";")) (expression_statement "uStack_bfc = (uint)bStack_b79;" (assignment_expression "uStack_bfc = (uint)bStack_b79" (identifier "uStack_bfc") (= "=") (cast_expression "(uint)bStack_b79" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_b79"))) (; ";")) (expression_statement "uStack_bf8 = (uint)bStack_b75;" (assignment_expression "uStack_bf8 = (uint)bStack_b75" (identifier "uStack_bf8") (= "=") (cast_expression "(uint)bStack_b75" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_b75"))) (; ";")) (expression_statement "uStack_be4 = (uint)uStack_b82;" (assignment_expression "uStack_be4 = (uint)uStack_b82" (identifier "uStack_be4") (= "=") (cast_expression "(uint)uStack_b82" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_b82"))) (; ";")) (expression_statement "FUN_00033984(piVar31,iVar1,puVar17,iVar8);" (call_expression "FUN_00033984(piVar31,iVar1,puVar17,iVar8)" (identifier "FUN_00033984") (argument_list "(piVar31,iVar1,puVar17,iVar8)" (( "(") (identifier "piVar31") (, ",") (identifier "iVar1") (, ",") (identifier "puVar17") (, ",") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3])" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" (( "(") (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" (* "*") (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" (* "*") (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_bf0 + -0x7c10)" (( "(") (binary_expression "pcStack_bf0 + -0x7c10" (identifier "pcStack_bf0") (+ "+") (number_literal "-0x7c10")) () ")"))))) () ")")) (argument_list "(&iStack_be0,piVar31[0xc3])" (( "(") (pointer_expression "&iStack_be0" (& "&") (identifier "iStack_be0")) (, ",") (subscript_expression "piVar31[0xc3]" (identifier "piVar31") ([ "[") (number_literal "0xc3") (] "]")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" (( "(") (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" (* "*") (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" (* "*") (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_bf0 + -0x7c10)" (( "(") (binary_expression "pcStack_bf0 + -0x7c10" (identifier "pcStack_bf0") (+ "+") (number_literal "-0x7c10")) () ")"))))) () ")")) (argument_list "(auStack_bdc,iVar1)" (( "(") (identifier "auStack_bdc") (, ",") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" (( "(") (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" (* "*") (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" (* "*") (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_bf0 + -0x7c10)" (( "(") (binary_expression "pcStack_bf0 + -0x7c10" (identifier "pcStack_bf0") (+ "+") (number_literal "-0x7c10")) () ")"))))) () ")")) (argument_list "(auStack_bd8,puVar17)" (( "(") (identifier "auStack_bd8") (, ",") (identifier "puVar17") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" (( "(") (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" (* "*") (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" (* "*") (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_bf0 + -0x7c10)" (( "(") (binary_expression "pcStack_bf0 + -0x7c10" (identifier "pcStack_bf0") (+ "+") (number_literal "-0x7c10")) () ")"))))) () ")")) (argument_list "(auStack_bd4,iVar8)" (( "(") (identifier "auStack_bd4") (, ",") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);" (call_expression "(**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7c10))" (( "(") (pointer_expression "**(code **)(pcStack_bf0 + -0x7c10)" (* "*") (pointer_expression "*(code **)(pcStack_bf0 + -0x7c10)" (* "*") (cast_expression "(code **)(pcStack_bf0 + -0x7c10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_bf0 + -0x7c10)" (( "(") (binary_expression "pcStack_bf0 + -0x7c10" (identifier "pcStack_bf0") (+ "+") (number_literal "-0x7c10")) () ")"))))) () ")")) (argument_list "(auStack_bd0,ppcStack_b88)" (( "(") (identifier "auStack_bd0") (, ",") (identifier "ppcStack_b88") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);" (call_expression "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7cd0))" (( "(") (pointer_expression "**(code **)(pcStack_bf0 + -0x7cd0)" (* "*") (pointer_expression "*(code **)(pcStack_bf0 + -0x7cd0)" (* "*") (cast_expression "(code **)(pcStack_bf0 + -0x7cd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_bf0 + -0x7cd0)" (( "(") (binary_expression "pcStack_bf0 + -0x7cd0" (identifier "pcStack_bf0") (+ "+") (number_literal "-0x7cd0")) () ")"))))) () ")")) (argument_list "(auStack_bcc,uStack_be4)" (( "(") (identifier "auStack_bcc") (, ",") (identifier "uStack_be4") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);" (call_expression "(**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28)" (parenthesized_expression "(**(code **)(pcStack_bf0 + -0x7cd0))" (( "(") (pointer_expression "**(code **)(pcStack_bf0 + -0x7cd0)" (* "*") (pointer_expression "*(code **)(pcStack_bf0 + -0x7cd0)" (* "*") (cast_expression "(code **)(pcStack_bf0 + -0x7cd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_bf0 + -0x7cd0)" (( "(") (binary_expression "pcStack_bf0 + -0x7cd0" (identifier "pcStack_bf0") (+ "+") (number_literal "-0x7cd0")) () ")"))))) () ")")) (argument_list "(auStack_bca,uVar28)" (( "(") (identifier "auStack_bca") (, ",") (identifier "uVar28") () ")"))) (; ";")) (expression_statement "iVar8 = 0x1a;" (assignment_expression "iVar8 = 0x1a" (identifier "iVar8") (= "=") (number_literal "0x1a")) (; ";")) (expression_statement "iVar13 = 0x6663544c;" (assignment_expression "iVar13 = 0x6663544c" (identifier "iVar13") (= "=") (number_literal "0x6663544c")) (; ";")) (expression_statement "bStack_bc8 = bStack_b79;" (assignment_expression "bStack_bc8 = bStack_b79" (identifier "bStack_bc8") (= "=") (identifier "bStack_b79")) (; ";")) (expression_statement "bStack_bc7 = bStack_b75;" (assignment_expression "bStack_bc7 = bStack_b75" (identifier "bStack_bc7") (= "=") (identifier "bStack_b75")) (; ";")) (expression_statement "piVar27 = &iStack_be0;" (assignment_expression "piVar27 = &iStack_be0" (identifier "piVar27") (= "=") (pointer_expression "&iStack_be0" (& "&") (identifier "iStack_be0"))) (; ";")) (expression_statement "FUN_00039d28(piVar31);" (call_expression "FUN_00039d28(piVar31)" (identifier "FUN_00039d28") (argument_list "(piVar31)" (( "(") (identifier "piVar31") () ")"))) (; ";")) (expression_statement "piVar5 = (int *)*puVar30;" (assignment_expression "piVar5 = (int *)*puVar30" (identifier "piVar5") (= "=") (cast_expression "(int *)*puVar30" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar30" (* "*") (identifier "puVar30")))) (; ";")) (expression_statement "piVar31[0xc3] = piVar31[0xc3] + 1;" (assignment_expression "piVar31[0xc3] = piVar31[0xc3] + 1" (subscript_expression "piVar31[0xc3]" (identifier "piVar31") ([ "[") (number_literal "0xc3") (] "]")) (= "=") (binary_expression "piVar31[0xc3] + 1" (subscript_expression "piVar31[0xc3]" (identifier "piVar31") ([ "[") (number_literal "0xc3") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar20 = piStack_bc4;" (assignment_expression "piVar20 = piStack_bc4" (identifier "piVar20") (= "=") (identifier "piStack_bc4")) (; ";")) (expression_statement "piVar7 = &iStack_be0;" (assignment_expression "piVar7 = &iStack_be0" (identifier "piVar7") (= "=") (pointer_expression "&iStack_be0" (& "&") (identifier "iStack_be0"))) (; ";")) (expression_statement "pcVar42 = pcStack_bf0;" (assignment_expression "pcVar42 = pcStack_bf0" (identifier "pcVar42") (= "=") (identifier "pcStack_bf0")) (; ";")) (if_statement "if (piStack_bc4 == piVar5) {\n      return;\n    }" (if "if") (parenthesized_expression "(piStack_bc4 == piVar5)" (( "(") (binary_expression "piStack_bc4 == piVar5" (identifier "piStack_bc4") (== "==") (identifier "piVar5")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar32 = *(code **)(pcVar42 + -0x7b6c);" (assignment_expression "pcVar32 = *(code **)(pcVar42 + -0x7b6c)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar42 + -0x7b6c)" (* "*") (cast_expression "(code **)(pcVar42 + -0x7b6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar42 + -0x7b6c)" (( "(") (binary_expression "pcVar42 + -0x7b6c" (identifier "pcVar42") (+ "+") (number_literal "-0x7b6c")) () ")"))))) (; ";")) (expression_statement "pcVar42 = FUN_0003c510;" (assignment_expression "pcVar42 = FUN_0003c510" (identifier "pcVar42") (= "=") (identifier "FUN_0003c510")) (; ";")) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar5 = *(int **)(pcVar32 + 0x16fac);" (assignment_expression "piVar5 = *(int **)(pcVar32 + 0x16fac)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(pcVar32 + 0x16fac)" (* "*") (cast_expression "(int **)(pcVar32 + 0x16fac)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16fac)" (( "(") (binary_expression "pcVar32 + 0x16fac" (identifier "pcVar32") (+ "+") (number_literal "0x16fac")) () ")"))))) (; ";")) (expression_statement "iStack_c34 = *piVar5;" (assignment_expression "iStack_c34 = *piVar5" (identifier "iStack_c34") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "piStack_c30 = piVar31;" (assignment_expression "piStack_c30 = piVar31" (identifier "piStack_c30") (= "=") (identifier "piVar31")) (; ";")) (expression_statement "piStack_c2c = piVar7;" (assignment_expression "piStack_c2c = piVar7" (identifier "piStack_c2c") (= "=") (identifier "piVar7")) (; ";")) (expression_statement "puStack_c28 = puVar17;" (assignment_expression "puStack_c28 = puVar17" (identifier "puStack_c28") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "iStack_c24 = iVar1;" (assignment_expression "iStack_c24 = iVar1" (identifier "iStack_c24") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "uStack_c20 = uVar28;" (assignment_expression "uStack_c20 = uVar28" (identifier "uStack_c20") (= "=") (identifier "uVar28")) (; ";")) (expression_statement "pcStack_c1c = pcVar42;" (assignment_expression "pcStack_c1c = pcVar42" (identifier "pcStack_c1c") (= "=") (identifier "pcVar42")) (; ";")) (if_statement "if (piVar20 != (int *)0x0) {\n    FUN_00039938();\n  }" (if "if") (parenthesized_expression "(piVar20 != (int *)0x0)" (( "(") (binary_expression "piVar20 != (int *)0x0" (identifier "piVar20") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_00039938();\n  }" ({ "{") (expression_statement "FUN_00039938();" (call_expression "FUN_00039938()" (identifier "FUN_00039938") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);" (call_expression "(**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3])" (parenthesized_expression "(**(code **)(pcVar32 + 0x16ed0))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x16ed0)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x16ed0)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16ed0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16ed0)" (( "(") (binary_expression "pcVar32 + 0x16ed0" (identifier "pcVar32") (+ "+") (number_literal "0x16ed0")) () ")"))))) () ")")) (argument_list "(auStack_c38,piVar20[0xc3])" (( "(") (identifier "auStack_c38") (, ",") (subscript_expression "piVar20[0xc3]" (identifier "piVar20") ([ "[") (number_literal "0xc3") (] "]")) () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);" (call_expression "(**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16fec))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x16fec)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x16fec)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16fec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16fec)" (( "(") (binary_expression "pcVar32 + 0x16fec" (identifier "pcVar32") (+ "+") (number_literal "0x16fec")) () ")"))))) () ")")) (argument_list "(piVar20,auStack_c38,4)" (( "(") (identifier "piVar20") (, ",") (identifier "auStack_c38") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar32 + 0x16fec))(piVar20);" (call_expression "(**(code **)(pcVar32 + 0x16fec))(piVar20)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16fec))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x16fec)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x16fec)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16fec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16fec)" (( "(") (binary_expression "pcVar32 + 0x16fec" (identifier "pcVar32") (+ "+") (number_literal "0x16fec")) () ")"))))) () ")")) (argument_list "(piVar20)" (( "(") (identifier "piVar20") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar32 + 0x16ef8))(piVar20);" (call_expression "(**(code **)(pcVar32 + 0x16ef8))(piVar20)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16ef8))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x16ef8)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x16ef8)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16ef8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16ef8)" (( "(") (binary_expression "pcVar32 + 0x16ef8" (identifier "pcVar32") (+ "+") (number_literal "0x16ef8")) () ")"))))) () ")")) (argument_list "(piVar20)" (( "(") (identifier "piVar20") () ")"))) (; ";")) (expression_statement "iVar1 = *piVar5;" (assignment_expression "iVar1 = *piVar5" (identifier "iVar1") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "piVar20[0xc3] = piVar20[0xc3] + 1;" (assignment_expression "piVar20[0xc3] = piVar20[0xc3] + 1" (subscript_expression "piVar20[0xc3]" (identifier "piVar20") ([ "[") (number_literal "0xc3") (] "]")) (= "=") (binary_expression "piVar20[0xc3] + 1" (subscript_expression "piVar20[0xc3]" (identifier "piVar20") ([ "[") (number_literal "0xc3") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iStack_c34 == iVar1) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_c34 == iVar1)" (( "(") (binary_expression "iStack_c34 == iVar1" (identifier "iStack_c34") (== "==") (identifier "iVar1")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar32 = *(code **)(pcVar32 + 0x16f74);" (assignment_expression "pcVar32 = *(code **)(pcVar32 + 0x16f74)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x16f74)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16f74)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16f74)" (( "(") (binary_expression "pcVar32 + 0x16f74" (identifier "pcVar32") (+ "+") (number_literal "0x16f74")) () ")"))))) (; ";")) (expression_statement "iVar1 = iStack_c34;" (assignment_expression "iVar1 = iStack_c34" (identifier "iVar1") (= "=") (identifier "iStack_c34")) (; ";")) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x130) == 0x49444154)" (( "(") (binary_expression "*(int *)(iVar1 + 0x130) == 0x49444154" (pointer_expression "*(int *)(iVar1 + 0x130)" (* "*") (cast_expression "(int *)(iVar1 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x130)" (( "(") (binary_expression "iVar1 + 0x130" (identifier "iVar1") (+ "+") (number_literal "0x130")) () ")")))) (== "==") (number_literal "0x49444154")) () ")")) (goto_statement "goto LAB_0003c6d0;" (goto "goto") (statement_identifier "LAB_0003c6d0") (; ";"))) (if_statement "if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x16c) == 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x16c) == 0" (pointer_expression "*(int *)(iVar1 + 0x16c)" (* "*") (cast_expression "(int *)(iVar1 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x16c)" (( "(") (binary_expression "iVar1 + 0x16c" (identifier "iVar1") (+ "+") (number_literal "0x16c")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c8fc;" (goto "goto") (statement_identifier "LAB_0003c8fc") (; ";"))) (expression_statement "FUN_00039dec();" (call_expression "FUN_00039dec()" (identifier "FUN_00039dec") (argument_list "()" (( "(") () ")"))) (; ";")) (while_statement "while( true ) {\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    uVar43 = FUN_00039150(iVar1);\n    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);\n    if (iVar3 != 0) break;\n    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);\n    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;\nLAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;\n    do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);\n    if (iVar8 != 4) {\n      return;\n    }\n    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);\nLAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();\n    *(undefined4 **)(iVar1 + 0x16c) = puVar30;\n    *puVar30 = 0;\n  }" ({ "{") (expression_statement "uVar43 = FUN_00039150(iVar1);" (assignment_expression "uVar43 = FUN_00039150(iVar1)" (identifier "uVar43") (= "=") (call_expression "FUN_00039150(iVar1)" (identifier "FUN_00039150") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);" (assignment_expression "iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43)" (identifier "iVar3") (= "=") (call_expression "FUN_000392b8(iVar1,0x49444154,uVar43)" (identifier "FUN_000392b8") (argument_list "(iVar1,0x49444154,uVar43)" (( "(") (identifier "iVar1") (, ",") (number_literal "0x49444154") (, ",") (identifier "uVar43") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) break;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);" (assignment_expression "*(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170)" (pointer_expression "*(undefined4 *)(iVar1 + 0x144)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x144)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x144)" (( "(") (binary_expression "iVar1 + 0x144" (identifier "iVar1") (+ "+") (number_literal "0x144")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x170)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x170)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x170)" (( "(") (binary_expression "iVar1 + 0x170" (identifier "iVar1") (+ "+") (number_literal "0x170")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;" (assignment_expression "*(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x140)" (* "*") (cast_expression "(int *)(iVar1 + 0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x140)" (( "(") (binary_expression "iVar1 + 0x140" (identifier "iVar1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "*(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x16c)" (* "*") (cast_expression "(int *)(iVar1 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x16c)" (( "(") (binary_expression "iVar1 + 0x16c" (identifier "iVar1") (+ "+") (number_literal "0x16c")) () ")")))) (+ "+") (number_literal "4"))) (; ";")) (labeled_statement "LAB_0003c6d0:\n    *(int *)(iVar1 + 0x134) = iVar13;" (statement_identifier "LAB_0003c6d0") (: ":") (expression_statement "*(int *)(iVar1 + 0x134) = iVar13;" (assignment_expression "*(int *)(iVar1 + 0x134) = iVar13" (pointer_expression "*(int *)(iVar1 + 0x134)" (* "*") (cast_expression "(int *)(iVar1 + 0x134)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x134)" (( "(") (binary_expression "iVar1 + 0x134" (identifier "iVar1") (+ "+") (number_literal "0x134")) () ")")))) (= "=") (identifier "iVar13")) (; ";"))) (do_statement "do {\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    } while (piVar27 != (int *)0x0);" (do "do") (compound_statement "{\n      pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);\n    }" ({ "{") (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16e48);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16e48)" (identifier "pcVar42") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x16e48)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16e48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16e48)" (( "(") (binary_expression "pcVar32 + 0x16e48" (identifier "pcVar32") (+ "+") (number_literal "0x16e48")) () ")"))))) (; ";")) (do_statement "do {\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      } while (iVar8 != 0);" (do "do") (compound_statement "{\n        *(int **)(iVar1 + 0x138) = piVar27;\n        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);\n        piVar27 = *(int **)(iVar1 + 0x138);\n        *(undefined4 *)(iVar1 + 0x138) = 0;\n        if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }\n        iVar41 = *(int *)(iVar1 + 0x170);\n        iVar3 = *(int *)(iVar1 + 0x16c) + 4;\n        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }\n        if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }\n        *(int *)(iVar1 + 0x140) = iVar3;\n        *(int *)(iVar1 + 0x144) = iVar41;\n        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;\n        if (iVar13 != 0) goto LAB_0003c7d4;\n        pcVar42 = *(code **)(pcVar32 + 0x16e48);\n      }" ({ "{") (expression_statement "*(int **)(iVar1 + 0x138) = piVar27;" (assignment_expression "*(int **)(iVar1 + 0x138) = piVar27" (pointer_expression "*(int **)(iVar1 + 0x138)" (* "*") (cast_expression "(int **)(iVar1 + 0x138)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x138)" (( "(") (binary_expression "iVar1 + 0x138" (identifier "iVar1") (+ "+") (number_literal "0x138")) () ")")))) (= "=") (identifier "piVar27")) (; ";")) (expression_statement "iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);" (assignment_expression "iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8)" (identifier "iVar13") (= "=") (call_expression "(*pcVar42)(iVar1 + 0x134,iVar8)" (parenthesized_expression "(*pcVar42)" (( "(") (pointer_expression "*pcVar42" (* "*") (identifier "pcVar42")) () ")")) (argument_list "(iVar1 + 0x134,iVar8)" (( "(") (binary_expression "iVar1 + 0x134" (identifier "iVar1") (+ "+") (number_literal "0x134")) (, ",") (identifier "iVar8") () ")")))) (; ";")) (expression_statement "piVar27 = *(int **)(iVar1 + 0x138);" (assignment_expression "piVar27 = *(int **)(iVar1 + 0x138)" (identifier "piVar27") (= "=") (pointer_expression "*(int **)(iVar1 + 0x138)" (* "*") (cast_expression "(int **)(iVar1 + 0x138)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x138)" (( "(") (binary_expression "iVar1 + 0x138" (identifier "iVar1") (+ "+") (number_literal "0x138")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x138) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x138) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x138)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x138)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x138)" (( "(") (binary_expression "iVar1 + 0x138" (identifier "iVar1") (+ "+") (number_literal "0x138")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(iVar1 + 0x144) != 0) {\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x144) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x144) != 0" (pointer_expression "*(int *)(iVar1 + 0x144)" (* "*") (cast_expression "(int *)(iVar1 + 0x144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x144)" (( "(") (binary_expression "iVar1 + 0x144" (identifier "iVar1") (+ "+") (number_literal "0x144")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }\n          break;\n        }" ({ "{") (if_statement "if (iVar13 != 0) {\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;\n            pcVar42 = *(code **)(pcVar32 + 0x16bc8);\n            if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }\n            goto LAB_0003c948;\n          }" ({ "{") (labeled_statement "LAB_0003c7d4:\n            if (iVar13 != 1) goto LAB_0003c944;" (statement_identifier "LAB_0003c7d4") (: ":") (if_statement "if (iVar13 != 1) goto LAB_0003c944;" (if "if") (parenthesized_expression "(iVar13 != 1)" (( "(") (binary_expression "iVar13 != 1" (identifier "iVar13") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_0003c944;" (goto "goto") (statement_identifier "LAB_0003c944") (; ";")))) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16bc8);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16bc8)" (identifier "pcVar42") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x16bc8)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16bc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16bc8)" (( "(") (binary_expression "pcVar32 + 0x16bc8" (identifier "pcVar32") (+ "+") (number_literal "0x16bc8")) () ")"))))) (; ";")) (if_statement "if (iVar8 == 4) {\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }" (if "if") (parenthesized_expression "(iVar8 == 4)" (( "(") (binary_expression "iVar8 == 4" (identifier "iVar8") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n              iVar13 = *(int *)(iVar1 + 0x16c) + 4;\n              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);\n              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }\n              if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              *(undefined4 *)(iVar1 + 0x144) = 0;\n              *(undefined4 *)(iVar1 + 0x140) = 0;\n              *(undefined4 *)(iVar1 + 0x130) = 0;\n              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;\n              return;\n            }" ({ "{") (expression_statement "iVar13 = *(int *)(iVar1 + 0x16c) + 4;" (assignment_expression "iVar13 = *(int *)(iVar1 + 0x16c) + 4" (identifier "iVar13") (= "=") (binary_expression "*(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x16c)" (* "*") (cast_expression "(int *)(iVar1 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x16c)" (( "(") (binary_expression "iVar1 + 0x16c" (identifier "iVar1") (+ "+") (number_literal "0x16c")) () ")")))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144)" (identifier "iVar8") (= "=") (binary_expression "*(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144)" (pointer_expression "*(int *)(iVar1 + 0x170)" (* "*") (cast_expression "(int *)(iVar1 + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x170)" (( "(") (binary_expression "iVar1 + 0x170" (identifier "iVar1") (+ "+") (number_literal "0x170")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar1 + 0x144)" (* "*") (cast_expression "(int *)(iVar1 + 0x144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x144)" (( "(") (binary_expression "iVar1 + 0x144" (identifier "iVar1") (+ "+") (number_literal "0x144")) () ")")))))) (; ";")) (if_statement "if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n                FUN_000395ac(iVar13,uVar28);\n              }" (if "if") (parenthesized_expression "((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001))" (( "(") (binary_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" (parenthesized_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0'))" (( "(") (binary_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')" (parenthesized_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0)" (( "(") (binary_expression "(*(uint *)(iVar1 + 0x124) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x124) & 4)" (( "(") (binary_expression "*(uint *)(iVar1 + 0x124) & 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" (* "*") (cast_expression "(uint *)(iVar1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x124)" (( "(") (binary_expression "iVar1 + 0x124" (identifier "iVar1") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar1 + 0x348) == '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x348) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x348)" (* "*") (cast_expression "(char *)(iVar1 + 0x348)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x348)" (( "(") (binary_expression "iVar1 + 0x348" (identifier "iVar1") (+ "+") (number_literal "0x348")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" (( "(") (comma_expression "uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001" (assignment_expression "uVar28 = FUN_00039150(iVar1)" (identifier "uVar28") (= "=") (call_expression "FUN_00039150(iVar1)" (identifier "FUN_00039150") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (, ",") (binary_expression "uVar28 < 0x4001" (identifier "uVar28") (< "<") (number_literal "0x4001"))) () ")"))) () ")")) (compound_statement "{\n                FUN_000395ac(iVar13,uVar28);\n              }" ({ "{") (expression_statement "FUN_000395ac(iVar13,uVar28);" (call_expression "FUN_000395ac(iVar13,uVar28)" (identifier "FUN_000395ac") (argument_list "(iVar13,uVar28)" (( "(") (identifier "iVar13") (, ",") (identifier "uVar28") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar8 == 0) {\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" ({ "{") (expression_statement "uVar28 = *(uint *)(iVar1 + 0x124);" (assignment_expression "uVar28 = *(uint *)(iVar1 + 0x124)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(iVar1 + 0x124)" (* "*") (cast_expression "(uint *)(iVar1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x124)" (( "(") (binary_expression "iVar1 + 0x124" (identifier "iVar1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (} "}")) (else_clause "else if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" (else "else") (if_statement "if (*(int *)(iVar1 + 0x328) == 0) {\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }\n              else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x328) == 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x328) == 0" (pointer_expression "*(int *)(iVar1 + 0x328)" (* "*") (cast_expression "(int *)(iVar1 + 0x328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x328)" (( "(") (binary_expression "iVar1 + 0x328" (identifier "iVar1") (+ "+") (number_literal "0x328")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" ({ "{") (expression_statement "FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);" (call_expression "FUN_00039d28(iVar1,0x49444154,iVar13,iVar8)" (identifier "FUN_00039d28") (argument_list "(iVar1,0x49444154,iVar13,iVar8)" (( "(") (identifier "iVar1") (, ",") (number_literal "0x49444154") (, ",") (identifier "iVar13") (, ",") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "uVar28 = *(uint *)(iVar1 + 0x124);" (assignment_expression "uVar28 = *(uint *)(iVar1 + 0x124)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(iVar1 + 0x124)" (* "*") (cast_expression "(uint *)(iVar1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x124)" (( "(") (binary_expression "iVar1 + 0x124" (identifier "iVar1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" (else "else") (compound_statement "{\n                FUN_0003c510(iVar1,iVar13,iVar8);\n                uVar28 = *(uint *)(iVar1 + 0x124);\n              }" ({ "{") (expression_statement "FUN_0003c510(iVar1,iVar13,iVar8);" (call_expression "FUN_0003c510(iVar1,iVar13,iVar8)" (identifier "FUN_0003c510") (argument_list "(iVar1,iVar13,iVar8)" (( "(") (identifier "iVar1") (, ",") (identifier "iVar13") (, ",") (identifier "iVar8") () ")"))) (; ";")) (expression_statement "uVar28 = *(uint *)(iVar1 + 0x124);" (assignment_expression "uVar28 = *(uint *)(iVar1 + 0x124)" (identifier "uVar28") (= "=") (pointer_expression "*(uint *)(iVar1 + 0x124)" (* "*") (cast_expression "(uint *)(iVar1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x124)" (( "(") (binary_expression "iVar1 + 0x124" (identifier "iVar1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (} "}")))))) (expression_statement "*(undefined4 *)(iVar1 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x144)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x144)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x144)" (( "(") (binary_expression "iVar1 + 0x144" (identifier "iVar1") (+ "+") (number_literal "0x144")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x140) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x140) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x140)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x140)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x140)" (( "(") (binary_expression "iVar1 + 0x140" (identifier "iVar1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar1 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar1 + 0x130)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x130)" (( "(") (binary_expression "iVar1 + 0x130" (identifier "iVar1") (+ "+") (number_literal "0x130")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(iVar1 + 0x124) = uVar28 | 0xc;" (assignment_expression "*(uint *)(iVar1 + 0x124) = uVar28 | 0xc" (pointer_expression "*(uint *)(iVar1 + 0x124)" (* "*") (cast_expression "(uint *)(iVar1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x124)" (( "(") (binary_expression "iVar1 + 0x124" (identifier "iVar1") (+ "+") (number_literal "0x124")) () ")")))) (= "=") (binary_expression "uVar28 | 0xc" (identifier "uVar28") (| "|") (number_literal "0xc"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0003c948;" (goto "goto") (statement_identifier "LAB_0003c948") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar41 = *(int *)(iVar1 + 0x170);" (assignment_expression "iVar41 = *(int *)(iVar1 + 0x170)" (identifier "iVar41") (= "=") (pointer_expression "*(int *)(iVar1 + 0x170)" (* "*") (cast_expression "(int *)(iVar1 + 0x170)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x170)" (( "(") (binary_expression "iVar1 + 0x170" (identifier "iVar1") (+ "+") (number_literal "0x170")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar1 + 0x16c) + 4;" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x16c) + 4" (identifier "iVar3") (= "=") (binary_expression "*(int *)(iVar1 + 0x16c) + 4" (pointer_expression "*(int *)(iVar1 + 0x16c)" (* "*") (cast_expression "(int *)(iVar1 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x16c)" (( "(") (binary_expression "iVar1 + 0x16c" (identifier "iVar1") (+ "+") (number_literal "0x16c")) () ")")))) (+ "+") (number_literal "4"))) (; ";")) (if_statement "if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {\n          FUN_000395ac(iVar3,uVar28);\n        }" (if "if") (parenthesized_expression "((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001))" (( "(") (binary_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&\n           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" (parenthesized_expression "(((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0'))" (( "(") (binary_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')" (parenthesized_expression "((*(uint *)(iVar1 + 0x124) & 4) == 0)" (( "(") (binary_expression "(*(uint *)(iVar1 + 0x124) & 4) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 0x124) & 4)" (( "(") (binary_expression "*(uint *)(iVar1 + 0x124) & 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" (* "*") (cast_expression "(uint *)(iVar1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x124)" (( "(") (binary_expression "iVar1 + 0x124" (identifier "iVar1") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar1 + 0x348) == '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x348) == '\0'" (pointer_expression "*(char *)(iVar1 + 0x348)" (* "*") (cast_expression "(char *)(iVar1 + 0x348)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x348)" (( "(") (binary_expression "iVar1 + 0x348" (identifier "iVar1") (+ "+") (number_literal "0x348")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)" (( "(") (comma_expression "uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001" (assignment_expression "uVar28 = FUN_00039150(iVar1)" (identifier "uVar28") (= "=") (call_expression "FUN_00039150(iVar1)" (identifier "FUN_00039150") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (, ",") (binary_expression "uVar28 < 0x4001" (identifier "uVar28") (< "<") (number_literal "0x4001"))) () ")"))) () ")")) (compound_statement "{\n          FUN_000395ac(iVar3,uVar28);\n        }" ({ "{") (expression_statement "FUN_000395ac(iVar3,uVar28);" (call_expression "FUN_000395ac(iVar3,uVar28)" (identifier "FUN_000395ac") (argument_list "(iVar3,uVar28)" (( "(") (identifier "iVar3") (, ",") (identifier "uVar28") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar41 != 0) {\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }" (if "if") (parenthesized_expression "(iVar41 != 0)" (( "(") (binary_expression "iVar41 != 0" (identifier "iVar41") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }\n        }" ({ "{") (if_statement "if (*(int *)(iVar1 + 0x328) == 0) {\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }\n          else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar1 + 0x328) == 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x328) == 0" (pointer_expression "*(int *)(iVar1 + 0x328)" (* "*") (cast_expression "(int *)(iVar1 + 0x328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x328)" (( "(") (binary_expression "iVar1 + 0x328" (identifier "iVar1") (+ "+") (number_literal "0x328")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);\n          }" ({ "{") (expression_statement "FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);" (call_expression "FUN_00039d28(iVar1,0x49444154,iVar3,iVar41)" (identifier "FUN_00039d28") (argument_list "(iVar1,0x49444154,iVar3,iVar41)" (( "(") (identifier "iVar1") (, ",") (number_literal "0x49444154") (, ",") (identifier "iVar3") (, ",") (identifier "iVar41") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }" (else "else") (compound_statement "{\n            FUN_0003c510(iVar1,iVar3,iVar41);\n          }" ({ "{") (expression_statement "FUN_0003c510(iVar1,iVar3,iVar41);" (call_expression "FUN_0003c510(iVar1,iVar3,iVar41)" (identifier "FUN_0003c510") (argument_list "(iVar1,iVar3,iVar41)" (( "(") (identifier "iVar1") (, ",") (identifier "iVar3") (, ",") (identifier "iVar41") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "*(int *)(iVar1 + 0x140) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0x140) = iVar3" (pointer_expression "*(int *)(iVar1 + 0x140)" (* "*") (cast_expression "(int *)(iVar1 + 0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x140)" (( "(") (binary_expression "iVar1 + 0x140" (identifier "iVar1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(int *)(iVar1 + 0x144) = iVar41;" (assignment_expression "*(int *)(iVar1 + 0x144) = iVar41" (pointer_expression "*(int *)(iVar1 + 0x144)" (* "*") (cast_expression "(int *)(iVar1 + 0x144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x144)" (( "(") (binary_expression "iVar1 + 0x144" (identifier "iVar1") (+ "+") (number_literal "0x144")) () ")")))) (= "=") (identifier "iVar41")) (; ";")) (expression_statement "*(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;" (assignment_expression "*(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" (* "*") (cast_expression "(uint *)(iVar1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x124)" (( "(") (binary_expression "iVar1 + 0x124" (identifier "iVar1") (+ "+") (number_literal "0x124")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar1 + 0x124) | 4" (pointer_expression "*(uint *)(iVar1 + 0x124)" (* "*") (cast_expression "(uint *)(iVar1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x124)" (( "(") (binary_expression "iVar1 + 0x124" (identifier "iVar1") (+ "+") (number_literal "0x124")) () ")")))) (| "|") (number_literal "4"))) (; ";")) (if_statement "if (iVar13 != 0) goto LAB_0003c7d4;" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003c7d4;" (goto "goto") (statement_identifier "LAB_0003c7d4") (; ";"))) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16e48);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16e48)" (identifier "pcVar42") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x16e48)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16e48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16e48)" (( "(") (binary_expression "pcVar32 + 0x16e48" (identifier "pcVar32") (+ "+") (number_literal "0x16e48")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar27 != (int *)0x0)" (( "(") (binary_expression "piVar27 != (int *)0x0" (identifier "piVar27") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (if_statement "if (iVar8 != 4) {\n      return;\n    }" (if "if") (parenthesized_expression "(iVar8 != 4)" (( "(") (binary_expression "iVar8 != 4" (identifier "iVar8") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);" (call_expression "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x16dfc))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x16dfc)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x16dfc)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16dfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16dfc)" (( "(") (binary_expression "pcVar32 + 0x16dfc" (identifier "pcVar32") (+ "+") (number_literal "0x16dfc")) () ")"))))) () ")")) (argument_list "(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0)" (( "(") (identifier "iVar1") (, ",") (binary_expression "*(int *)(pcVar32 + 0x16a0c) + 0x27d0" (pointer_expression "*(int *)(pcVar32 + 0x16a0c)" (* "*") (cast_expression "(int *)(pcVar32 + 0x16a0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x16a0c)" (( "(") (binary_expression "pcVar32 + 0x16a0c" (identifier "pcVar32") (+ "+") (number_literal "0x16a0c")) () ")")))) (+ "+") (number_literal "0x27d0")) () ")"))) (; ";")) (labeled_statement "LAB_0003c8fc:\n    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();" (statement_identifier "LAB_0003c8fc") (: ":") (expression_statement "puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();" (assignment_expression "puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))()" (identifier "puVar30") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar32 + 0x16cf8))()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar32 + 0x16cf8))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x16cf8))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x16cf8)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x16cf8)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16cf8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16cf8)" (( "(") (binary_expression "pcVar32 + 0x16cf8" (identifier "pcVar32") (+ "+") (number_literal "0x16cf8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";"))) (expression_statement "*(undefined4 **)(iVar1 + 0x16c) = puVar30;" (assignment_expression "*(undefined4 **)(iVar1 + 0x16c) = puVar30" (pointer_expression "*(undefined4 **)(iVar1 + 0x16c)" (* "*") (cast_expression "(undefined4 **)(iVar1 + 0x16c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x16c)" (( "(") (binary_expression "iVar1 + 0x16c" (identifier "iVar1") (+ "+") (number_literal "0x16c")) () ")")))) (= "=") (identifier "puVar30")) (; ";")) (expression_statement "*puVar30 = 0;" (assignment_expression "*puVar30 = 0" (pointer_expression "*puVar30" (* "*") (identifier "puVar30")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));" (call_expression "(**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c))" (parenthesized_expression "(**(code **)(pcVar32 + 0x16dfc))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x16dfc)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x16dfc)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16dfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16dfc)" (( "(") (binary_expression "pcVar32 + 0x16dfc" (identifier "pcVar32") (+ "+") (number_literal "0x16dfc")) () ")"))))) () ")")) (argument_list "(iVar1,*(undefined4 *)(iVar1 + 0x14c))" (( "(") (identifier "iVar1") (, ",") (pointer_expression "*(undefined4 *)(iVar1 + 0x14c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x14c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14c)" (( "(") (binary_expression "iVar1 + 0x14c" (identifier "iVar1") (+ "+") (number_literal "0x14c")) () ")")))) () ")"))) (; ";")) (labeled_statement "LAB_0003c944:\n  pcVar42 = *(code **)(pcVar32 + 0x16bc8);" (statement_identifier "LAB_0003c944") (: ":") (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x16bc8);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x16bc8)" (identifier "pcVar42") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x16bc8)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16bc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16bc8)" (( "(") (binary_expression "pcVar32 + 0x16bc8" (identifier "pcVar32") (+ "+") (number_literal "0x16bc8")) () ")"))))) (; ";"))) (labeled_statement "LAB_0003c948:\n  (*pcVar42)(iVar1,iVar13);" (statement_identifier "LAB_0003c948") (: ":") (expression_statement "(*pcVar42)(iVar1,iVar13);" (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" (( "(") (pointer_expression "*pcVar42" (* "*") (identifier "pcVar42")) () ")")) (argument_list "(iVar1,iVar13)" (( "(") (identifier "iVar1") (, ",") (identifier "iVar13") () ")"))) (; ";"))) (expression_statement "pcVar32 = *(code **)(pcVar32 + 0x16dfc);" (assignment_expression "pcVar32 = *(code **)(pcVar32 + 0x16dfc)" (identifier "pcVar32") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x16dfc)" (* "*") (cast_expression "(code **)(pcVar32 + 0x16dfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x16dfc)" (( "(") (binary_expression "pcVar32 + 0x16dfc" (identifier "pcVar32") (+ "+") (number_literal "0x16dfc")) () ")"))))) (; ";")) (expression_statement "(*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));" (call_expression "(*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c))" (parenthesized_expression "(*pcVar32)" (( "(") (pointer_expression "*pcVar32" (* "*") (identifier "pcVar32")) () ")")) (argument_list "(iVar1,*(undefined4 *)(iVar1 + 0x14c))" (( "(") (identifier "iVar1") (, ",") (pointer_expression "*(undefined4 *)(iVar1 + 0x14c)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x14c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14c)" (( "(") (binary_expression "iVar1 + 0x14c" (identifier "iVar1") (+ "+") (number_literal "0x14c")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);" (assignment_expression "uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201)" (identifier "uVar28") (= "=") (binary_expression "(uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201)" (binary_expression "(uint)*(byte *)(iVar1 + 0x204) * (uint)" (binary_expression "(uint)*(byte *)(iVar1 + 0x204)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar1 + 0x204)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x204)" (( "(") (binary_expression "iVar1 + 0x204" (identifier "iVar1") (+ "+") (number_literal "0x204")) () ")")))) (* "*") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(iVar1 + 0x201)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x201)" (( "(") (binary_expression "iVar1 + 0x201" (identifier "iVar1") (+ "+") (number_literal "0x201")) () ")"))))) (; ";")) (if_statement "if (uVar28 < 8) {\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }\n  else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }" (if "if") (parenthesized_expression "(uVar28 < 8)" (( "(") (binary_expression "uVar28 < 8" (identifier "uVar28") (< "<") (number_literal "8")) () ")")) (compound_statement "{\n    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;\n  }" ({ "{") (expression_statement "uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;" (assignment_expression "uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3" (identifier "uVar23") (= "=") (binary_expression "*(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3" (binary_expression "*(int *)(iVar1 + 0x1b0) * uVar28 + 7" (binary_expression "*(int *)(iVar1 + 0x1b0) * uVar28" (pointer_expression "*(int *)(iVar1 + 0x1b0)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b0)" (( "(") (binary_expression "iVar1 + 0x1b0" (identifier "iVar1") (+ "+") (number_literal "0x1b0")) () ")")))) (* "*") (identifier "uVar28")) (+ "+") (number_literal "7")) (>> ">>") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }" (else "else") (compound_statement "{\n    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);\n  }" ({ "{") (expression_statement "uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);" (assignment_expression "uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0)" (identifier "uVar23") (= "=") (binary_expression "(uVar28 >> 3) * *(int *)(iVar1 + 0x1b0)" (parenthesized_expression "(uVar28 >> 3)" (( "(") (binary_expression "uVar28 >> 3" (identifier "uVar28") (>> ">>") (number_literal "3")) () ")")) (* "*") (pointer_expression "*(int *)(iVar1 + 0x1b0)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b0)" (( "(") (binary_expression "iVar1 + 0x1b0" (identifier "iVar1") (+ "+") (number_literal "0x1b0")) () ")")))))) (; ";")) (} "}")))) (expression_statement "iVar13 = uVar23 + 1;" (assignment_expression "iVar13 = uVar23 + 1" (identifier "iVar13") (= "=") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169a0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169a0)" (identifier "pcVar42") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x169a0)" (* "*") (cast_expression "(code **)(pcVar32 + 0x169a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x169a0)" (( "(") (binary_expression "pcVar32 + 0x169a0" (identifier "pcVar32") (+ "+") (number_literal "0x169a0")) () ")"))))) (; ";")) (expression_statement "*(char *)(iVar1 + 0x206) = (char)uVar28;" (assignment_expression "*(char *)(iVar1 + 0x206) = (char)uVar28" (pointer_expression "*(char *)(iVar1 + 0x206)" (* "*") (cast_expression "(char *)(iVar1 + 0x206)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x206)" (( "(") (binary_expression "iVar1 + 0x206" (identifier "iVar1") (+ "+") (number_literal "0x206")) () ")")))) (= "=") (cast_expression "(char)uVar28" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar28"))) (; ";")) (expression_statement "*(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);" (assignment_expression "*(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202)" (pointer_expression "*(undefined1 *)(iVar1 + 0x207)" (* "*") (cast_expression "(undefined1 *)(iVar1 + 0x207)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x207)" (( "(") (binary_expression "iVar1 + 0x207" (identifier "iVar1") (+ "+") (number_literal "0x207")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(iVar1 + 0x202)" (* "*") (cast_expression "(undefined1 *)(iVar1 + 0x202)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x202)" (( "(") (binary_expression "iVar1 + 0x202" (identifier "iVar1") (+ "+") (number_literal "0x202")) () ")"))))) (; ";")) (expression_statement "puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);" (assignment_expression "puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13)" (identifier "puVar17") (= "=") (cast_expression "(undefined1 *)(*pcVar42)(iVar1,iVar13)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" (( "(") (pointer_expression "*pcVar42" (* "*") (identifier "pcVar42")) () ")")) (argument_list "(iVar1,iVar13)" (( "(") (identifier "iVar1") (, ",") (identifier "iVar13") () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar1 + 0x1b4);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x1b4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar1 + 0x1b4)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b4)" (( "(") (binary_expression "iVar1 + 0x1b4" (identifier "iVar1") (+ "+") (number_literal "0x1b4")) () ")"))))) (; ";")) (expression_statement "uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);" (assignment_expression "uVar28 = (uint)*(byte *)(iVar1 + 0x1fe)" (identifier "uVar28") (= "=") (binary_expression "(uint)*(byte *)(iVar1 + 0x1fe)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar1 + 0x1fe)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1fe)" (( "(") (binary_expression "iVar1 + 0x1fe" (identifier "iVar1") (+ "+") (number_literal "0x1fe")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(iVar1 + 0x1d4) = puVar17;" (assignment_expression "*(undefined1 **)(iVar1 + 0x1d4) = puVar17" (pointer_expression "*(undefined1 **)(iVar1 + 0x1d4)" (* "*") (cast_expression "(undefined1 **)(iVar1 + 0x1d4)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar1 + 0x1d4)" (( "(") (binary_expression "iVar1 + 0x1d4" (identifier "iVar1") (+ "+") (number_literal "0x1d4")) () ")")))) (= "=") (identifier "puVar17")) (; ";")) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar8 == 1) {\n    uVar28 = uVar28 & 0x1f;\n  }" (if "if") (parenthesized_expression "(iVar8 == 1)" (( "(") (binary_expression "iVar8 == 1" (identifier "iVar8") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    uVar28 = uVar28 & 0x1f;\n  }" ({ "{") (expression_statement "uVar28 = uVar28 & 0x1f;" (assignment_expression "uVar28 = uVar28 & 0x1f" (identifier "uVar28") (= "=") (binary_expression "uVar28 & 0x1f" (identifier "uVar28") (& "&") (number_literal "0x1f"))) (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(iVar1 + 0x1b0);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x1b0)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar1 + 0x1b0)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b0)" (( "(") (binary_expression "iVar1 + 0x1b0" (identifier "iVar1") (+ "+") (number_literal "0x1b0")) () ")"))))) (; ";")) (if_statement "if (iVar3 == 1) {\n    uVar28 = uVar28 & 0x2f;\n  }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    uVar28 = uVar28 & 0x2f;\n  }" ({ "{") (expression_statement "uVar28 = uVar28 & 0x2f;" (assignment_expression "uVar28 = uVar28 & 0x2f" (identifier "uVar28") (= "=") (binary_expression "uVar28 & 0x2f" (identifier "uVar28") (& "&") (number_literal "0x2f"))) (; ";")) (} "}"))) (if_statement "if (uVar28 == 0) {\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }" (if "if") (parenthesized_expression "(uVar28 == 0)" (( "(") (binary_expression "uVar28 == 0" (identifier "uVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined1 *)(iVar1 + 0x1fe) = 8;\n    goto LAB_0003ca48;\n  }" ({ "{") (expression_statement "*(undefined1 *)(iVar1 + 0x1fe) = 8;" (assignment_expression "*(undefined1 *)(iVar1 + 0x1fe) = 8" (pointer_expression "*(undefined1 *)(iVar1 + 0x1fe)" (* "*") (cast_expression "(undefined1 *)(iVar1 + 0x1fe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1fe)" (( "(") (binary_expression "iVar1 + 0x1fe" (identifier "iVar1") (+ "+") (number_literal "0x1fe")) () ")")))) (= "=") (number_literal "8")) (; ";")) (goto_statement "goto LAB_0003ca48;" (goto "goto") (statement_identifier "LAB_0003ca48") (; ";")) (} "}"))) (expression_statement "cVar26 = (char)uVar28;" (assignment_expression "cVar26 = (char)uVar28" (identifier "cVar26") (= "=") (cast_expression "(char)uVar28" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar28"))) (; ";")) (expression_statement "*(char *)(iVar1 + 0x1fe) = cVar26;" (assignment_expression "*(char *)(iVar1 + 0x1fe) = cVar26" (pointer_expression "*(char *)(iVar1 + 0x1fe)" (* "*") (cast_expression "(char *)(iVar1 + 0x1fe)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1fe)" (( "(") (binary_expression "iVar1 + 0x1fe" (identifier "iVar1") (+ "+") (number_literal "0x1fe")) () ")")))) (= "=") (identifier "cVar26")) (; ";")) (if_statement "if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }\n  else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }" (if "if") (parenthesized_expression "(((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0))" (( "(") (binary_expression "((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)" (parenthesized_expression "((uVar28 & 0xf0) == 0)" (( "(") (binary_expression "(uVar28 & 0xf0) == 0" (parenthesized_expression "(uVar28 & 0xf0)" (( "(") (binary_expression "uVar28 & 0xf0" (identifier "uVar28") (& "&") (number_literal "0xf0")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar1 + 0x1d8) != 0)" (( "(") (binary_expression "*(int *)(iVar1 + 0x1d8) != 0" (pointer_expression "*(int *)(iVar1 + 0x1d8)" (* "*") (cast_expression "(int *)(iVar1 + 0x1d8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1d8)" (( "(") (binary_expression "iVar1 + 0x1d8" (identifier "iVar1") (+ "+") (number_literal "0x1d8")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }\n  }" ({ "{") (labeled_statement "LAB_0003ca24:\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);" (statement_identifier "LAB_0003ca24") (: ":") (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169c0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169c0)" (identifier "pcVar42") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x169c0)" (* "*") (cast_expression "(code **)(pcVar32 + 0x169c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x169c0)" (( "(") (binary_expression "pcVar32 + 0x169c0" (identifier "pcVar32") (+ "+") (number_literal "0x169c0")) () ")"))))) (; ";"))) (if_statement "if ((uVar28 & 0xe0) == 0) {\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }" (if "if") (parenthesized_expression "((uVar28 & 0xe0) == 0)" (( "(") (binary_expression "(uVar28 & 0xe0) == 0" (parenthesized_expression "(uVar28 & 0xe0)" (( "(") (binary_expression "uVar28 & 0xe0" (identifier "uVar28") (& "&") (number_literal "0xe0")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = *(int *)(iVar1 + 0x1b4);\n      iVar3 = *(int *)(iVar1 + 0x1b0);\n      goto LAB_0003ca48;\n    }" ({ "{") (expression_statement "iVar8 = *(int *)(iVar1 + 0x1b4);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x1b4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar1 + 0x1b4)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b4)" (( "(") (binary_expression "iVar1 + 0x1b4" (identifier "iVar1") (+ "+") (number_literal "0x1b4")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar1 + 0x1b0);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x1b0)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar1 + 0x1b0)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b0)" (( "(") (binary_expression "iVar1 + 0x1b0" (identifier "iVar1") (+ "+") (number_literal "0x1b0")) () ")"))))) (; ";")) (goto_statement "goto LAB_0003ca48;" (goto "goto") (statement_identifier "LAB_0003ca48") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }" (else "else") (compound_statement "{\n    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);\n    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;\n    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);\n    if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }\n    if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }\n    if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }\n    pcVar42 = *(code **)(pcVar32 + 0x169c0);\n    if (iVar8 != 0) goto LAB_0003cb08;\n  }" ({ "{") (expression_statement "uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);" (assignment_expression "uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13)" (identifier "uVar43") (= "=") (call_expression "(**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13)" (parenthesized_expression "(**(code **)(pcVar32 + 0x169a0))" (( "(") (pointer_expression "**(code **)(pcVar32 + 0x169a0)" (* "*") (pointer_expression "*(code **)(pcVar32 + 0x169a0)" (* "*") (cast_expression "(code **)(pcVar32 + 0x169a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x169a0)" (( "(") (binary_expression "pcVar32 + 0x169a0" (identifier "pcVar32") (+ "+") (number_literal "0x169a0")) () ")"))))) () ")")) (argument_list "(iVar1,iVar13)" (( "(") (identifier "iVar1") (, ",") (identifier "iVar13") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x1d8) = uVar43;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1d8) = uVar43" (pointer_expression "*(undefined4 *)(iVar1 + 0x1d8)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x1d8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1d8)" (( "(") (binary_expression "iVar1 + 0x1d8" (identifier "iVar1") (+ "+") (number_literal "0x1d8")) () ")")))) (= "=") (identifier "uVar43")) (; ";")) (expression_statement "iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);" (assignment_expression "iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f)" (identifier "iVar8") (= "=") (unary_expression "-((int)(uVar28 << 0x1b) >> 0x1f)" (- "-") (parenthesized_expression "((int)(uVar28 << 0x1b) >> 0x1f)" (( "(") (binary_expression "(int)(uVar28 << 0x1b) >> 0x1f" (cast_expression "(int)(uVar28 << 0x1b)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar28 << 0x1b)" (( "(") (binary_expression "uVar28 << 0x1b" (identifier "uVar28") (<< "<<") (number_literal "0x1b")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar28 & 0x20) != 0) {\n      iVar8 = iVar8 + 1;\n    }" (if "if") (parenthesized_expression "((uVar28 & 0x20) != 0)" (( "(") (binary_expression "(uVar28 & 0x20) != 0" (parenthesized_expression "(uVar28 & 0x20)" (( "(") (binary_expression "uVar28 & 0x20" (identifier "uVar28") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = iVar8 + 1;\n    }" ({ "{") (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((uVar28 & 0x40) != 0) {\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }" (if "if") (parenthesized_expression "((uVar28 & 0x40) != 0)" (( "(") (binary_expression "(uVar28 & 0x40) != 0" (parenthesized_expression "(uVar28 & 0x40)" (( "(") (binary_expression "uVar28 & 0x40" (identifier "uVar28") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = iVar8 + 1;\n      if (-1 < cVar26) goto LAB_0003cb38;\nLAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\nLAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);\n      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;\n      goto LAB_0003ca24;\n    }" ({ "{") (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (-1 < cVar26) goto LAB_0003cb38;" (if "if") (parenthesized_expression "(-1 < cVar26)" (( "(") (binary_expression "-1 < cVar26" (number_literal "-1") (< "<") (identifier "cVar26")) () ")")) (goto_statement "goto LAB_0003cb38;" (goto "goto") (statement_identifier "LAB_0003cb38") (; ";"))) (labeled_statement "LAB_0003cb08:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);" (statement_identifier "LAB_0003cb08") (: ":") (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169a0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169a0)" (identifier "pcVar42") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x169a0)" (* "*") (cast_expression "(code **)(pcVar32 + 0x169a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x169a0)" (( "(") (binary_expression "pcVar32 + 0x169a0" (identifier "pcVar32") (+ "+") (number_literal "0x169a0")) () ")"))))) (; ";"))) (labeled_statement "LAB_0003cb10:\n      uVar43 = (*pcVar42)(iVar1,iVar13);" (statement_identifier "LAB_0003cb10") (: ":") (expression_statement "uVar43 = (*pcVar42)(iVar1,iVar13);" (assignment_expression "uVar43 = (*pcVar42)(iVar1,iVar13)" (identifier "uVar43") (= "=") (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" (( "(") (pointer_expression "*pcVar42" (* "*") (identifier "pcVar42")) () ")")) (argument_list "(iVar1,iVar13)" (( "(") (identifier "iVar1") (, ",") (identifier "iVar13") () ")")))) (; ";"))) (expression_statement "*(undefined4 *)(iVar1 + 0x1dc) = uVar43;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1dc) = uVar43" (pointer_expression "*(undefined4 *)(iVar1 + 0x1dc)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x1dc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1dc)" (( "(") (binary_expression "iVar1 + 0x1dc" (identifier "iVar1") (+ "+") (number_literal "0x1dc")) () ")")))) (= "=") (identifier "uVar43")) (; ";")) (goto_statement "goto LAB_0003ca24;" (goto "goto") (statement_identifier "LAB_0003ca24") (; ";")) (} "}"))) (if_statement "if (-1 < cVar26) {\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }" (if "if") (parenthesized_expression "(-1 < cVar26)" (( "(") (binary_expression "-1 < cVar26" (number_literal "-1") (< "<") (identifier "cVar26")) () ")")) (compound_statement "{\nLAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);\n      if (iVar8 < 2) goto LAB_0003ca24;\n      goto LAB_0003cb10;\n    }" ({ "{") (labeled_statement "LAB_0003cb38:\n      pcVar42 = *(code **)(pcVar32 + 0x169a0);" (statement_identifier "LAB_0003cb38") (: ":") (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169a0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169a0)" (identifier "pcVar42") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x169a0)" (* "*") (cast_expression "(code **)(pcVar32 + 0x169a0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x169a0)" (( "(") (binary_expression "pcVar32 + 0x169a0" (identifier "pcVar32") (+ "+") (number_literal "0x169a0")) () ")"))))) (; ";"))) (if_statement "if (iVar8 < 2) goto LAB_0003ca24;" (if "if") (parenthesized_expression "(iVar8 < 2)" (( "(") (binary_expression "iVar8 < 2" (identifier "iVar8") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_0003ca24;" (goto "goto") (statement_identifier "LAB_0003ca24") (; ";"))) (goto_statement "goto LAB_0003cb10;" (goto "goto") (statement_identifier "LAB_0003cb10") (; ";")) (} "}"))) (expression_statement "pcVar42 = *(code **)(pcVar32 + 0x169c0);" (assignment_expression "pcVar42 = *(code **)(pcVar32 + 0x169c0)" (identifier "pcVar42") (= "=") (pointer_expression "*(code **)(pcVar32 + 0x169c0)" (* "*") (cast_expression "(code **)(pcVar32 + 0x169c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar32 + 0x169c0)" (( "(") (binary_expression "pcVar32 + 0x169c0" (identifier "pcVar32") (+ "+") (number_literal "0x169c0")) () ")"))))) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_0003cb08;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0003cb08;" (goto "goto") (statement_identifier "LAB_0003cb08") (; ";"))) (} "}")))) (expression_statement "uVar43 = (*pcVar42)(iVar1,iVar13);" (assignment_expression "uVar43 = (*pcVar42)(iVar1,iVar13)" (identifier "uVar43") (= "=") (call_expression "(*pcVar42)(iVar1,iVar13)" (parenthesized_expression "(*pcVar42)" (( "(") (pointer_expression "*pcVar42" (* "*") (identifier "pcVar42")) () ")")) (argument_list "(iVar1,iVar13)" (( "(") (identifier "iVar1") (, ",") (identifier "iVar13") () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar1 + 0x1b4);" (assignment_expression "iVar8 = *(int *)(iVar1 + 0x1b4)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar1 + 0x1b4)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b4)" (( "(") (binary_expression "iVar1 + 0x1b4" (identifier "iVar1") (+ "+") (number_literal "0x1b4")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(iVar1 + 0x1b0);" (assignment_expression "iVar3 = *(int *)(iVar1 + 0x1b0)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(iVar1 + 0x1b0)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b0)" (( "(") (binary_expression "iVar1 + 0x1b0" (identifier "iVar1") (+ "+") (number_literal "0x1b0")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 0x1d0) = uVar43;" (assignment_expression "*(undefined4 *)(iVar1 + 0x1d0) = uVar43" (pointer_expression "*(undefined4 *)(iVar1 + 0x1d0)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x1d0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1d0)" (( "(") (binary_expression "iVar1 + 0x1d0" (identifier "iVar1") (+ "+") (number_literal "0x1d0")) () ")")))) (= "=") (identifier "uVar43")) (; ";")) (labeled_statement "LAB_0003ca48:\n  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }" (statement_identifier "LAB_0003ca48") (: ":") (if_statement "if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }" (if "if") (parenthesized_expression "((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0))" (( "(") (binary_expression "(*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)" (parenthesized_expression "(*(char *)(iVar1 + 0x1fc) != '\0')" (( "(") (binary_expression "*(char *)(iVar1 + 0x1fc) != '\0'" (pointer_expression "*(char *)(iVar1 + 0x1fc)" (* "*") (cast_expression "(char *)(iVar1 + 0x1fc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1fc)" (( "(") (binary_expression "iVar1 + 0x1fc" (identifier "iVar1") (+ "+") (number_literal "0x1fc")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar1 + 300) & 2) == 0)" (( "(") (binary_expression "(*(uint *)(iVar1 + 300) & 2) == 0" (parenthesized_expression "(*(uint *)(iVar1 + 300) & 2)" (( "(") (binary_expression "*(uint *)(iVar1 + 300) & 2" (pointer_expression "*(uint *)(iVar1 + 300)" (* "*") (cast_expression "(uint *)(iVar1 + 300)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 300)" (( "(") (binary_expression "iVar1 + 300" (identifier "iVar1") (+ "+") (number_literal "300")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;\n    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;\n    return;\n  }" ({ "{") (expression_statement "*(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;" (assignment_expression "*(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3" (pointer_expression "*(uint *)(iVar1 + 0x1b8)" (* "*") (cast_expression "(uint *)(iVar1 + 0x1b8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b8)" (( "(") (binary_expression "iVar1 + 0x1b8" (identifier "iVar1") (+ "+") (number_literal "0x1b8")) () ")")))) (= "=") (binary_expression "iVar8 + 7U >> 3" (binary_expression "iVar8 + 7U" (identifier "iVar8") (+ "+") (number_literal "7U")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;" (assignment_expression "*(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3" (pointer_expression "*(uint *)(iVar1 + 0x1bc)" (* "*") (cast_expression "(uint *)(iVar1 + 0x1bc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1bc)" (( "(") (binary_expression "iVar1 + 0x1bc" (identifier "iVar1") (+ "+") (number_literal "0x1bc")) () ")")))) (= "=") (binary_expression "iVar3 + 7U >> 3" (binary_expression "iVar3 + 7U" (identifier "iVar3") (+ "+") (number_literal "7U")) (>> ">>") (number_literal "3"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "*(int *)(iVar1 + 0x1b8) = iVar8;" (assignment_expression "*(int *)(iVar1 + 0x1b8) = iVar8" (pointer_expression "*(int *)(iVar1 + 0x1b8)" (* "*") (cast_expression "(int *)(iVar1 + 0x1b8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1b8)" (( "(") (binary_expression "iVar1 + 0x1b8" (identifier "iVar1") (+ "+") (number_literal "0x1b8")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "*(int *)(iVar1 + 0x1bc) = iVar3;" (assignment_expression "*(int *)(iVar1 + 0x1bc) = iVar3" (pointer_expression "*(int *)(iVar1 + 0x1bc)" (* "*") (cast_expression "(int *)(iVar1 + 0x1bc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x1bc)" (( "(") (binary_expression "iVar1 + 0x1bc" (identifier "iVar1") (+ "+") (number_literal "0x1bc")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Removing unreachable block (ram,0x0003b798) */

void function_1(type_1 var_9,type_2 var_16,type_2 var_6,int var_1)

{
  type_3 *p_Var1;
  type_4 var_5;
  int var_8;
  type_5 *pcVar4;
  type_6 var_42;
  type_7 *data;
  type_8 var_31;
  type_9 var_51;
  type_10 ppVar8;
  type_11 ppVar9;
  int var_3;
  type_5 *pcVar11;
  type_1 var_18;
  type_12 uVar13;
  type_1 ppVar14;
  type_13 var_45;
  char *pcVar15;
  type_2 key_00;
  type_1 ppVar16;
  type_14 *var_50;
  type_7 *pa_Var18;
  type_7 *pa_Var19;
  type_1 ppVar20;
  type_5 *pcVar21;
  type_8 p_Var22;
  type_4 var_41;
  type_5 *unaff_s0;
  type_8 var_32;
  type_1 ppVar24;
  type_1 unaff_s1;
  type_1 var_56;
  type_15 var_53;
  type_16 var_57;
  type_2 unaff_s2;
  type_17 *puVar28;
  type_17 *puVar29;
  type_18 pVar30;
  type_1 var_28;
  type_18 *ppVar32;
  type_5 *unaff_s4;
  type_16 var_55;
  type_5 *unaff_s5;
  type_12 unaff_s6;
  type_5 *new_key_00;
  int *var_40;
  type_19 *var_13;
  type_20 *var_21;
  type_20 *pcVar37;
  type_19 *var_14;
  type_8 var_30;
  type_5 *var_19;
  type_12 *var_29;
  type_20 *pcVar41;
  type_21 auStackY_c38 [4];
  type_1 var_46;
  type_13 ppStackY_c30;
  type_1 ppStackY_c2c;
  type_6 ppStackY_c28;
  type_4 pStackY_c24;
  type_16 uStackY_c20;
  type_20 *pcStackY_c1c;
  type_21 var_44 [56];
  type_7 *pa_Stack_ba8;
  type_5 *pcStack_ba4;
  type_12 *puStack_ba0;
  type_20 *pcStack_b9c;
  type_20 *var_38;
  type_22 pStack_b82;
  type_23 uStack_b7e;
  type_18 apStack_b7c [3];
  type_18 pStack_b79;
  type_21 auStack_b78 [3];
  type_18 pStack_b75;
  type_17 var_39;
  type_1 ppStack_b6c;
  type_17 *puStack_b68;
  type_1 ppStack_b64;
  type_1 ppStack_b60;
  type_20 *pcStack_b5c;
  type_20 *var_37;
  type_21 auStack_b3c [60];
  type_21 var_35 [68];
  type_21 var_33 [64];
  type_17 var_34;
  type_1 ppStack_a74;
  type_1 ppStack_a70;
  type_9 *ppStack_a6c;
  type_1 ppStack_a68;
  type_5 *pcStack_a64;
  type_5 *pcStack_a60;
  type_5 *pcStack_a5c;
  int *piStack_a58;
  type_20 *pcStack_a54;
  type_8 var_26;
  type_24 p_Stack_a34;
  type_24 p_Stack_a30;
  type_25 pvStack_a2c;
  type_7 *pa_Stack_a28;
  type_26 p_Stack_a24;
  type_25 pvStack_a20;
  type_7 *pa_Stack_a1c;
  type_21 var_25 [100];
  type_1 ppStack_9b4;
  type_5 *pcStack_9b0;
  type_1 ppStack_9ac;
  type_5 *pcStack_9a8;
  type_5 *pcStack_9a4;
  type_5 *pcStack_9a0;
  int *piStack_99c;
  type_5 *pcStack_998;
  type_10 ppStack_994;
  type_7 *pa_Stack_988;
  type_8 p_Stack_984;
  type_9 *ppStack_980;
  type_1 var_27;
  type_21 var_22 [68];
  type_5 *var_17;
  type_5 cStack_92c;
  type_18 apStack_51f [83];
  int var_20;
  type_5 *pcStack_4c8;
  type_1 ppStack_4c4;
  type_2 pcStack_4c0;
  type_19 *puStack_4bc;
  type_5 *pcStack_4b8;
  type_5 *pcStack_4b4;
  type_18 apStack_4b0 [4];
  type_5 *var_15;
  type_5 comp;
  type_18 new_key [81];
  
  var_14 = PTR___stack_chk_guard_000534bc;
  var_3 = *(int *)PTR___stack_chk_guard_000534bc;
  if (var_1 == -1) {
    var_1 = 0;
    var_2(var_9,var_16,var_6,0);
    var_18 = var_9;
    pcVar11 = (type_5 *)var_6;
LAB_0003b4a4:
    if (var_3 == *(int *)var_14) {
      return;
    }
  }
  else {
    var_18 = var_9;
    pcVar11 = (type_5 *)var_6;
    if (var_1 == 0) {
      unaff_s4 = (type_5 *)new_key;
      pcVar11 = unaff_s4;
      var_5 = var_4(var_9,var_16,(type_11)unaff_s4);
      unaff_s1 = var_9;
      unaff_s2 = var_6;
      if (var_5 != 0) {
        unaff_s0 = (type_5 *)(var_5 + 2);
        new_key[var_5 + 1] = '\0';
        if (var_6 == (type_2)0x0) {
          comp.input_len = 0;
        }
        else {
          comp.input_len = (*(type_20 *)PTR_strlen_000533d4)(var_6);
        }
        unaff_s6._0_1_ = 'z';
        unaff_s6._1_1_ = 'T';
        unaff_s6._2_1_ = '\0';
        unaff_s6._3_1_ = '\0';
        unaff_s5 = &comp;
        comp.output_len = 0;
        pcVar11 = unaff_s5;
        var_1 = (int)unaff_s0;
        comp.input = (type_6)var_6;
        var_8 = var_7(var_9,0x7a545874,unaff_s5,(type_4)unaff_s0);
        if (var_8 == 0) {
          if (var_9 != (type_1)0x0) {
            var_10
                      (var_9,0x7a545874,(type_4)(unaff_s0->output + (comp.output_len - 0xc)))
            ;
          }
          pcVar11 = unaff_s0;
          (*(type_20 *)PTR_png_write_chunk_data_000534fc)(var_9,unaff_s4);
          var_16 = (type_2)unaff_s5;
          var_11(var_9,unaff_s5);
          (*(type_20 *)PTR_png_write_chunk_end_00053408)();
          goto LAB_0003b4a4;
        }
        (*(type_20 *)PTR_png_error_0005340c)(var_9,(var_9->zstream).msg);
      }
      (*(type_20 *)PTR_png_error_0005340c)(var_9,var_12 + 0x2604);
    }
    var_16 = var_12 + 0x25e4;
    (*(type_20 *)PTR_png_error_0005340c)();
  }
  var_13 = PTR___stack_chk_fail_00053484;
  (*(type_20 *)PTR___stack_chk_fail_00053484)();
  var_22._56_4_ = var_13 + 0x1fac0;
  var_40 = *(int **)(var_13 + 0x17f8c);
  new_key_00 = (type_5 *)&stack0xfffffae0;
  puStack_4bc = var_14;
  var_20 = *var_40;
  pcVar4 = new_key_00;
  pcVar21 = (type_5 *)var_1;
  pcStack_4c8 = unaff_s0;
  ppStack_4c4 = unaff_s1;
  pcStack_4c0 = unaff_s2;
  pcStack_4b8 = unaff_s4;
  pcStack_4b4 = unaff_s5;
  apStack_4b0 = (type_18  [4])unaff_s6;
  var_5 = var_4(var_18,(type_2)pcVar11,(type_11)new_key_00);
  var_14 = (type_19 *)var_22._56_4_;
  if (var_5 == 0) {
LAB_0003b954:
    var_3 = *(int *)(var_14 + -0x7fd4) + 0x261c;
    (**(type_20 **)(var_14 + -0x7be4))(var_18,var_3);
LAB_0003b968:
    pcVar11 = pcVar21;
    (**(type_20 **)(var_14 + -0x7be4))(var_18,var_3 + 0x2650);
  }
  else {
    if ((type_5 *)var_16 != (type_5 *)0x0) {
      if (0 < (int)var_16) {
        if ((type_5 *)var_16 == (type_5 *)&DAT_00000001) goto LAB_0003b768;
        var_3 = *(int *)(var_22._56_4_ + -0x7fd4);
        if ((type_5 *)var_16 != (type_5 *)&DAT_00000002) goto LAB_0003b938;
        goto LAB_0003b5d0;
      }
      var_3 = *(int *)(var_22._56_4_ + -0x7fd4);
      if ((type_5 *)var_16 == (type_5 *)&DAT_ffffffff) {
LAB_0003b768:
        var_17 = (type_5 *)0x0;
        apStack_51f[var_5] = '\0';
        apStack_51f[var_5 + 1] = '\0';
        goto joined_r0x0003b780;
      }
LAB_0003b938:
      (**(type_20 **)(var_22._56_4_ + -0x7be4))(var_18,var_3 + 0x2634);
LAB_0003b948:
      (**(type_20 **)(var_14 + -0x7b6c))();
      goto LAB_0003b954;
    }
LAB_0003b5d0:
    var_17 = (type_5 *)&DAT_00000001;
    apStack_51f[var_5] = '\x01';
    apStack_51f[var_5 + 1] = '\0';
joined_r0x0003b780:
    if ((type_5 *)var_1 == (type_5 *)0x0) {
      var_16 = &DAT_00000001;
      var_1 = *(int *)(var_22._56_4_ + -0x7fd4) + -0xc84;
    }
    else {
      var_3 = (**(type_20 **)(var_22._56_4_ + -0x7c1c))(var_1);
      var_16 = (type_2)(var_3 + 1);
    }
    var_3 = (**(type_20 **)(var_22._56_4_ + -0x7c1c))(&_gp);
    var_19 = (type_5 *)(var_3 + 1);
    if (var_15 != (type_5 *)0x0) {
      cStack_92c.input_len = (**(type_20 **)(var_22._56_4_ + -0x7c1c))(var_15);
      if (var_16 <= (type_5 *)(0x7fffffff - (var_5 + 3))) goto LAB_0003b648;
LAB_0003b7c8:
      pcVar11 = (type_5 *)0x7fffffff;
      cStack_92c.input = (type_6)var_15;
      if (var_17 != (type_5 *)0x0) goto LAB_0003b7e0;
LAB_0003b670:
      cStack_92c.output_len = 0;
      unaff_s0 = (type_5 *)(var_5 + 3);
      pcVar21 = (type_5 *)0x7fffffff;
      var_3 = *(int *)(var_22._56_4_ + -0x7fd4);
      var_14 = (type_19 *)var_22._56_4_;
      cStack_92c.input = (type_6)var_15;
      if (cStack_92c.input_len <= (type_5 *)(0x7fffffffU - (int)pcVar11)) {
        cStack_92c.output_len = cStack_92c.input_len;
        if (var_18 == (type_1)0x0) {
          (**(type_20 **)(var_22._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);
          (**(type_20 **)(var_22._56_4_ + -0x7af4))(0,var_1,var_16);
          (**(type_20 **)(var_22._56_4_ + -0x7af4))(0,&_gp,var_19);
        }
        else {
          var_10
                    (var_18,0x69545874,
                     (type_4)
                     (((type_5 *)cStack_92c.input_len)->output +
                     (int)(pcVar11->output + -0x18)));
          (**(type_20 **)(var_22._56_4_ + -0x7af4))(var_18,new_key_00,unaff_s0);
          (**(type_20 **)(var_22._56_4_ + -0x7af4))(var_18,var_1,var_16);
          (**(type_20 **)(var_22._56_4_ + -0x7af4))(var_18,&_gp,var_19);
        }
        pcVar4 = (type_5 *)cStack_92c.output_len;
        (**(type_20 **)(var_22._56_4_ + -0x7af4))(var_18,var_15);
        goto LAB_0003b710;
      }
      goto LAB_0003b968;
    }
    cStack_92c.input_len = 0;
    var_15 = (type_5 *)(*(int *)(var_22._56_4_ + -0x7fd4) + -0xc84);
    if ((type_5 *)(0x7fffffff - (var_5 + 3)) < var_16) goto LAB_0003b7c8;
LAB_0003b648:
    if ((type_5 *)(0x7fffffffU - (int)(((type_5 *)var_16)->output + (var_5 - 9)))
        < var_19) goto LAB_0003b7c8;
    pcVar11 = (type_5 *)
              (((type_5 *)var_16)->output + (var_5 - 9) + (int)var_19);
    cStack_92c.input = (type_6)var_15;
    if (var_17 == (type_5 *)0x0) goto LAB_0003b670;
LAB_0003b7e0:
    cStack_92c.output_len = 0;
    unaff_s0 = (type_5 *)(var_5 + 3);
    var_15 = &cStack_92c;
    pcVar4 = var_15;
    var_17 = pcVar11;
    var_3 = var_7(var_18,0x69545874,var_15,(type_4)pcVar11);
    var_14 = (type_19 *)var_22._56_4_;
    if (var_3 == 0) {
      pcVar4 = var_19;
      if (var_18 == (type_1)0x0) {
        (**(type_20 **)(var_22._56_4_ + -0x7af4))(0,new_key_00,unaff_s0);
        (**(type_20 **)(var_22._56_4_ + -0x7af4))(0,var_1,var_16);
        (**(type_20 **)(var_22._56_4_ + -0x7af4))(0,&_gp);
        pcVar21 = pcVar11;
      }
      else {
        var_10
                  (var_18,0x69545874,
                   (type_4)
                   ((type_18 *)(cStack_92c.output_len + 0xc) + (int)(var_17->output + -0x18)))
        ;
        (**(type_20 **)(var_22._56_4_ + -0x7af4))(var_18,new_key_00,unaff_s0);
        (**(type_20 **)(var_22._56_4_ + -0x7af4))(var_18,var_1,var_16);
        (**(type_20 **)(var_22._56_4_ + -0x7af4))(var_18,&_gp);
        pcVar21 = pcVar11;
      }
      var_11(var_18,var_15);
LAB_0003b710:
      unaff_s0 = (type_5 *)(var_5 + 3);
      (**(type_20 **)(var_22._56_4_ + -0x7be8))(var_18);
      var_14 = (type_19 *)var_22._56_4_;
      if (var_20 == *var_40) {
        return;
      }
      goto LAB_0003b948;
    }
  }
  pcVar15 = (var_18->zstream).msg;
  var_21 = *(type_20 **)(var_14 + -0x7be4);
  pcVar41 = png_write_oFFs;
  var_28 = var_18;
  (*var_21)(var_18,pcVar15);
  ppStack_980 = (type_9 *)(var_21 + 0x1f668);
  var_56 = *(type_1 *)(var_21 + 0x17b34);
  var_22._12_4_ = var_56->jmp_buf_local[0].__jmpbuf[0].__pc;
  pcVar37 = *(type_20 **)(var_21 + 0x17a50);
  var_22._16_4_ = unaff_s0;
  var_22._20_4_ = var_18;
  var_22._24_4_ = var_15;
  var_22._28_4_ = &_gp;
  var_22._32_4_ = var_1;
  var_22._36_4_ = pcVar41;
  if (1 < (int)pcVar11) {
    (**(type_20 **)(var_21 + 0x17ab8))();
    pcVar37 = (type_20 *)ppStack_980[-0x1f06];
  }
  (*pcVar37)((type_7 *)var_22,pcVar15);
  (*(type_20 *)ppStack_980[-0x1f06])(var_22 + 4,pcVar4);
  p_Var22 = (type_8)0x9;
  key_00 = &DAT_6f464673;
  var_22[8] = var_23(pcVar11,0);
  var_18 = var_28;
  pa_Var18 = (type_7 *)var_22;
  var_24(var_28,0x6f464673,(type_6)var_22,9);
  if ((void *)var_22._12_4_ == var_56->jmp_buf_local[0].__jmpbuf[0].__pc) {
    return;
  }
  var_21 = (type_20 *)ppStack_980[-0x1edb];
  pcVar37 = png_write_pCAL;
  (*var_21)();
  pcVar21 = (type_5 *)ppStack_980;
  var_30 = var_21 + 0x1f574;
  p_Stack_a30 = *(type_24 *)(var_21 + 0x17a40);
  p_Stack_a34 = (type_24)var_22._0_4_;
  var_25._92_4_ = *(type_12 *)p_Stack_a30;
  ppStack_a70 = var_56;
  var_26 = var_30;
  var_25._96_4_ = (type_7 *)var_22;
  ppStack_9b4 = var_56;
  pcStack_9b0 = pcVar11;
  ppStack_9ac = var_28;
  pcStack_9a8 = pcVar4;
  pcStack_9a4 = (type_5 *)var_16;
  pcStack_9a0 = new_key_00;
  piStack_99c = var_40;
  pcStack_998 = var_19;
  ppStack_994 = (type_10)pcVar37;
  pa_Stack_988 = pa_Var18;
  p_Stack_984 = p_Var22;
  if ((int)ppStack_980 < 4) {
    pa_Var18 = (type_7 *)(var_25 + 0xc);
    pa_Stack_a1c = pa_Var18;
    var_5 = var_4(var_18,key_00,(type_11)pa_Var18);
    var_30 = var_26;
    ppStack_a70 = var_18;
    if (var_5 == 0) {
      (**(type_20 **)(var_26 + -0x7be4))(var_18,*(int *)(var_26 + -0x7fd4) + 0x26c8);
      pcVar4 = (type_5 *)0x0;
      goto LAB_0003bebc;
    }
    pvStack_a2c = (type_25)(var_5 + 1);
    var_28 = (type_1)(type_16)(var_27 != (type_1)0x0);
    p_Stack_a24 = (type_26)((type_16)pcVar21 & 0xff);
    var_3 = (**(type_20 **)(var_26 + -0x7c1c))(p_Stack_a34);
    pa_Stack_a28 = (type_7 *)((int)var_28->jmp_buf_local[0].__jmpbuf[0].__regs + var_3 + -8);
    var_40 = (int *)((int)(*pa_Stack_a28)[0].__jmpbuf[0].__regs + var_5 + 3);
    pcVar4 = (type_5 *)
             (**(type_20 **)(var_26 + -0x7ce8))(var_18,(int)var_27 << 2);
    pvStack_a20 = (type_25)((type_16)var_27 & 0xff);
    if ((int)var_27 < 1) {
      if (var_18 == (type_1)0x0) {
        var_56 = (type_1)var_25;
        (**(type_20 **)(var_26 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);
        (**(type_20 **)(var_26 + -0x7c18))(var_56,pa_Stack_988);
        (**(type_20 **)(var_26 + -0x7c18))(var_25 + 4,p_Stack_984);
        var_25[8] = var_23(p_Stack_a24,0);
        var_25[9] = var_23(pvStack_a20,0);
        (**(type_20 **)(var_26 + -0x7af4))(0,var_56,10);
        pa_Var18 = pa_Stack_a28;
        (**(type_20 **)(var_26 + -0x7af4))(0,p_Stack_a34);
      }
      else {
        var_10(var_18,0x7043414c,(type_4)var_40);
        var_56 = (type_1)var_25;
        (**(type_20 **)(var_26 + -0x7af4))(var_18,pa_Stack_a1c,pvStack_a2c);
        (**(type_20 **)(var_26 + -0x7c18))(var_56,pa_Stack_988);
        (**(type_20 **)(var_26 + -0x7c18))(var_25 + 4,p_Stack_984);
        var_25[8] = var_23(p_Stack_a24,0);
        var_25[9] = var_23(pvStack_a20,0);
        (**(type_20 **)(var_26 + -0x7af4))(var_18,var_56,10);
        pa_Var18 = pa_Stack_a28;
        (**(type_20 **)(var_26 + -0x7af4))(var_18,p_Stack_a34);
      }
    }
    else {
      var_28 = (type_1)0x0;
      var_16 = (type_2)var_22._4_4_;
      pcVar11 = pcVar4;
      do {
        uVar13 = *(type_12 *)var_16;
        var_16 = (type_2)((int)var_16 + 4);
        var_3 = (**(type_20 **)(var_26 + -0x7c1c))(uVar13);
        var_42 = (type_6)
                 ((type_16)(var_28 != (type_1)&var_27[-1].field_0x3e7) + var_3);
        var_28 = (type_1)((int)&var_28->jmp_buf_local[0].__jmpbuf[0].__pc + 1);
        pcVar11->input = var_42;
        var_40 = (int *)((int)var_40 + (int)var_42);
        pcVar11 = (type_5 *)&pcVar11->input_len;
      } while (var_27 != var_28);
      if (var_18 == (type_1)0x0) {
        (**(type_20 **)(var_26 + -0x7af4))(0,pa_Stack_a1c,pvStack_a2c);
        (**(type_20 **)(var_26 + -0x7c18))(var_25,pa_Stack_988);
        (**(type_20 **)(var_26 + -0x7c18))(var_25 + 4,p_Stack_984);
        var_25[8] = var_23(p_Stack_a24,0);
        var_25[9] = var_23(pvStack_a20,0);
        (**(type_20 **)(var_26 + -0x7af4))(0,var_25,10);
        (**(type_20 **)(var_26 + -0x7af4))(0,p_Stack_a34,pa_Stack_a28);
      }
      else {
        var_10(var_18,0x7043414c,(type_4)var_40);
        (**(type_20 **)(var_26 + -0x7af4))(var_18,pa_Stack_a1c,pvStack_a2c);
        (**(type_20 **)(var_26 + -0x7c18))(var_25,pa_Stack_988);
        (**(type_20 **)(var_26 + -0x7c18))(var_25 + 4,p_Stack_984);
        var_25[8] = var_23(p_Stack_a24,0);
        var_25[9] = var_23(pvStack_a20,0);
        (**(type_20 **)(var_26 + -0x7af4))(var_18,var_25,10);
        (**(type_20 **)(var_26 + -0x7af4))(var_18,p_Stack_a34,pa_Stack_a28);
      }
      new_key_00 = (type_5 *)0x0;
      pcVar21 = pcVar4;
      var_29 = (type_12 *)var_22._4_4_;
      do {
        new_key_00 = (type_5 *)((int)&new_key_00->input + 1);
        pa_Var18 = (type_7 *)pcVar21->input;
        uVar13 = *var_29;
        pcVar21 = (type_5 *)&pcVar21->input_len;
        var_29 = var_29 + 1;
        (**(type_20 **)(var_26 + -0x7af4))(var_18,uVar13);
        var_56 = var_27;
        var_22._4_4_ = var_29;
      } while ((int)new_key_00 < (int)var_27);
    }
    pcVar11 = pcVar4;
    (**(type_20 **)(var_26 + -0x7ccc))(var_18);
    (**(type_20 **)(var_26 + -0x7be8))();
    ppStack_a74 = var_56;
    var_30 = var_26;
    var_29 = (type_12 *)var_22._4_4_;
    if (var_25._92_4_ == *(type_27 *)p_Stack_a30) {
      return;
    }
  }
  else {
LAB_0003bebc:
    pcVar11 = (type_5 *)(*(int *)(var_30 + -0x7fd4) + 0x269c);
    (**(type_20 **)(var_30 + -0x7be4))();
    ppStack_a74 = var_27;
    var_29 = (type_12 *)var_22._4_4_;
  }
  var_21 = *(type_20 **)(var_30 + -0x7b6c);
  pcVar37 = png_write_sCAL_s;
  (*var_21)();
  var_35._56_4_ = var_21 + 0x1f118;
  puVar28 = *(type_17 **)(var_21 + 0x175e4);
  var_34 = *puVar28;
  pa_Var19 = pa_Var18;
  var_30 = p_Var22;
  ppStack_a6c = (type_9 *)pcVar21;
  ppStack_a68 = var_28;
  pcStack_a64 = pcVar4;
  pcStack_a60 = (type_5 *)var_16;
  pcStack_a5c = new_key_00;
  piStack_a58 = var_40;
  pcStack_a54 = pcVar37;
  data = (type_7 *)(**(type_20 **)(var_21 + 0x174fc))(pa_Var18);
  var_31 = (type_8)(**(type_20 **)(var_35._56_4_ + -0x7c1c))(p_Var22);
  var_32 = var_31 + (int)((int)&(*data)[0].__jmpbuf[0].__pc + 2);
  var_28 = var_18;
  if (&DAT_00000040 < var_32) {
    var_3 = *(int *)(var_35._56_4_ + -0x7fd4) + 0x26e0;
    (**(type_20 **)(var_35._56_4_ + -0x7bb0))(var_18,var_3);
  }
  else {
    var_33[0] = (type_18)pcVar11;
    (**(type_20 **)(var_35._56_4_ + -0x7bf0))
              (var_33 + 1,pa_Var18,(type_20 *)((int)&(*data)[0].__jmpbuf[0].__pc + 1),0x3f);
    p_Var1 = *data;
    data = (type_7 *)var_33;
    (**(type_20 **)(var_35._56_4_ + -0x7b2c))
              ((type_20 *)((int)&p_Var1->__jmpbuf[0].__pc + 2) + (int)*data,p_Var22,var_31);
    var_3 = 0x7343414c;
    pa_Var19 = data;
    var_30 = var_32;
    var_24(var_18,0x7343414c,(type_6)data,(size_t)var_32);
  }
  if (var_34 == *puVar28) {
    return;
  }
  var_21 = *(type_20 **)(var_35._56_4_ + -0x7b6c);
  pcVar41 = png_write_pHYs;
  (*var_21)();
  auStack_b3c._52_4_ = var_21 + 0x1efc4;
  var_40 = *(int **)(var_21 + 0x17490);
  var_35._12_4_ = *var_40;
  pcVar37 = *(type_20 **)(var_21 + 0x173b4);
  var_35._16_4_ = var_32;
  var_35._20_4_ = data;
  var_35._24_4_ = puVar28;
  var_35._28_4_ = p_Var22;
  var_35._32_4_ = var_31;
  var_35._36_4_ = pcVar41;
  if (1 < (int)var_30) {
    (**(type_20 **)(var_21 + 0x17414))();
    pcVar37 = *(type_20 **)(auStack_b3c._52_4_ + -0x7c10);
  }
  (*pcVar37)((type_1)var_35,var_3);
  (**(type_20 **)(auStack_b3c._52_4_ + -0x7c10))(var_35 + 4,pa_Var19);
  ppVar16 = (type_1)&var_36;
  var_35[8] = var_23(var_30,0);
  var_56 = var_28;
  ppVar20 = (type_1)var_35;
  var_24(var_28,0x70485973,(type_6)var_35,9);
  if (var_35._12_4_ == *var_40) {
    return;
  }
  var_21 = *(type_20 **)(auStack_b3c._52_4_ + -0x7b6c);
  pcVar37 = png_write_tIME;
  (*var_21)();
  var_37 = var_21 + 0x1eed0;
  puVar28 = *(type_17 **)(var_21 + 0x1739c);
  auStack_b3c._8_4_ = *puVar28;
  ppVar24 = (type_1)var_35;
  ppVar14 = var_56;
  auStack_b3c._16_4_ = (type_1)var_35;
  auStack_b3c._20_4_ = var_40;
  auStack_b3c._24_4_ = var_30;
  auStack_b3c._28_4_ = var_28;
  auStack_b3c._32_4_ = pcVar37;
  if ((((*(type_28 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2) - 1 < 0xc) &&
       (ppVar24 = ppVar16,
       *(type_28 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 3) - 1 < 0x1f)) &&
      (*(type_28 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp < 0x18)) &&
     (*(type_28 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2) < 0x3d)) {
    var_28 = (type_1)auStack_b3c;
    (**(type_20 **)(var_21 + 0x17200))
              (var_28,*(type_29 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc);
    auStack_b3c[6] = *(type_21 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp + 2);
    var_5 = 0x74494d45;
    auStack_b3c._2_2_ = *(type_29 *)((int)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__pc + 2);
    auStack_b3c._4_2_ = *(type_29 *)&ppVar16->jmp_buf_local[0].__jmpbuf[0].__sp;
    ppVar20 = var_28;
    var_24(var_56,0x74494d45,(type_6)var_28,7);
  }
  else {
    var_5 = *(int *)(var_21 + 0x16efc) + 0x272c;
    (**(type_20 **)(var_21 + 0x17320))();
    ppVar16 = ppVar24;
  }
  if (auStack_b3c._8_4_ == *puVar28) {
    return;
  }
  var_21 = *(type_20 **)(var_37 + -0x7b6c);
  pcVar37 = png_write_acTL;
  (*var_21)();
  var_38 = var_21 + 0x1edb0;
  puVar29 = *(type_17 **)(var_21 + 0x1727c);
  ppVar14->num_frames_to_write = var_5;
  var_39 = *puVar29;
  ppStack_b6c = ppVar16;
  puStack_b68 = puVar28;
  ppStack_b64 = var_56;
  ppStack_b60 = var_28;
  pcStack_b5c = pcVar37;
  (**(type_20 **)(var_21 + 0x171a0))(apStack_b7c);
  (**(type_20 **)(var_38 + -0x7c10))(auStack_b78,ppVar20);
  var_41 = 8;
  var_5 = 0x6163544c;
  var_28 = ppVar14;
  var_42 = apStack_b7c;
  var_24(ppVar14,0x6163544c,apStack_b7c,8);
  if (var_39 == *puVar29) {
    return;
  }
  var_21 = *(type_20 **)(var_38 + -0x7b6c);
  pcVar37 = png_write_fcTL;
  (*var_21)();
  var_40 = *(int **)(var_21 + 0x171ac);
  var_56 = (type_1)*var_40;
  var_55 = (type_16)uStack_b7e;
  var_44._28_4_ = var_56;
  var_44._32_4_ = apStack_b7c;
  var_44._36_4_ = ppVar14;
  var_44._40_4_ = puVar29;
  var_44._44_4_ = ppVar20;
  var_44._48_4_ = pa_Var19;
  var_44._52_4_ = var_18;
  pa_Stack_ba8 = pa_Var18;
  pcStack_ba4 = pcVar11;
  puStack_ba0 = var_29;
  pcStack_b9c = pcVar37;
  if (var_28->num_frames_written == 0) {
    if (var_41 == 0 && var_38 == (type_20 *)0x0) {
      if ((var_28->first_frame_width == var_5) &&
         ((type_6)var_28->first_frame_height == var_42)) goto LAB_0003c3a8;
    }
    else {
      (**(type_20 **)(var_21 + 0x170fc))();
    }
    var_50 = (type_14 *)(*(int *)(var_21 + 0x16d0c) + 0x2784);
    var_45 = var_28;
    (**(type_20 **)(var_21 + 0x170fc))();
  }
  else {
LAB_0003c3a8:
    var_43
              (var_28,var_5,(type_4)var_42,var_41,(type_4)var_38,pStack_b82,
               uStack_b7e,pStack_b79,pStack_b75);
    (**(type_20 **)(var_21 + 0x170d0))((type_1)var_44,var_28->next_seq_num);
    (**(type_20 **)(var_21 + 0x170d0))(var_44 + 4,var_5);
    (**(type_20 **)(var_21 + 0x170d0))(var_44 + 8,var_42);
    (**(type_20 **)(var_21 + 0x170d0))(var_44 + 0xc,var_41);
    (**(type_20 **)(var_21 + 0x170d0))(var_44 + 0x10,var_38);
    (**(type_20 **)(var_21 + 0x17010))(var_44 + 0x14,pStack_b82);
    (**(type_20 **)(var_21 + 0x17010))(var_44 + 0x16,var_55);
    var_41 = 0x1a;
    var_50 = (type_14 *)0x6663544c;
    var_44[0x18] = pStack_b79;
    var_44[0x19] = pStack_b75;
    var_56 = (type_1)var_44;
    var_24(var_28,0x6663544c,(type_6)var_44,0x1a);
    var_18 = (type_1)*var_40;
    var_28->next_seq_num = var_28->next_seq_num + 1;
    var_45 = (type_13)var_44._28_4_;
    ppVar14 = (type_1)var_44;
    if ((type_1)var_44._28_4_ == var_18) {
      return;
    }
  }
  var_21 = *(type_20 **)(var_21 + 0x17174);
  pcVar37 = var_54;
  (*var_21)();
  var_40 = *(int **)(var_21 + 0x16fac);
  var_46 = (type_1)*var_40;
  ppStackY_c30 = var_28;
  ppStackY_c2c = ppVar14;
  ppStackY_c28 = var_42;
  pStackY_c24 = var_5;
  uStackY_c20 = var_55;
  pcStackY_c1c = pcVar37;
  if (var_45 != (type_1)0x0) {
    var_10
              (var_45,0x66644154,(type_4)&var_56->jmp_buf_local[0].__jmpbuf[0].__sp);
  }
  (**(type_20 **)(var_21 + 0x16ed0))(auStackY_c38,var_45->next_seq_num);
  (**(type_20 **)(var_21 + 0x16fec))(var_45,auStackY_c38,4);
  (**(type_20 **)(var_21 + 0x16fec))(var_45);
  (**(type_20 **)(var_21 + 0x16ef8))(var_45);
  var_18 = (type_1)*var_40;
  var_45->next_seq_num = var_45->next_seq_num + 1;
  if (var_46 == var_18) {
    return;
  }
  var_21 = *(type_20 **)(var_21 + 0x16f74);
  var_18 = var_46;
  (*var_21)();
  if (var_18->zowner == 0x49444154) goto LAB_0003c6d0;
  if (var_18->zbuffer_list == (type_10)0x0) goto LAB_0003c8fc;
  var_47(var_18,&var_18->zbuffer_list->next);
  while( true ) {
    var_51 = var_48(var_18);
    var_3 = var_49(var_18,0x49444154,var_51);
    if (var_3 != 0) break;
    ppVar8 = var_18->zbuffer_list;
    (var_18->zstream).avail_out = var_18->zbuffer_size;
    (var_18->zstream).next_out = ppVar8->output;
LAB_0003c6d0:
    (var_18->zstream).next_in = var_50;
    do {
      pcVar37 = *(type_20 **)(var_21 + 0x16e48);
      do {
        (var_18->zstream).avail_in = (type_27)var_56;
        var_50 = (type_14 *)(*pcVar37)(&var_18->zstream,var_41);
        var_56 = (type_1)(var_18->zstream).avail_in;
        (var_18->zstream).avail_in = 0;
        if ((var_18->zstream).avail_out != 0) {
          if (var_50 != (type_14 *)0x0) {
LAB_0003c7d4:
            if (var_50 != (type_14 *)0x1) goto LAB_0003c944;
            pcVar37 = *(type_20 **)(var_21 + 0x16bc8);
            if (var_41 == 4) {
              ppVar32 = var_18->zbuffer_list->output;
              var_53 = var_18->zbuffer_size - (var_18->zstream).avail_out;
              if ((((var_18->mode & 4) == 0) && (var_18->compression_type == '\0')) &&
                 (var_51 = var_48(var_18), var_51 < 0x4001)) {
                var_52(ppVar32,var_51);
              }
              if (var_53 == 0) {
                var_55 = var_18->mode;
              }
              else if (var_18->num_frames_written == 0) {
                var_24(var_18,0x49444154,ppVar32,var_53);
                var_55 = var_18->mode;
              }
              else {
                var_54(var_18,ppVar32,var_53);
                var_55 = var_18->mode;
              }
              (var_18->zstream).avail_out = 0;
              (var_18->zstream).next_out = (type_14 *)0x0;
              var_18->zowner = 0;
              var_18->mode = var_55 | 0xc;
              return;
            }
            goto LAB_0003c948;
          }
          break;
        }
        var_53 = var_18->zbuffer_size;
        ppVar32 = var_18->zbuffer_list->output;
        if ((((var_18->mode & 4) == 0) && (var_18->compression_type == '\0')) &&
           (var_51 = var_48(var_18), var_51 < 0x4001)) {
          var_52(ppVar32,var_51);
        }
        if (var_53 != 0) {
          if (var_18->num_frames_written == 0) {
            var_24(var_18,0x49444154,ppVar32,var_53);
          }
          else {
            var_54(var_18,ppVar32,var_53);
          }
        }
        var_55 = var_18->mode;
        (var_18->zstream).next_out = ppVar32;
        (var_18->zstream).avail_out = var_53;
        var_18->mode = var_55 | 4;
        if (var_50 != (type_14 *)0x0) goto LAB_0003c7d4;
        pcVar37 = *(type_20 **)(var_21 + 0x16e48);
      } while (var_41 != 0);
    } while (var_56 != (type_1)0x0);
    if (var_41 != 4) {
      return;
    }
    (**(type_20 **)(var_21 + 0x16dfc))(var_18,*(int *)(var_21 + 0x16a0c) + 0x27d0);
LAB_0003c8fc:
    ppVar8 = (type_10)(**(type_20 **)(var_21 + 0x16cf8))();
    var_18->zbuffer_list = ppVar8;
    ppVar8->next = (type_30 *)0x0;
  }
  (**(type_20 **)(var_21 + 0x16dfc))(var_18,(var_18->zstream).msg);
LAB_0003c944:
  pcVar37 = *(type_20 **)(var_21 + 0x16bc8);
LAB_0003c948:
  (*pcVar37)(var_18,var_50);
  var_21 = *(type_20 **)(var_21 + 0x16dfc);
  (*var_21)(var_18,(var_18->zstream).msg);
  var_55 = (type_16)var_18->usr_channels * (type_16)var_18->usr_bit_depth;
  if (var_55 < 8) {
    var_57 = var_18->width * var_55 + 7 >> 3;
  }
  else {
    var_57 = (var_55 >> 3) * var_18->width;
  }
  var_3 = var_57 + 1;
  pcVar37 = *(type_20 **)(var_21 + 0x169a0);
  var_18->maximum_pixel_depth = (type_18)var_55;
  var_18->transformed_pixel_depth = var_18->pixel_depth;
  ppVar9 = (type_11)(*pcVar37)(var_18,var_3);
  var_5 = var_18->height;
  var_55 = (type_16)var_18->do_filter;
  var_18->row_buf = ppVar9;
  *ppVar9 = '\0';
  if (var_5 == 1) {
    var_55 = var_55 & 0x1f;
  }
  var_41 = var_18->width;
  if (var_41 == 1) {
    var_55 = var_55 & 0x2f;
  }
  if (var_55 == 0) {
    var_18->do_filter = '\b';
    goto LAB_0003ca48;
  }
  pVar30 = (type_18)var_55;
  var_18->do_filter = pVar30;
  if (((var_55 & 0xf0) == 0) || (var_18->try_row != (type_11)0x0)) {
LAB_0003ca24:
    pcVar37 = *(type_20 **)(var_21 + 0x169c0);
    if ((var_55 & 0xe0) == 0) {
      var_5 = var_18->height;
      var_41 = var_18->width;
      goto LAB_0003ca48;
    }
  }
  else {
    ppVar9 = (type_11)(**(type_20 **)(var_21 + 0x169a0))(var_18,var_3);
    var_18->try_row = ppVar9;
    var_8 = -((int)(var_55 << 0x1b) >> 0x1f);
    if ((var_55 & 0x20) != 0) {
      var_8 = var_8 + 1;
    }
    if ((var_55 & 0x40) != 0) {
      var_8 = var_8 + 1;
      if (-1 < (char)pVar30) goto LAB_0003cb38;
LAB_0003cb08:
      pcVar37 = *(type_20 **)(var_21 + 0x169a0);
LAB_0003cb10:
      ppVar9 = (type_11)(*pcVar37)(var_18,var_3);
      var_18->tst_row = ppVar9;
      goto LAB_0003ca24;
    }
    if (-1 < (char)pVar30) {
LAB_0003cb38:
      pcVar37 = *(type_20 **)(var_21 + 0x169a0);
      if (var_8 < 2) goto LAB_0003ca24;
      goto LAB_0003cb10;
    }
    pcVar37 = *(type_20 **)(var_21 + 0x169c0);
    if (var_8 != 0) goto LAB_0003cb08;
  }
  ppVar9 = (type_11)(*pcVar37)(var_18,var_3);
  var_5 = var_18->height;
  var_41 = var_18->width;
  var_18->prev_row = ppVar9;
LAB_0003ca48:
  if ((var_18->interlaced != '\0') && ((var_18->transformations & 2) == 0)) {
    var_18->num_rows = var_5 + 7 >> 3;
    var_18->usr_width = var_41 + 7 >> 3;
    return;
  }
  var_18->num_rows = var_5;
  var_18->usr_width = var_41;
  return;
}


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

/* WARNING: Removing unreachable block (ram,0x0003b798) */
/* WARNING: Type propagation algorithm not settling */

void MASKED(int *param_1,int *param_2,int param_3,undefined *param_4)

{
  int iVar1;
  code *******pppppppcVar2;
  int iVar3;
  undefined *puVar4;
  int *piVar5;
  undefined1 *puVar6;
  int *piVar7;
  int iVar8;
  code *******pppppppcVar9;
  code ****ppppcVar10;
  int *piVar11;
  code **ppcVar12;
  int iVar13;
  code ******ppppppcVar14;
  int *piVar15;
  undefined *puVar16;
  undefined1 *puVar17;
  undefined *unaff_s0;
  undefined1 *puVar18;
  int *piVar19;
  int *unaff_s1;
  int *piVar20;
  code ***pppcVar21;
  code **ppcVar22;
  uint uVar23;
  int unaff_s2;
  code *******pppppppcVar24;
  code ****ppppcVar25;
  char cVar26;
  int *piVar27;
  undefined1 *unaff_s4;
  uint uVar28;
  int *unaff_s5;
  undefined4 unaff_s6;
  code *******pppppppcVar29;
  undefined4 *puVar30;
  int *piVar31;
  code *pcVar32;
  code ******ppppppcVar33;
  code ******ppppppcVar34;
  code *****pppppcVar35;
  code ****ppppcVar36;
  code ***pppcVar37;
  code **ppcVar38;
  code *pcVar39;
  undefined *puVar40;
  code *******unaff_s8;
  int iVar41;
  code *pcVar42;
  undefined4 uVar43;
  undefined1 auStack_c38 [4];
  int iStack_c34;
  int *piStack_c30;
  int *piStack_c2c;
  undefined1 *puStack_c28;
  int iStack_c24;
  uint uStack_c20;
  code *pcStack_c1c;
  code **ppcStack_c08;
  uint uStack_c04;
  uint uStack_c00;
  uint uStack_bfc;
  uint uStack_bf8;
  code *pcStack_bf0;
  uint uStack_be4;
  int iStack_be0;
  undefined1 auStack_bdc [4];
  undefined1 auStack_bd8 [4];
  undefined1 auStack_bd4 [4];
  undefined1 auStack_bd0 [4];
  undefined1 auStack_bcc [2];
  undefined1 auStack_bca [2];
  byte bStack_bc8;
  byte bStack_bc7;
  int *piStack_bc4;
  undefined1 *puStack_bc0;
  int *piStack_bbc;
  code *pcStack_bb8;
  int *piStack_bb4;
  code ******ppppppcStack_bb0;
  int *piStack_bac;
  code ******ppppppcStack_ba8;
  code *******pppppppcStack_ba4;
  int *piStack_ba0;
  undefined4 uStack_b9c;
  code **ppcStack_b88;
  ushort uStack_b82;
  ushort uStack_b7e;
  undefined1 auStack_b7c [3];
  byte bStack_b79;
  undefined1 auStack_b78 [3];
  byte bStack_b75;
  int iStack_b74;
  int *piStack_b6c;
  code **ppcStack_b68;
  int *piStack_b64;
  int *piStack_b60;
  code *pcStack_b5c;
  code ***pppcStack_b48;
  undefined4 uStack_b3c;
  undefined2 uStack_b38;
  undefined1 uStack_b36;
  code *pcStack_b34;
  int *piStack_b2c;
  code ***pppcStack_b28;
  undefined1 *puStack_b24;
  int *piStack_b20;
  code *pcStack_b1c;
  code ****ppppcStack_b08;
  int iStack_b00;
  undefined1 auStack_afc [4];
  undefined1 uStack_af8;
  code **ppcStack_af4;
  undefined1 *puStack_af0;
  code ******ppppppcStack_aec;
  code ****ppppcStack_ae8;
  undefined1 *puStack_ae4;
  int iStack_ae0;
  code *pcStack_adc;
  code *****pppppcStack_ac8;
  undefined1 uStack_abc;
  undefined1 uStack_abb;
  undefined1 auStack_aba [62];
  code ***pppcStack_a7c;
  int *piStack_a74;
  int *piStack_a70;
  code *******pppppppcStack_a6c;
  int *piStack_a68;
  code *******pppppppcStack_a64;
  int *piStack_a60;
  code *******pppppppcStack_a5c;
  int *piStack_a58;
  code *pcStack_a54;
  code ******ppppppcStack_a40;
  code *****pppppcStack_a34;
  code *****pppppcStack_a30;
  int iStack_a2c;
  code ******ppppppcStack_a28;
  uint uStack_a24;
  uint uStack_a20;
  code ******ppppppcStack_a1c;
  int iStack_a18;
  undefined1 auStack_a14 [4];
  undefined1 uStack_a10;
  undefined1 uStack_a0f;
  code *****apppppcStack_a0c [20];
  code ****ppppcStack_9bc;
  code ******ppppppcStack_9b8;
  int *piStack_9b4;
  undefined *puStack_9b0;
  int *piStack_9ac;
  code *******pppppppcStack_9a8;
  int *piStack_9a4;
  code *******pppppppcStack_9a0;
  int *piStack_99c;
  code *******pppppppcStack_998;
  code *pcStack_994;
  code ******ppppppcStack_988;
  undefined1 *puStack_984;
  code *******pppppppcStack_980;
  int *piStack_97c;
  code *****pppppcStack_978;
  int *piStack_974;
  undefined1 uStack_970;
  int iStack_96c;
  undefined *puStack_968;
  int *piStack_964;
  code *******pppppppcStack_960;
  undefined1 *puStack_95c;
  undefined *puStack_958;
  code *pcStack_954;
  undefined *puStack_940;
  undefined *puStack_934;
  code *******pppppppcStack_92c;
  code *******pppppppcStack_928;
  code *******pppppppcStack_924;
  undefined4 uStack_520;
  int iStack_4cc;
  undefined *puStack_4c8;
  int *piStack_4c4;
  int iStack_4c0;
  undefined *puStack_4bc;
  undefined1 *puStack_4b8;
  int *piStack_4b4;
  undefined4 uStack_4b0;
  code *******pppppppcStack_48c;
  int local_484;
  undefined4 local_480;
  int local_47c;
  undefined1 uStack_78;
  undefined1 auStack_77 [83];
  int local_24;
  
  puVar40 = PTR___stack_chk_guard_000534bc;
  local_24 = *(int *)PTR___stack_chk_guard_000534bc;
  if (param_4 == (undefined *)0xffffffff) {
    param_4 = (undefined *)0x0;
    FUN_0003b1e0();
LAB_0003b4a4:
    if (local_24 == *(int *)puVar40) {
      return;
    }
  }
  else {
    if (param_4 == (undefined *)0x0) {
      unaff_s4 = &uStack_78;
      iVar1 = FUN_0003449c(param_1,param_2,unaff_s4);
      unaff_s1 = param_1;
      unaff_s2 = param_3;
      if (iVar1 != 0) {
        unaff_s0 = (undefined *)(iVar1 + 2);
        auStack_77[iVar1] = 0;
        if (param_3 == 0) {
          local_480 = 0;
        }
        else {
          local_480 = (*(code *)PTR_strlen_000533d4)(param_3);
        }
        unaff_s6 = 0x7a540000;
        unaff_s5 = &local_484;
        local_47c = 0;
        param_4 = unaff_s0;
        local_484 = param_3;
        iVar1 = FUN_00039670(param_1,0x7a545874,unaff_s5);
        if (iVar1 == 0) {
          if (param_1 != (int *)0x0) {
            FUN_00039938(param_1,0x7a545874,unaff_s0 + local_47c);
          }
          (*(code *)PTR_png_write_chunk_data_000534fc)(param_1,unaff_s4,unaff_s0);
          param_2 = unaff_s5;
          FUN_00039bc4(param_1);
          (*(code *)PTR_png_write_chunk_end_00053408)();
          goto LAB_0003b4a4;
        }
        (*(code *)PTR_png_error_0005340c)(param_1,param_1[0x53]);
      }
      (*(code *)PTR_png_error_0005340c)(param_1,PTR_s_nt_0005301c + 0x2604);
    }
    param_2 = (int *)(PTR_s_nt_0005301c + 0x25e4);
    (*(code *)PTR_png_error_0005340c)();
  }
  puVar16 = PTR___stack_chk_fail_00053484;
  (*(code *)PTR___stack_chk_fail_00053484)();
  puStack_940 = puVar16 + 0x1fac0;
  piVar31 = *(int **)(puVar16 + 0x17f8c);
  pppppppcVar29 = (code *******)&uStack_520;
  puStack_4bc = puVar40;
  iStack_4cc = *piVar31;
  pppppppcVar2 = pppppppcVar29;
  puVar16 = param_4;
  puStack_4c8 = unaff_s0;
  piStack_4c4 = unaff_s1;
  iStack_4c0 = unaff_s2;
  puStack_4b8 = unaff_s4;
  piStack_4b4 = unaff_s5;
  uStack_4b0 = unaff_s6;
  iVar1 = FUN_0003449c();
  puVar40 = puStack_940;
  if (iVar1 == 0) {
LAB_0003b954:
    iVar8 = *(int *)(puVar40 + -0x7fd4) + 0x261c;
    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8);
LAB_0003b968:
    puVar4 = puVar16;
    (**(code **)(puVar40 + -0x7be4))(param_1,iVar8 + 0x2650);
  }
  else {
    if (param_2 != (int *)0x0) {
      if (0 < (int)param_2) {
        if (param_2 == (int *)0x1) goto LAB_0003b768;
        iVar8 = *(int *)(puStack_940 + -0x7fd4);
        if (param_2 != (int *)0x2) goto LAB_0003b938;
        goto LAB_0003b5d0;
      }
      iVar8 = *(int *)(puStack_940 + -0x7fd4);
      if (param_2 == (int *)0xffffffff) {
LAB_0003b768:
        puStack_934 = (undefined *)0x0;
        *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 0;
        *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;
        goto joined_r0x0003b780;
      }
LAB_0003b938:
      (**(code **)(puStack_940 + -0x7be4))(param_1,iVar8 + 0x2634);
LAB_0003b948:
      (**(code **)(puVar40 + -0x7b6c))();
      goto LAB_0003b954;
    }
LAB_0003b5d0:
    puStack_934 = (undefined *)0x1;
    *(undefined1 *)((int)&uStack_520 + iVar1 + 1) = 1;
    *(undefined1 *)((int)&uStack_520 + iVar1 + 2) = 0;
joined_r0x0003b780:
    if (param_4 == (undefined *)0x0) {
      param_2 = (int *)0x1;
      param_4 = (undefined *)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);
    }
    else {
      iVar8 = (**(code **)(puStack_940 + -0x7c1c))(param_4);
      param_2 = (int *)(iVar8 + 1);
    }
    iVar8 = (**(code **)(puStack_940 + -0x7c1c))(&_gp_1);
    unaff_s8 = (code *******)(iVar8 + 1);
    if (pppppppcStack_48c != (code *******)0x0) {
      pppppppcStack_928 = (code *******)(**(code **)(puStack_940 + -0x7c1c))(pppppppcStack_48c);
      if (param_2 <= (int *)(0x7fffffff - (iVar1 + 3))) goto LAB_0003b648;
LAB_0003b7c8:
      puVar4 = (undefined *)0x7fffffff;
      pppppppcStack_92c = pppppppcStack_48c;
      if (puStack_934 != (undefined *)0x0) goto LAB_0003b7e0;
LAB_0003b670:
      pppppppcStack_924 = (code *******)0x0;
      unaff_s0 = (undefined *)(iVar1 + 3);
      puVar16 = (undefined *)0x7fffffff;
      iVar8 = *(int *)(puStack_940 + -0x7fd4);
      puVar40 = puStack_940;
      pppppppcStack_92c = pppppppcStack_48c;
      if (pppppppcStack_928 <= (code *******)(0x7fffffff - (int)puVar4)) {
        pppppppcStack_924 = pppppppcStack_928;
        if (param_1 == (int *)0x0) {
          (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);
          (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);
          (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1,unaff_s8);
        }
        else {
          FUN_00039938(param_1,0x69545874,puVar4 + (int)pppppppcStack_928);
          (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);
          (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);
          (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1,unaff_s8);
        }
        pppppppcVar2 = pppppppcStack_924;
        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcStack_48c);
        goto LAB_0003b710;
      }
      goto LAB_0003b968;
    }
    pppppppcStack_928 = (code *******)0x0;
    pppppppcStack_48c = (code *******)(*(int *)(puStack_940 + -0x7fd4) + -0xc84);
    if ((int *)(0x7fffffff - (iVar1 + 3)) < param_2) goto LAB_0003b7c8;
LAB_0003b648:
    puVar4 = (undefined *)((int)param_2 + iVar1 + 3);
    if ((code *******)(0x7fffffff - (int)puVar4) < unaff_s8) goto LAB_0003b7c8;
    puVar4 = puVar4 + (int)unaff_s8;
    pppppppcStack_92c = pppppppcStack_48c;
    if (puStack_934 == (undefined *)0x0) goto LAB_0003b670;
LAB_0003b7e0:
    pppppppcStack_924 = (code *******)0x0;
    unaff_s0 = (undefined *)(iVar1 + 3);
    pppppppcStack_48c = (code *******)&pppppppcStack_92c;
    pppppppcVar2 = pppppppcStack_48c;
    puStack_934 = puVar4;
    iVar8 = FUN_00039670(param_1,0x69545874);
    puVar40 = puStack_940;
    if (iVar8 == 0) {
      pppppppcVar2 = unaff_s8;
      if (param_1 == (int *)0x0) {
        (**(code **)(puStack_940 + -0x7af4))(0,pppppppcVar29,unaff_s0);
        (**(code **)(puStack_940 + -0x7af4))(0,param_4,param_2);
        (**(code **)(puStack_940 + -0x7af4))(0,&_gp_1);
        puVar16 = puVar4;
      }
      else {
        FUN_00039938(param_1,0x69545874,puStack_934 + (int)pppppppcStack_924);
        (**(code **)(puStack_940 + -0x7af4))(param_1,pppppppcVar29,unaff_s0);
        (**(code **)(puStack_940 + -0x7af4))(param_1,param_4,param_2);
        (**(code **)(puStack_940 + -0x7af4))(param_1,&_gp_1);
        puVar16 = puVar4;
      }
      FUN_00039bc4(param_1,pppppppcStack_48c);
LAB_0003b710:
      unaff_s0 = (undefined *)(iVar1 + 3);
      (**(code **)(puStack_940 + -0x7be8))(param_1);
      puVar40 = puStack_940;
      if (iStack_4cc == *piVar31) {
        return;
      }
      goto LAB_0003b948;
    }
  }
  iVar1 = param_1[0x53];
  pcVar32 = *(code **)(puVar40 + -0x7be4);
  pcVar42 = FUN_0003b988;
  piVar27 = param_1;
  (*pcVar32)(param_1,iVar1);
  pppppppcStack_980 = (code *******)(pcVar32 + 0x1f668);
  piVar20 = *(int **)(pcVar32 + 0x17b34);
  iStack_96c = *piVar20;
  ppppppcVar33 = *(code *******)(pcVar32 + 0x17a50);
  puStack_968 = unaff_s0;
  piStack_964 = param_1;
  pppppppcStack_960 = pppppppcStack_48c;
  puStack_95c = &_gp_1;
  puStack_958 = param_4;
  pcStack_954 = pcVar42;
  if (1 < (int)puVar4) {
    (**(code **)(pcVar32 + 0x17ab8))();
    ppppppcVar33 = pppppppcStack_980[-0x1f06];
  }
  (*(code *)ppppppcVar33)(&pppppcStack_978,iVar1);
  (*(code *)pppppppcStack_980[-0x1f06])(&piStack_974,pppppppcVar2);
  puVar17 = (undefined1 *)0x9;
  uStack_970 = SUB41(puVar4,0);
  piVar5 = piVar27;
  ppppppcVar33 = &pppppcStack_978;
  FUN_00039d28(piVar27,0x6f464673);
  if (iStack_96c == *piVar20) {
    return;
  }
  ppppppcVar34 = pppppppcStack_980[-0x1edb];
  pcVar32 = FUN_0003ba7c;
  (*(code *)ppppppcVar34)();
  pppppppcVar24 = pppppppcStack_980;
  ppppppcVar14 = ppppppcVar34 + 0x7d5d;
  pppppcStack_a30 = ppppppcVar34[0x5e90];
  pppppcStack_a34 = pppppcStack_978;
  ppppcStack_9bc = *pppppcStack_a30;
  piStack_a70 = piVar20;
  ppppppcStack_a40 = ppppppcVar14;
  ppppppcStack_9b8 = &pppppcStack_978;
  piStack_9b4 = piVar20;
  puStack_9b0 = puVar4;
  piStack_9ac = piVar27;
  pppppppcStack_9a8 = pppppppcVar2;
  piStack_9a4 = param_2;
  pppppppcStack_9a0 = pppppppcVar29;
  piStack_99c = piVar31;
  pppppppcStack_998 = unaff_s8;
  pcStack_994 = pcVar32;
  ppppppcStack_988 = ppppppcVar33;
  puStack_984 = puVar17;
  if ((int)pppppppcStack_980 < 4) {
    ppppppcVar33 = apppppcStack_a0c;
    ppppppcStack_a1c = ppppppcVar33;
    iVar1 = FUN_0003449c();
    ppppppcVar14 = ppppppcStack_a40;
    piStack_a70 = piVar5;
    if (iVar1 == 0) {
      (*(code *)ppppppcStack_a40[-0x1ef9])(piVar5,ppppppcStack_a40[-0x1ff5] + 0x9b2);
      pppppppcVar2 = (code *******)0x0;
      goto LAB_0003bebc;
    }
    iStack_a2c = iVar1 + 1;
    piVar27 = (int *)(uint)(piStack_97c != (int *)0x0);
    uStack_a24 = (uint)pppppppcVar24 & 0xff;
    iVar8 = (*(code *)ppppppcStack_a40[-0x1f07])(pppppcStack_a34);
    ppppppcStack_a28 = (code ******)((int)piVar27 + iVar8);
    piVar31 = (int *)((int)ppppppcStack_a28 + iVar1 + 0xb);
    pppppppcVar2 = (code *******)(*(code *)ppppppcStack_a40[-0x1f3a])(piVar5,(int)piStack_97c << 2);
    uStack_a20 = (uint)piStack_97c & 0xff;
    if ((int)piStack_97c < 1) {
      if (piVar5 == (int *)0x0) {
        piVar20 = &iStack_a18;
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);
        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);
        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);
        uStack_a10 = (undefined1)uStack_a24;
        uStack_a0f = (undefined1)uStack_a20;
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,piVar20,10);
        ppppppcVar33 = ppppppcStack_a28;
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34);
      }
      else {
        FUN_00039938(piVar5,0x7043414c,piVar31);
        piVar20 = &iStack_a18;
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);
        (*(code *)ppppppcStack_a40[-0x1f06])(piVar20,ppppppcStack_988);
        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);
        uStack_a10 = (undefined1)uStack_a24;
        uStack_a0f = (undefined1)uStack_a20;
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,piVar20,10);
        ppppppcVar33 = ppppppcStack_a28;
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34);
      }
    }
    else {
      piVar27 = (int *)0x0;
      param_2 = piStack_974;
      pppppppcVar29 = pppppppcVar2;
      do {
        iVar1 = *param_2;
        param_2 = param_2 + 1;
        iVar1 = (*(code *)ppppppcStack_a40[-0x1f07])(iVar1);
        ppppppcVar33 = (code ******)((uint)(piVar27 != (int *)((int)piStack_97c + -1)) + iVar1);
        piVar27 = (int *)((int)piVar27 + 1);
        *pppppppcVar29 = ppppppcVar33;
        piVar31 = (int *)((int)piVar31 + (int)ppppppcVar33);
        pppppppcVar29 = pppppppcVar29 + 1;
      } while (piStack_97c != piVar27);
      if (piVar5 == (int *)0x0) {
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,ppppppcStack_a1c,iStack_a2c);
        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);
        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);
        uStack_a10 = (undefined1)uStack_a24;
        uStack_a0f = (undefined1)uStack_a20;
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,&iStack_a18,10);
        (*(code *)ppppppcStack_a40[-0x1ebd])(0,pppppcStack_a34,ppppppcStack_a28);
      }
      else {
        FUN_00039938(piVar5,0x7043414c,piVar31);
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,ppppppcStack_a1c,iStack_a2c);
        (*(code *)ppppppcStack_a40[-0x1f06])(&iStack_a18,ppppppcStack_988);
        (*(code *)ppppppcStack_a40[-0x1f06])(auStack_a14,puStack_984);
        uStack_a10 = (undefined1)uStack_a24;
        uStack_a0f = (undefined1)uStack_a20;
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,&iStack_a18,10);
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,pppppcStack_a34,ppppppcStack_a28);
      }
      pppppppcVar29 = (code *******)0x0;
      pppppppcVar24 = pppppppcVar2;
      piVar15 = piStack_974;
      do {
        pppppppcVar29 = (code *******)((int)pppppppcVar29 + 1);
        ppppppcVar33 = *pppppppcVar24;
        iVar1 = *piVar15;
        pppppppcVar24 = pppppppcVar24 + 1;
        piVar15 = piVar15 + 1;
        (*(code *)ppppppcStack_a40[-0x1ebd])(piVar5,iVar1);
        piVar20 = piStack_97c;
        piStack_974 = piVar15;
      } while ((int)pppppppcVar29 < (int)piStack_97c);
    }
    pppppppcVar9 = pppppppcVar2;
    (*(code *)ppppppcStack_a40[-0x1f33])(piVar5);
    (*(code *)ppppppcStack_a40[-0x1efa])();
    piStack_a74 = piVar20;
    ppppppcVar14 = ppppppcStack_a40;
    piVar20 = piStack_974;
    if (ppppcStack_9bc == *pppppcStack_a30) {
      return;
    }
  }
  else {
LAB_0003bebc:
    pppppppcVar9 = (code *******)(ppppppcVar14[-0x1ff5] + 0x9a7);
    (*(code *)ppppppcVar14[-0x1ef9])();
    piStack_a74 = piStack_97c;
    piVar20 = piStack_974;
  }
  pppppcVar35 = ppppppcVar14[-0x1edb];
  pcVar32 = FUN_0003bed8;
  (*(code *)pppppcVar35)();
  pppppcStack_ac8 = pppppcVar35 + 0x7c46;
  ppppcVar25 = pppppcVar35[0x5d79];
  pppcStack_a7c = *ppppcVar25;
  ppppppcVar14 = ppppppcVar33;
  puVar6 = puVar17;
  pppppppcStack_a6c = pppppppcVar24;
  piStack_a68 = piVar27;
  pppppppcStack_a64 = pppppppcVar2;
  piStack_a60 = param_2;
  pppppppcStack_a5c = pppppppcVar29;
  piStack_a58 = piVar31;
  pcStack_a54 = pcVar32;
  ppppppcVar34 = (code ******)(*(code *)pppppcVar35[0x5d3f])(ppppppcVar33);
  iVar1 = (*(code *)pppppcStack_ac8[-0x1f07])(puVar17);
  puVar18 = (undefined1 *)((int)ppppppcVar34 + iVar1 + 2);
  piVar31 = piVar5;
  if (puVar18 < (undefined1 *)0x41) {
    uStack_abc = SUB41(pppppppcVar9,0);
    (*(code *)pppppcStack_ac8[-0x1efc])
              (&uStack_abb,ppppppcVar33,(undefined1 *)((int)ppppppcVar34 + 1),0x3f);
    puVar6 = (undefined1 *)((int)ppppppcVar34 + 2);
    ppppppcVar34 = (code ******)&uStack_abc;
    (*(code *)pppppcStack_ac8[-0x1ecb])
              ((undefined1 *)((int)ppppppcVar34 + (int)puVar6),puVar17,iVar1);
    ppppcVar10 = (code ****)0x7343414c;
    ppppppcVar14 = ppppppcVar34;
    puVar6 = puVar18;
    FUN_00039d28(piVar5,0x7343414c);
  }
  else {
    ppppcVar10 = pppppcStack_ac8[-0x1ff5] + 0x9b8;
    (*(code *)pppppcStack_ac8[-0x1eec])(piVar5,ppppcVar10);
  }
  if (pppcStack_a7c == *ppppcVar25) {
    return;
  }
  ppppcVar36 = pppppcStack_ac8[-0x1edb];
  pcVar32 = FUN_0003c02c;
  (*(code *)ppppcVar36)();
  ppppcStack_b08 = ppppcVar36 + 0x7bf1;
  pppcVar21 = ppppcVar36[0x5d24];
  ppcStack_af4 = *pppcVar21;
  pppcVar37 = ppppcVar36[0x5ced];
  puStack_af0 = puVar18;
  ppppppcStack_aec = ppppppcVar34;
  ppppcStack_ae8 = ppppcVar25;
  puStack_ae4 = puVar17;
  iStack_ae0 = iVar1;
  pcStack_adc = pcVar32;
  if (1 < (int)puVar6) {
    (*(code *)ppppcVar36[0x5d05])();
    pppcVar37 = ppppcStack_b08[-0x1f04];
  }
  (*(code *)pppcVar37)(&iStack_b00,ppppcVar10);
  (*(code *)ppppcStack_b08[-0x1f04])(auStack_afc,ppppppcVar14);
  piVar11 = (int *)&DAT_70485973;
  uStack_af8 = SUB41(puVar6,0);
  piVar27 = piVar31;
  piVar15 = &iStack_b00;
  FUN_00039d28();
  if (ppcStack_af4 == *pppcVar21) {
    return;
  }
  pppcVar37 = ppppcStack_b08[-0x1edb];
  pcVar32 = FUN_0003c120;
  (*(code *)pppcVar37)();
  pppcStack_b48 = pppcVar37 + 0x7bb4;
  ppcVar22 = pppcVar37[0x5ce7];
  pcStack_b34 = *ppcVar22;
  piVar19 = &iStack_b00;
  piVar7 = piVar27;
  piStack_b2c = &iStack_b00;
  pppcStack_b28 = pppcVar21;
  puStack_b24 = puVar6;
  piStack_b20 = piVar31;
  pcStack_b1c = pcVar32;
  if ((((*(byte *)((int)piVar11 + 2) - 1 < 0xc) && (piVar19 = piVar11, (byte)*piVar11 - 1 < 0x1f))
      && (*(byte *)(piVar11 + 1) < 0x18)) && (*(byte *)((int)piVar11 + 6) < 0x3d)) {
    piVar31 = &uStack_b3c;
    (*(code *)pppcVar37[0x5c80])(piVar31,*(undefined2 *)piVar11);
    uStack_b36 = *(undefined1 *)((int)piVar11 + 6);
    ppcVar12 = (code **)0x74494d45;
    uStack_b3c._2_2_ = (undefined2)*piVar11;
    uStack_b38 = *(undefined2 *)(piVar11 + 1);
    piVar15 = piVar31;
    FUN_00039d28();
  }
  else {
    ppcVar12 = pppcVar37[0x5bbf] + 0x9cb;
    (*(code *)pppcVar37[0x5cc8])();
    piVar11 = piVar19;
  }
  if (pcStack_b34 == *ppcVar22) {
    return;
  }
  ppcVar38 = pppcStack_b48[-0x1edb];
  pcVar42 = FUN_0003c240;
  (*(code *)ppcVar38)();
  ppcStack_b88 = ppcVar38 + 0x7b6c;
  pcVar32 = ppcVar38[0x5c9f];
  piVar7[0xc9] = (int)ppcVar12;
  iStack_b74 = *(int *)pcVar32;
  piStack_b6c = piVar11;
  ppcStack_b68 = ppcVar22;
  piStack_b64 = piVar27;
  piStack_b60 = piVar31;
  pcStack_b5c = pcVar42;
  (*ppcVar38[0x5c68])(auStack_b7c);
  (*ppcStack_b88[0xffffe0fc])(auStack_b78,piVar15);
  iVar8 = 8;
  iVar1 = 0x6163544c;
  piVar31 = piVar7;
  puVar17 = auStack_b7c;
  FUN_00039d28();
  if (iStack_b74 == *(int *)pcVar32) {
    return;
  }
  pcVar39 = ppcStack_b88[0xffffe125];
  uVar43 = 0x3c310;
  (*pcVar39)();
  pcVar42 = pcVar39 + 0x1ece0;
  puVar30 = *(undefined4 **)(pcVar39 + 0x171ac);
  piVar27 = (int *)*puVar30;
  uVar28 = (uint)uStack_b7e;
  pcStack_bf0 = pcVar42;
  piStack_bc4 = piVar27;
  puStack_bc0 = auStack_b7c;
  piStack_bbc = piVar7;
  pcStack_bb8 = pcVar32;
  piStack_bb4 = piVar15;
  ppppppcStack_bb0 = ppppppcVar14;
  piStack_bac = piVar5;
  ppppppcStack_ba8 = ppppppcVar33;
  pppppppcStack_ba4 = pppppppcVar9;
  piStack_ba0 = piVar20;
  uStack_b9c = uVar43;
  if (piVar31[0xca] == 0) {
    if (iVar8 == 0 && ppcStack_b88 == (code **)0x0) {
      if ((piVar31[0xc4] == iVar1) && ((undefined1 *)piVar31[0xc5] == puVar17)) goto LAB_0003c3a8;
    }
    else {
      (**(code **)(pcVar39 + 0x170fc))();
    }
    iVar13 = *(int *)(pcVar39 + 0x16d0c) + 0x2784;
    piVar20 = piVar31;
    (**(code **)(pcVar39 + 0x170fc))();
  }
  else {
LAB_0003c3a8:
    ppcStack_c08 = ppcStack_b88;
    uStack_c04 = (uint)uStack_b82;
    uStack_c00 = uVar28;
    uStack_bfc = (uint)bStack_b79;
    uStack_bf8 = (uint)bStack_b75;
    uStack_be4 = (uint)uStack_b82;
    FUN_00033984(piVar31,iVar1,puVar17,iVar8);
    (**(code **)(pcStack_bf0 + -0x7c10))(&iStack_be0,piVar31[0xc3]);
    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bdc,iVar1);
    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd8,puVar17);
    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd4,iVar8);
    (**(code **)(pcStack_bf0 + -0x7c10))(auStack_bd0,ppcStack_b88);
    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bcc,uStack_be4);
    (**(code **)(pcStack_bf0 + -0x7cd0))(auStack_bca,uVar28);
    iVar8 = 0x1a;
    iVar13 = 0x6663544c;
    bStack_bc8 = bStack_b79;
    bStack_bc7 = bStack_b75;
    piVar27 = &iStack_be0;
    FUN_00039d28(piVar31);
    piVar5 = (int *)*puVar30;
    piVar31[0xc3] = piVar31[0xc3] + 1;
    piVar20 = piStack_bc4;
    piVar7 = &iStack_be0;
    pcVar42 = pcStack_bf0;
    if (piStack_bc4 == piVar5) {
      return;
    }
  }
  pcVar32 = *(code **)(pcVar42 + -0x7b6c);
  pcVar42 = FUN_0003c510;
  (*pcVar32)();
  piVar5 = *(int **)(pcVar32 + 0x16fac);
  iStack_c34 = *piVar5;
  piStack_c30 = piVar31;
  piStack_c2c = piVar7;
  puStack_c28 = puVar17;
  iStack_c24 = iVar1;
  uStack_c20 = uVar28;
  pcStack_c1c = pcVar42;
  if (piVar20 != (int *)0x0) {
    FUN_00039938();
  }
  (**(code **)(pcVar32 + 0x16ed0))(auStack_c38,piVar20[0xc3]);
  (**(code **)(pcVar32 + 0x16fec))(piVar20,auStack_c38,4);
  (**(code **)(pcVar32 + 0x16fec))(piVar20);
  (**(code **)(pcVar32 + 0x16ef8))(piVar20);
  iVar1 = *piVar5;
  piVar20[0xc3] = piVar20[0xc3] + 1;
  if (iStack_c34 == iVar1) {
    return;
  }
  pcVar32 = *(code **)(pcVar32 + 0x16f74);
  iVar1 = iStack_c34;
  (*pcVar32)();
  if (*(int *)(iVar1 + 0x130) == 0x49444154) goto LAB_0003c6d0;
  if (*(int *)(iVar1 + 0x16c) == 0) goto LAB_0003c8fc;
  FUN_00039dec();
  while( true ) {
    uVar43 = FUN_00039150(iVar1);
    iVar3 = FUN_000392b8(iVar1,0x49444154,uVar43);
    if (iVar3 != 0) break;
    *(undefined4 *)(iVar1 + 0x144) = *(undefined4 *)(iVar1 + 0x170);
    *(int *)(iVar1 + 0x140) = *(int *)(iVar1 + 0x16c) + 4;
LAB_0003c6d0:
    *(int *)(iVar1 + 0x134) = iVar13;
    do {
      pcVar42 = *(code **)(pcVar32 + 0x16e48);
      do {
        *(int **)(iVar1 + 0x138) = piVar27;
        iVar13 = (*pcVar42)(iVar1 + 0x134,iVar8);
        piVar27 = *(int **)(iVar1 + 0x138);
        *(undefined4 *)(iVar1 + 0x138) = 0;
        if (*(int *)(iVar1 + 0x144) != 0) {
          if (iVar13 != 0) {
LAB_0003c7d4:
            if (iVar13 != 1) goto LAB_0003c944;
            pcVar42 = *(code **)(pcVar32 + 0x16bc8);
            if (iVar8 == 4) {
              iVar13 = *(int *)(iVar1 + 0x16c) + 4;
              iVar8 = *(int *)(iVar1 + 0x170) - *(int *)(iVar1 + 0x144);
              if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&
                 (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {
                FUN_000395ac(iVar13,uVar28);
              }
              if (iVar8 == 0) {
                uVar28 = *(uint *)(iVar1 + 0x124);
              }
              else if (*(int *)(iVar1 + 0x328) == 0) {
                FUN_00039d28(iVar1,0x49444154,iVar13,iVar8);
                uVar28 = *(uint *)(iVar1 + 0x124);
              }
              else {
                FUN_0003c510(iVar1,iVar13,iVar8);
                uVar28 = *(uint *)(iVar1 + 0x124);
              }
              *(undefined4 *)(iVar1 + 0x144) = 0;
              *(undefined4 *)(iVar1 + 0x140) = 0;
              *(undefined4 *)(iVar1 + 0x130) = 0;
              *(uint *)(iVar1 + 0x124) = uVar28 | 0xc;
              return;
            }
            goto LAB_0003c948;
          }
          break;
        }
        iVar41 = *(int *)(iVar1 + 0x170);
        iVar3 = *(int *)(iVar1 + 0x16c) + 4;
        if ((((*(uint *)(iVar1 + 0x124) & 4) == 0) && (*(char *)(iVar1 + 0x348) == '\0')) &&
           (uVar28 = FUN_00039150(iVar1), uVar28 < 0x4001)) {
          FUN_000395ac(iVar3,uVar28);
        }
        if (iVar41 != 0) {
          if (*(int *)(iVar1 + 0x328) == 0) {
            FUN_00039d28(iVar1,0x49444154,iVar3,iVar41);
          }
          else {
            FUN_0003c510(iVar1,iVar3,iVar41);
          }
        }
        *(int *)(iVar1 + 0x140) = iVar3;
        *(int *)(iVar1 + 0x144) = iVar41;
        *(uint *)(iVar1 + 0x124) = *(uint *)(iVar1 + 0x124) | 4;
        if (iVar13 != 0) goto LAB_0003c7d4;
        pcVar42 = *(code **)(pcVar32 + 0x16e48);
      } while (iVar8 != 0);
    } while (piVar27 != (int *)0x0);
    if (iVar8 != 4) {
      return;
    }
    (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(int *)(pcVar32 + 0x16a0c) + 0x27d0);
LAB_0003c8fc:
    puVar30 = (undefined4 *)(**(code **)(pcVar32 + 0x16cf8))();
    *(undefined4 **)(iVar1 + 0x16c) = puVar30;
    *puVar30 = 0;
  }
  (**(code **)(pcVar32 + 0x16dfc))(iVar1,*(undefined4 *)(iVar1 + 0x14c));
LAB_0003c944:
  pcVar42 = *(code **)(pcVar32 + 0x16bc8);
LAB_0003c948:
  (*pcVar42)(iVar1,iVar13);
  pcVar32 = *(code **)(pcVar32 + 0x16dfc);
  (*pcVar32)(iVar1,*(undefined4 *)(iVar1 + 0x14c));
  uVar28 = (uint)*(byte *)(iVar1 + 0x204) * (uint)*(byte *)(iVar1 + 0x201);
  if (uVar28 < 8) {
    uVar23 = *(int *)(iVar1 + 0x1b0) * uVar28 + 7 >> 3;
  }
  else {
    uVar23 = (uVar28 >> 3) * *(int *)(iVar1 + 0x1b0);
  }
  iVar13 = uVar23 + 1;
  pcVar42 = *(code **)(pcVar32 + 0x169a0);
  *(char *)(iVar1 + 0x206) = (char)uVar28;
  *(undefined1 *)(iVar1 + 0x207) = *(undefined1 *)(iVar1 + 0x202);
  puVar17 = (undefined1 *)(*pcVar42)(iVar1,iVar13);
  iVar8 = *(int *)(iVar1 + 0x1b4);
  uVar28 = (uint)*(byte *)(iVar1 + 0x1fe);
  *(undefined1 **)(iVar1 + 0x1d4) = puVar17;
  *puVar17 = 0;
  if (iVar8 == 1) {
    uVar28 = uVar28 & 0x1f;
  }
  iVar3 = *(int *)(iVar1 + 0x1b0);
  if (iVar3 == 1) {
    uVar28 = uVar28 & 0x2f;
  }
  if (uVar28 == 0) {
    *(undefined1 *)(iVar1 + 0x1fe) = 8;
    goto LAB_0003ca48;
  }
  cVar26 = (char)uVar28;
  *(char *)(iVar1 + 0x1fe) = cVar26;
  if (((uVar28 & 0xf0) == 0) || (*(int *)(iVar1 + 0x1d8) != 0)) {
LAB_0003ca24:
    pcVar42 = *(code **)(pcVar32 + 0x169c0);
    if ((uVar28 & 0xe0) == 0) {
      iVar8 = *(int *)(iVar1 + 0x1b4);
      iVar3 = *(int *)(iVar1 + 0x1b0);
      goto LAB_0003ca48;
    }
  }
  else {
    uVar43 = (**(code **)(pcVar32 + 0x169a0))(iVar1,iVar13);
    *(undefined4 *)(iVar1 + 0x1d8) = uVar43;
    iVar8 = -((int)(uVar28 << 0x1b) >> 0x1f);
    if ((uVar28 & 0x20) != 0) {
      iVar8 = iVar8 + 1;
    }
    if ((uVar28 & 0x40) != 0) {
      iVar8 = iVar8 + 1;
      if (-1 < cVar26) goto LAB_0003cb38;
LAB_0003cb08:
      pcVar42 = *(code **)(pcVar32 + 0x169a0);
LAB_0003cb10:
      uVar43 = (*pcVar42)(iVar1,iVar13);
      *(undefined4 *)(iVar1 + 0x1dc) = uVar43;
      goto LAB_0003ca24;
    }
    if (-1 < cVar26) {
LAB_0003cb38:
      pcVar42 = *(code **)(pcVar32 + 0x169a0);
      if (iVar8 < 2) goto LAB_0003ca24;
      goto LAB_0003cb10;
    }
    pcVar42 = *(code **)(pcVar32 + 0x169c0);
    if (iVar8 != 0) goto LAB_0003cb08;
  }
  uVar43 = (*pcVar42)(iVar1,iVar13);
  iVar8 = *(int *)(iVar1 + 0x1b4);
  iVar3 = *(int *)(iVar1 + 0x1b0);
  *(undefined4 *)(iVar1 + 0x1d0) = uVar43;
LAB_0003ca48:
  if ((*(char *)(iVar1 + 0x1fc) != '\0') && ((*(uint *)(iVar1 + 300) & 2) == 0)) {
    *(uint *)(iVar1 + 0x1b8) = iVar8 + 7U >> 3;
    *(uint *)(iVar1 + 0x1bc) = iVar3 + 7U >> 3;
    return;
  }
  *(int *)(iVar1 + 0x1b8) = iVar8;
  *(int *)(iVar1 + 0x1bc) = iVar3;
  return;
}

