
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */

MagickBooleanType DefineImageOption(ImageInfo *image_info,char *option)

{
  MagickBooleanType MVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  undefined4 *puVar7;
  int iVar8;
  undefined4 uVar9;
  undefined4 *puVar10;
  uint *puVar11;
  undefined4 *puVar12;
  int iVar13;
  undefined4 uVar14;
  uint uVar15;
  undefined *puVar16;
  int *piVar17;
  int iVar18;
  char *pcVar19;
  int *piVar20;
  uint *puVar21;
  int iVar22;
  uint uVar23;
  int iVar24;
  uint uVar25;
  undefined *puVar26;
  code *pcVar27;
  int iVar28;
  double dVar29;
  double dVar30;
  double dVar31;
  double dVar32;
  double dVar33;
  int iVar34;
  uint uStack_20b8;
  int iStack_20b4;
  int iStack_20ac;
  MagickBooleanType MStack_20a8;
  char key [4096];
  char value [4096];
  
  puVar26 = PTR___stack_chk_guard_003a9230;
  iVar8 = *(int *)PTR___stack_chk_guard_003a9230;
  puVar16 = PTR_s_t_to_left_003a88e4;
  if (image_info != (ImageInfo *)0x0) {
    if (option != (char *)0x0) {
      (*(code *)PTR_CopyMagickString_003a983c)(key,option,0x1000);
      pcVar19 = key;
      while (key[0] != '\0') {
        if (key[0] == '=') {
          value[0] = '\0';
          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);
          goto LAB_00122d50;
        }
        pcVar19 = pcVar19 + 1;
        key[0] = *pcVar19;
      }
      value[0] = '\0';
LAB_00122d50:
      *pcVar19 = '\0';
      MVar1 = (*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value);
      if (iVar8 == *(int *)puVar26) {
        return MVar1;
      }
      (*(code *)PTR___stack_chk_fail_003a9064)();
    }
    puVar16 = puVar16 + -0x1254;
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,
               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar16);
  }
  puVar10 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);
  puVar26 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar10,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar16 + -0x1254);
  iVar28 = puVar10[3];
  iVar8 = (**(code **)(puVar26 + 0x286afc))();
  iVar2 = (**(code **)(puVar26 + 0x2866f8))();
  if (iVar8 == 0) {
    trap(7);
  }
  iVar34 = *(int *)(iVar28 + 0x1c) / iVar8;
  iVar8 = *(int *)(iVar28 + 0x1c) % iVar8;
  if (iVar2 < iVar8) {
    iVar34 = iVar34 + 1;
    iVar8 = 0;
  }
  MVar1 = iVar34 * iVar2 + iVar8;
  MStack_20a8 = (MagickBooleanType)((int)MVar1 < (int)(iVar34 + MVar1));
  if (MStack_20a8 != MagickFalse) {
    uVar23 = puVar10[6];
    dVar32 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5af0);
    iVar8 = puVar10[7];
    iVar13 = puVar10[4];
    iVar2 = puVar10[5];
    uVar14 = puVar10[2];
    dVar33 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1400);
    uVar3 = *puVar10;
    uVar9 = puVar10[1];
    MStack_20a8 = MVar1;
    do {
      if (puVar10[8] != 0) {
        iVar4 = (**(code **)(puVar26 + 0x28684c))
                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),
                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);
        iStack_20b4 = (**(code **)(puVar26 + 0x285e40))
                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);
        if ((iVar4 == 0) || (iStack_20b4 == 0)) {
LAB_0012325c:
          puVar10[8] = 0;
        }
        else {
          iVar5 = (**(code **)(puVar26 + 0x2866f8))();
          puVar21 = *(uint **)(iVar2 + iVar5 * 4);
          if (0 < *(int *)(iVar28 + 0x18)) {
            iStack_20ac = 0;
            do {
              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);
              if ((int)uVar23 < 1) {
                iVar24 = *(int *)(iVar28 + 0x18);
                iVar5 = 0;
              }
              else {
                uVar25 = 0;
                iVar5 = 0;
                uStack_20b8 = 0;
                iVar22 = 0;
                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);
                do {
                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);
                  iVar24 = iVar22;
                  do {
                    while( true ) {
                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))
                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +
                                                         iVar4);
                      if (0.0 < (float)dVar29) break;
                      uVar15 = *puVar21 + 1;
                      *puVar21 = uVar15;
                      if (uVar25 < uVar15) {
                        iVar5 = iVar24;
                      }
                      iVar24 = iVar24 + 1;
                      if (uVar25 < uVar15) {
                        uVar25 = uVar15;
                      }
                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;
                    }
                    dVar29 = (double)(float)dVar29 / dVar32;
                    puVar11 = puVar21 + 0xff;
                    if (dVar29 < dVar31) {
                      dVar29 = dVar29 + dVar33;
                      if (dVar30 <= dVar29) {
                        dVar29 = dVar29 - dVar30;
                      }
                      puVar11 = puVar21 + ((int)dVar29 & 0xff);
                    }
                    uVar15 = *puVar11 + 1;
                    *puVar11 = uVar15;
                    if (uVar25 < uVar15) {
                      iVar5 = iVar24;
                    }
                    iVar24 = iVar24 + 1;
                    if (uVar25 < uVar15) {
                      uVar25 = uVar15;
                    }
                  } while (uVar23 + iVar22 != iVar24);
LAB_001230d8:
                  iVar24 = *(int *)(iVar28 + 0x18);
                  uStack_20b8 = uStack_20b8 + 1;
                  iVar22 = iVar22 + uVar23 + iVar24;
                } while (uVar23 != uStack_20b8);
              }
              iVar22 = *(int *)(iVar28 + 0x2c0);
              if (0 < iVar22) {
                piVar17 = *(int **)(iVar28 + 0x2d0);
                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);
                iVar18 = *(int *)(iVar13 + 0x2d0);
                piVar20 = piVar17;
                do {
                  iVar6 = iVar18 + *piVar20 * 0xc;
                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&
                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {
                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);
                    if ((uVar25 & 1) == 0) {
                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);
                    }
                    else {
                      *puVar7 = *puVar12;
                    }
                  }
                  piVar20 = piVar20 + 3;
                  puVar12 = puVar12 + 1;
                } while (piVar17 + iVar22 * 3 != piVar20);
              }
              iVar4 = iVar4 + iVar22 * 4;
              iStack_20ac = iStack_20ac + 1;
              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;
            } while (iStack_20ac < iVar24);
          }
          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);
          if (iVar4 == 0) {
            puVar10[8] = 0;
          }
          if (*(int *)(iVar28 + 0x328) != 0) {
            piVar20 = (int *)puVar10[9];
            (**(code **)(puVar26 + 0x2864d4))();
            uVar25 = piVar20[1];
            pcVar27 = *(code **)(puVar26 + 0x286628);
            uVar15 = uVar25 + 1;
            piVar20[1] = uVar15;
            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;
            (*pcVar27)();
            iVar4 = (**(code **)(puVar26 + 0x285ea4))
                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,
                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,
                               *(undefined4 *)(iVar28 + 0x1c));
            if (iVar4 == 0) goto LAB_0012325c;
          }
        }
      }
      MStack_20a8 = MStack_20a8 + MagickTrue;
    } while (iVar34 + MVar1 != MStack_20a8);
  }
  return MStack_20a8;
}



void DefineImageOption(int param_1,int param_2)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  undefined4 uVar7;
  undefined4 *puVar8;
  int iVar9;
  uint *puVar10;
  undefined4 *puVar11;
  int iVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined *puVar15;
  int *piVar16;
  int iVar17;
  char *pcVar18;
  int *piVar19;
  uint *puVar20;
  int iVar21;
  uint uVar22;
  int iVar23;
  uint uVar24;
  undefined *puVar25;
  code *pcVar26;
  int iVar27;
  double dVar28;
  double dVar29;
  double dVar30;
  double dVar31;
  double dVar32;
  int iVar33;
  uint uStack_20b8;
  int iStack_20b4;
  int iStack_20ac;
  int iStack_20a8;
  char local_201c;
  char local_201b [4095];
  undefined1 local_101c [4096];
  int local_1c;
  
  puVar25 = PTR___stack_chk_guard_003a9230;
  local_1c = *(int *)PTR___stack_chk_guard_003a9230;
  puVar15 = PTR_s_t_to_left_003a88e4;
  if (param_1 != 0) {
    if (param_2 != 0) {
      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);
      pcVar18 = &local_201c;
      while (local_201c != '\0') {
        if (local_201c == '=') {
          local_101c[0] = 0;
          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);
          goto LAB_00122d50;
        }
        pcVar18 = pcVar18 + 1;
        local_201c = *pcVar18;
      }
      local_101c[0] = 0;
LAB_00122d50:
      *pcVar18 = '\0';
      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);
      if (local_1c == *(int *)puVar25) {
        return;
      }
      (*(code *)PTR___stack_chk_fail_003a9064)();
    }
    puVar15 = puVar15 + -0x1254;
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,
               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);
  }
  puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);
  puVar25 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);
  iVar27 = puVar8[3];
  iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();
  iVar1 = (**(code **)(puVar25 + 0x2866f8))();
  if (iStack_20a8 == 0) {
    trap(7);
  }
  iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;
  iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;
  if (iVar1 < iStack_20a8) {
    iVar33 = iVar33 + 1;
    iStack_20a8 = 0;
  }
  iStack_20a8 = iVar33 * iVar1 + iStack_20a8;
  iVar33 = iVar33 + iStack_20a8;
  if (iStack_20a8 < iVar33) {
    uVar22 = puVar8[6];
    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);
    iVar1 = puVar8[7];
    iVar12 = puVar8[4];
    iVar9 = puVar8[5];
    uVar13 = puVar8[2];
    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);
    uVar2 = *puVar8;
    uVar7 = puVar8[1];
    do {
      if (puVar8[8] != 0) {
        iVar3 = (**(code **)(puVar25 + 0x28684c))
                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),
                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);
        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))
                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);
        if ((iVar3 == 0) || (iStack_20b4 == 0)) {
LAB_0012325c:
          puVar8[8] = 0;
        }
        else {
          iVar4 = (**(code **)(puVar25 + 0x2866f8))();
          puVar20 = *(uint **)(iVar9 + iVar4 * 4);
          if (0 < *(int *)(iVar27 + 0x18)) {
            iStack_20ac = 0;
            do {
              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);
              if ((int)uVar22 < 1) {
                iVar23 = *(int *)(iVar27 + 0x18);
                iVar4 = 0;
              }
              else {
                uVar24 = 0;
                iVar4 = 0;
                uStack_20b8 = 0;
                iVar21 = 0;
                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);
                do {
                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);
                  iVar23 = iVar21;
                  do {
                    while( true ) {
                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))
                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +
                                                         iVar3);
                      if (0.0 < (float)dVar28) break;
                      uVar14 = *puVar20 + 1;
                      *puVar20 = uVar14;
                      if (uVar24 < uVar14) {
                        iVar4 = iVar23;
                      }
                      iVar23 = iVar23 + 1;
                      if (uVar24 < uVar14) {
                        uVar24 = uVar14;
                      }
                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;
                    }
                    dVar28 = (double)(float)dVar28 / dVar31;
                    puVar10 = puVar20 + 0xff;
                    if (dVar28 < dVar30) {
                      dVar28 = dVar28 + dVar32;
                      if (dVar29 <= dVar28) {
                        dVar28 = dVar28 - dVar29;
                      }
                      puVar10 = puVar20 + ((int)dVar28 & 0xff);
                    }
                    uVar14 = *puVar10 + 1;
                    *puVar10 = uVar14;
                    if (uVar24 < uVar14) {
                      iVar4 = iVar23;
                    }
                    iVar23 = iVar23 + 1;
                    if (uVar24 < uVar14) {
                      uVar24 = uVar14;
                    }
                  } while (uVar22 + iVar21 != iVar23);
LAB_001230d8:
                  iVar23 = *(int *)(iVar27 + 0x18);
                  uStack_20b8 = uStack_20b8 + 1;
                  iVar21 = iVar21 + uVar22 + iVar23;
                } while (uVar22 != uStack_20b8);
              }
              iVar21 = *(int *)(iVar27 + 0x2c0);
              if (0 < iVar21) {
                piVar16 = *(int **)(iVar27 + 0x2d0);
                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);
                iVar17 = *(int *)(iVar12 + 0x2d0);
                piVar19 = piVar16;
                do {
                  iVar5 = iVar17 + *piVar19 * 0xc;
                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&
                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {
                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);
                    if ((uVar24 & 1) == 0) {
                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);
                    }
                    else {
                      *puVar6 = *puVar11;
                    }
                  }
                  piVar19 = piVar19 + 3;
                  puVar11 = puVar11 + 1;
                } while (piVar16 + iVar21 * 3 != piVar19);
              }
              iVar3 = iVar3 + iVar21 * 4;
              iStack_20ac = iStack_20ac + 1;
              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;
            } while (iStack_20ac < iVar23);
          }
          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);
          if (iVar3 == 0) {
            puVar8[8] = 0;
          }
          if (*(int *)(iVar27 + 0x328) != 0) {
            piVar19 = (int *)puVar8[9];
            (**(code **)(puVar25 + 0x2864d4))();
            uVar24 = piVar19[1];
            pcVar26 = *(code **)(puVar25 + 0x286628);
            uVar14 = uVar24 + 1;
            piVar19[1] = uVar14;
            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;
            (*pcVar26)();
            iVar3 = (**(code **)(puVar25 + 0x285ea4))
                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]
                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));
            if (iVar3 == 0) goto LAB_0012325c;
          }
        }
      }
      iStack_20a8 = iStack_20a8 + 1;
    } while (iVar33 != iStack_20a8);
  }
  return;
}


lui gp,0x29
addiu gp,gp,-0x2404
addu gp,gp,t9
addiu sp,sp,-0x2038
sw s3,0x202c(sp)
lw s3,-0x7680(gp)
sw gp,0x10(sp)
sw ra,0x2034(sp)
sw s4,0x2030(sp)
sw s2,0x2028(sp)
sw s1,0x2024(sp)
sw s0,0x2020(sp)
lw v1,0x0(s3)
sw v1,0x201c(sp)
beq a0,zero,0x00122dec
_lw a3,-0x7fcc(gp)
beq a1,zero,0x00122dcc
_lw t9,-0x7074(gp)
addiu s1,sp,0x1c
li a2,0x1000
or s2,a0,zero
jalr t9
_or a0,s1,zero
lb v0,0x1c(sp)
beq v0,zero,0x00122db8
_lw gp,0x10(sp)
li v1,0x3d
bne v0,v1,0x00122d38
_or s0,s1,zero
b 0x00122d98
_lw t9,-0x7074(gp)
beq v0,v1,0x00122d98
_lw t9,-0x7074(gp)
addiu s0,s0,0x1
lb v0,0x0(s0)
bne v0,zero,0x00122d30
_nop
addiu s4,sp,0x101c
sb zero,0x101c(sp)
lw t9,-0x7c30(gp)
or a0,s2,zero
or a2,s4,zero
sb zero,0x0(s0)
jalr t9
_or a1,s1,zero
lw a0,0x201c(sp)
lw v1,0x0(s3)
bne a0,v1,0x00122dc0
_lw gp,0x10(sp)
lw ra,0x2034(sp)
lw s4,0x2030(sp)
lw s3,0x202c(sp)
lw s2,0x2028(sp)
lw s1,0x2024(sp)
lw s0,0x2020(sp)
jr ra
_addiu sp,sp,0x2038
addiu s4,sp,0x101c
li a2,0x1000
sb zero,0x101c(sp)
addiu a1,s0,0x1
jalr t9
_or a0,s4,zero
b 0x00122d50
_lw gp,0x10(sp)
b 0x00122d48
_or s0,s1,zero
lw t9,-0x784c(gp)
jalr t9
_nop
li a2,0x89e
lw a1,-0x7fcc(gp)
lw a0,-0x7fc8(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x1254
addiu a1,a1,-0x1210
jalr t9
_addiu a0,a0,-0x1c88
li a2,0x89d
lw a1,-0x7fcc(gp)
lw a0,-0x7fd0(gp)
lw t9,-0x72a8(gp)
addiu a3,a3,-0x1254
addiu a1,a1,-0x1210
jalr t9
_addiu a0,a0,0x1c88
nop
(translation_unit "void DefineImageOption(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  undefined *puVar15;\n  int *piVar16;\n  int iVar17;\n  char *pcVar18;\n  int *piVar19;\n  uint *puVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  int iVar33;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  int iStack_20a8;\n  char local_201c;\n  char local_201b [4095];\n  undefined1 local_101c [4096];\n  int local_1c;\n  \n  puVar25 = PTR___stack_chk_guard_003a9230;\n  local_1c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar15 = PTR_s_t_to_left_003a88e4;\n  if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }\n  puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar25 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);\n  iVar27 = puVar8[3];\n  iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();\n  iVar1 = (**(code **)(puVar25 + 0x2866f8))();\n  if (iStack_20a8 == 0) {\n    trap(7);\n  }\n  iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;\n  iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;\n  if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }\n  iStack_20a8 = iVar33 * iVar1 + iStack_20a8;\n  iVar33 = iVar33 + iStack_20a8;\n  if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }\n  return;\n}\n\n" (function_definition "void DefineImageOption(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  undefined *puVar15;\n  int *piVar16;\n  int iVar17;\n  char *pcVar18;\n  int *piVar19;\n  uint *puVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  int iVar33;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  int iStack_20a8;\n  char local_201c;\n  char local_201b [4095];\n  undefined1 local_101c [4096];\n  int local_1c;\n  \n  puVar25 = PTR___stack_chk_guard_003a9230;\n  local_1c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar15 = PTR_s_t_to_left_003a88e4;\n  if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }\n  puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar25 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);\n  iVar27 = puVar8[3];\n  iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();\n  iVar1 = (**(code **)(puVar25 + 0x2866f8))();\n  if (iStack_20a8 == 0) {\n    trap(7);\n  }\n  iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;\n  iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;\n  if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }\n  iStack_20a8 = iVar33 * iVar1 + iStack_20a8;\n  iVar33 = iVar33 + iStack_20a8;\n  if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }\n  return;\n}" primitive_type (function_declarator "DefineImageOption(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  undefined *puVar15;\n  int *piVar16;\n  int iVar17;\n  char *pcVar18;\n  int *piVar19;\n  uint *puVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  int iVar33;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  int iStack_20a8;\n  char local_201c;\n  char local_201b [4095];\n  undefined1 local_101c [4096];\n  int local_1c;\n  \n  puVar25 = PTR___stack_chk_guard_003a9230;\n  local_1c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar15 = PTR_s_t_to_left_003a88e4;\n  if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }\n  puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar25 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);\n  iVar27 = puVar8[3];\n  iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();\n  iVar1 = (**(code **)(puVar25 + 0x2866f8))();\n  if (iStack_20a8 == 0) {\n    trap(7);\n  }\n  iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;\n  iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;\n  if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }\n  iStack_20a8 = iVar33 * iVar1 + iStack_20a8;\n  iVar33 = iVar33 + iStack_20a8;\n  if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "uint uStack_20b8;" type_identifier identifier ;) (declaration "int iStack_20b4;" primitive_type identifier ;) (declaration "int iStack_20ac;" primitive_type identifier ;) (declaration "int iStack_20a8;" primitive_type identifier ;) (declaration "char local_201c;" primitive_type identifier ;) (declaration "char local_201b [4095];" primitive_type (array_declarator "local_201b [4095]" identifier [ number_literal ]) ;) (declaration "undefined1 local_101c [4096];" type_identifier (array_declarator "local_101c [4096]" identifier [ number_literal ]) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar25 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar25 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar15 = PTR_s_t_to_left_003a88e4;" (assignment_expression "puVar15 = PTR_s_t_to_left_003a88e4" identifier = identifier) ;) (if_statement "if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }" { (if_statement "if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }" { (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_201c,param_2,0x1000)" ( (pointer_expression "&local_201c" & identifier) , identifier , number_literal ))) ;) (expression_statement "pcVar18 = &local_201c;" (assignment_expression "pcVar18 = &local_201c" identifier = (pointer_expression "&local_201c" & identifier)) ;) (while_statement "while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }" while (parenthesized_expression "(local_201c != '\0')" ( (binary_expression "local_201c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }" { (if_statement "if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }" if (parenthesized_expression "(local_201c == '=')" ( (binary_expression "local_201c == '='" identifier == (char_literal "'='" ' character ')) )) (compound_statement "{\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }" { (expression_statement "local_101c[0] = 0;" (assignment_expression "local_101c[0] = 0" (subscript_expression "local_101c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_101c,pcVar18 + 1,0x1000)" ( identifier , (binary_expression "pcVar18 + 1" identifier + number_literal) , number_literal ))) ;) (goto_statement "goto LAB_00122d50;" goto statement_identifier ;) })) (expression_statement "pcVar18 = pcVar18 + 1;" (assignment_expression "pcVar18 = pcVar18 + 1" identifier = (binary_expression "pcVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_201c = *pcVar18;" (assignment_expression "local_201c = *pcVar18" identifier = (pointer_expression "*pcVar18" * identifier)) ;) })) (expression_statement "local_101c[0] = 0;" (assignment_expression "local_101c[0] = 0" (subscript_expression "local_101c[0]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00122d50:\n      *pcVar18 = '\0';" statement_identifier : (expression_statement "*pcVar18 = '\0';" (assignment_expression "*pcVar18 = '\0'" (pointer_expression "*pcVar18" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "(*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);" (call_expression "(*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c)" (parenthesized_expression "(*(code *)PTR_SetImageOption_003a8c80)" ( (pointer_expression "*(code *)PTR_SetImageOption_003a8c80" * (cast_expression "(code *)PTR_SetImageOption_003a8c80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_201c,local_101c)" ( identifier , (pointer_expression "&local_201c" & identifier) , identifier ))) ;) (if_statement "if (local_1c == *(int *)puVar25) {\n        return;\n      }" if (parenthesized_expression "(local_1c == *(int *)puVar25)" ( (binary_expression "local_1c == *(int *)puVar25" identifier == (pointer_expression "*(int *)puVar25" * (cast_expression "(int *)puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "puVar15 = puVar15 + -0x1254;" (assignment_expression "puVar15 = puVar15 + -0x1254" identifier = (binary_expression "puVar15 + -0x1254" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x1210" identifier + number_literal) , number_literal , identifier ))) ;) })) (expression_statement "puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);" (assignment_expression "puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88)" identifier = (cast_expression "(undefined4 *)(PTR_LAB_003a88e0 + 0x1c88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1c88)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1c88" identifier + number_literal) )))) ;) (expression_statement "puVar25 = PTR___assert_fail_003a9608;" (assignment_expression "puVar25 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x1210" identifier + number_literal) , number_literal , (binary_expression "puVar15 + -0x1254" identifier + number_literal) ))) ;) (expression_statement "iVar27 = puVar8[3];" (assignment_expression "iVar27 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();" (assignment_expression "iStack_20a8 = (**(code **)(puVar25 + 0x286afc))()" identifier = (call_expression "(**(code **)(puVar25 + 0x286afc))()" (parenthesized_expression "(**(code **)(puVar25 + 0x286afc))" ( (pointer_expression "**(code **)(puVar25 + 0x286afc)" * (pointer_expression "*(code **)(puVar25 + 0x286afc)" * (cast_expression "(code **)(puVar25 + 0x286afc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x286afc)" ( (binary_expression "puVar25 + 0x286afc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar1 = (**(code **)(puVar25 + 0x2866f8))();" (assignment_expression "iVar1 = (**(code **)(puVar25 + 0x2866f8))()" identifier = (call_expression "(**(code **)(puVar25 + 0x2866f8))()" (parenthesized_expression "(**(code **)(puVar25 + 0x2866f8))" ( (pointer_expression "**(code **)(puVar25 + 0x2866f8)" * (pointer_expression "*(code **)(puVar25 + 0x2866f8)" * (cast_expression "(code **)(puVar25 + 0x2866f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x2866f8)" ( (binary_expression "puVar25 + 0x2866f8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iStack_20a8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iStack_20a8 == 0)" ( (binary_expression "iStack_20a8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;" (assignment_expression "iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8" identifier = (binary_expression "*(int *)(iVar27 + 0x1c) / iStack_20a8" (pointer_expression "*(int *)(iVar27 + 0x1c)" * (cast_expression "(int *)(iVar27 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x1c)" ( (binary_expression "iVar27 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;" (assignment_expression "iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8" identifier = (binary_expression "*(int *)(iVar27 + 0x1c) % iStack_20a8" (pointer_expression "*(int *)(iVar27 + 0x1c)" * (cast_expression "(int *)(iVar27 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x1c)" ( (binary_expression "iVar27 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }" if (parenthesized_expression "(iVar1 < iStack_20a8)" ( (binary_expression "iVar1 < iStack_20a8" identifier < identifier) )) (compound_statement "{\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }" { (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "iStack_20a8 = 0;" (assignment_expression "iStack_20a8 = 0" identifier = number_literal) ;) })) (expression_statement "iStack_20a8 = iVar33 * iVar1 + iStack_20a8;" (assignment_expression "iStack_20a8 = iVar33 * iVar1 + iStack_20a8" identifier = (binary_expression "iVar33 * iVar1 + iStack_20a8" (binary_expression "iVar33 * iVar1" identifier * identifier) + identifier)) ;) (expression_statement "iVar33 = iVar33 + iStack_20a8;" (assignment_expression "iVar33 = iVar33 + iStack_20a8" identifier = (binary_expression "iVar33 + iStack_20a8" identifier + identifier)) ;) (if_statement "if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }" if (parenthesized_expression "(iStack_20a8 < iVar33)" ( (binary_expression "iStack_20a8 < iVar33" identifier < identifier) )) (compound_statement "{\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }" { (expression_statement "uVar22 = puVar8[6];" (assignment_expression "uVar22 = puVar8[6]" identifier = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);" (assignment_expression "dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" identifier = (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" * (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" ( (binary_expression "*(int *)(puVar25 + 0x285ad8) + -0x5af0" (pointer_expression "*(int *)(puVar25 + 0x285ad8)" * (cast_expression "(int *)(puVar25 + 0x285ad8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x285ad8)" ( (binary_expression "puVar25 + 0x285ad8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar1 = puVar8[7];" (assignment_expression "iVar1 = puVar8[7]" identifier = (subscript_expression "puVar8[7]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = puVar8[4];" (assignment_expression "iVar12 = puVar8[4]" identifier = (subscript_expression "puVar8[4]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = puVar8[5];" (assignment_expression "iVar9 = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar8[2];" (assignment_expression "uVar13 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);" (assignment_expression "dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400)" identifier = (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x285ad0) + 0x1400)" ( (binary_expression "*(int *)(puVar25 + 0x285ad0) + 0x1400" (pointer_expression "*(int *)(puVar25 + 0x285ad0)" * (cast_expression "(int *)(puVar25 + 0x285ad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x285ad0)" ( (binary_expression "puVar25 + 0x285ad0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar2 = *puVar8;" (assignment_expression "uVar2 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "uVar7 = puVar8[1];" (assignment_expression "uVar7 = puVar8[1]" identifier = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);" do (compound_statement "{\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    }" { (if_statement "if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }" if (parenthesized_expression "(puVar8[8] != 0)" ( (binary_expression "puVar8[8] != 0" (subscript_expression "puVar8[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }" { (expression_statement "iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2)" identifier = (call_expression "(**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2)" (parenthesized_expression "(**(code **)(puVar25 + 0x28684c))" ( (pointer_expression "**(code **)(puVar25 + 0x28684c)" * (pointer_expression "*(code **)(puVar25 + 0x28684c)" * (cast_expression "(code **)(puVar25 + 0x28684c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x28684c)" ( (binary_expression "puVar25 + 0x28684c" identifier + number_literal) ))))) )) (argument_list "(uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2)" ( identifier , (unary_expression "-((int)uVar22 / 2)" - (parenthesized_expression "((int)uVar22 / 2)" ( (binary_expression "(int)uVar22 / 2" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) ))) , (binary_expression "iStack_20a8 - (uVar22 >> 1)" identifier - (parenthesized_expression "(uVar22 >> 1)" ( (binary_expression "uVar22 >> 1" identifier >> number_literal) ))) , (binary_expression "uVar22 + *(int *)(iVar27 + 0x18)" identifier + (pointer_expression "*(int *)(iVar27 + 0x18)" * (cast_expression "(int *)(iVar27 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x18)" ( (binary_expression "iVar27 + 0x18" identifier + number_literal) ))))) , identifier , identifier )))) ;) (expression_statement "iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);" (assignment_expression "iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2)" identifier = (call_expression "(**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2)" (parenthesized_expression "(**(code **)(puVar25 + 0x285e40))" ( (pointer_expression "**(code **)(puVar25 + 0x285e40)" * (pointer_expression "*(code **)(puVar25 + 0x285e40)" * (cast_expression "(code **)(puVar25 + 0x285e40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x285e40)" ( (binary_expression "puVar25 + 0x285e40" identifier + number_literal) ))))) )) (argument_list "(uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }" if (parenthesized_expression "((iVar3 == 0) || (iStack_20b4 == 0))" ( (binary_expression "(iVar3 == 0) || (iStack_20b4 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_20b4 == 0)" ( (binary_expression "iStack_20b4 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_0012325c:\n          puVar8[8] = 0;\n        }" { (labeled_statement "LAB_0012325c:\n          puVar8[8] = 0;" statement_identifier : (expression_statement "puVar8[8] = 0;" (assignment_expression "puVar8[8] = 0" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = number_literal) ;)) }) (else_clause "else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }" else (compound_statement "{\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }" { (expression_statement "iVar4 = (**(code **)(puVar25 + 0x2866f8))();" (assignment_expression "iVar4 = (**(code **)(puVar25 + 0x2866f8))()" identifier = (call_expression "(**(code **)(puVar25 + 0x2866f8))()" (parenthesized_expression "(**(code **)(puVar25 + 0x2866f8))" ( (pointer_expression "**(code **)(puVar25 + 0x2866f8)" * (pointer_expression "*(code **)(puVar25 + 0x2866f8)" * (cast_expression "(code **)(puVar25 + 0x2866f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x2866f8)" ( (binary_expression "puVar25 + 0x2866f8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "puVar20 = *(uint **)(iVar9 + iVar4 * 4);" (assignment_expression "puVar20 = *(uint **)(iVar9 + iVar4 * 4)" identifier = (pointer_expression "*(uint **)(iVar9 + iVar4 * 4)" * (cast_expression "(uint **)(iVar9 + iVar4 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + iVar4 * 4)" ( (binary_expression "iVar9 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }" if (parenthesized_expression "(0 < *(int *)(iVar27 + 0x18))" ( (binary_expression "0 < *(int *)(iVar27 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar27 + 0x18)" * (cast_expression "(int *)(iVar27 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x18)" ( (binary_expression "iVar27 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }" { (expression_statement "iStack_20ac = 0;" (assignment_expression "iStack_20ac = 0" identifier = number_literal) ;) (do_statement "do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);" do (compound_statement "{\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            }" { (expression_statement "(**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);" (call_expression "(**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400)" (parenthesized_expression "(**(code **)(puVar25 + 0x2868c4))" ( (pointer_expression "**(code **)(puVar25 + 0x2868c4)" * (pointer_expression "*(code **)(puVar25 + 0x2868c4)" * (cast_expression "(code **)(puVar25 + 0x2868c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x2868c4)" ( (binary_expression "puVar25 + 0x2868c4" identifier + number_literal) ))))) )) (argument_list "(puVar20,0,0x400)" ( identifier , number_literal , number_literal ))) ;) (if_statement "if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }" if (parenthesized_expression "((int)uVar22 < 1)" ( (binary_expression "(int)uVar22 < 1" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }" { (expression_statement "iVar23 = *(int *)(iVar27 + 0x18);" (assignment_expression "iVar23 = *(int *)(iVar27 + 0x18)" identifier = (pointer_expression "*(int *)(iVar27 + 0x18)" * (cast_expression "(int *)(iVar27 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x18)" ( (binary_expression "iVar27 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }" else (compound_statement "{\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "uStack_20b8 = 0;" (assignment_expression "uStack_20b8 = 0" identifier = number_literal) ;) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (expression_statement "dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);" (assignment_expression "dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" * (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" ( (binary_expression "*(int *)(puVar25 + 0x285ad8) + -0x5ae8" (pointer_expression "*(int *)(puVar25 + 0x285ad8)" * (cast_expression "(int *)(puVar25 + 0x285ad8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x285ad8)" ( (binary_expression "puVar25 + 0x285ad8" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);" do (compound_statement "{\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                }" { (expression_statement "dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);" (assignment_expression "dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410)" identifier = (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410)" * (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x285ad0) + 0x1410)" ( (binary_expression "*(int *)(puVar25 + 0x285ad0) + 0x1410" (pointer_expression "*(int *)(puVar25 + 0x285ad0)" * (cast_expression "(int *)(puVar25 + 0x285ad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x285ad0)" ( (binary_expression "puVar25 + 0x285ad0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar23 = iVar21;" (assignment_expression "iVar23 = iVar21" identifier = identifier) ;) (do_statement "do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);" do (compound_statement "{\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  }" { (while_statement "while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }" { (expression_statement "dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);" (assignment_expression "dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" identifier = (cast_expression "(double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" (parenthesized_expression "(**(code **)(puVar25 + 0x286048))" ( (pointer_expression "**(code **)(puVar25 + 0x286048)" * (pointer_expression "*(code **)(puVar25 + 0x286048)" * (cast_expression "(code **)(puVar25 + 0x286048)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x286048)" ( (binary_expression "puVar25 + 0x286048" identifier + number_literal) ))))) )) (argument_list "(iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" ( identifier , (binary_expression "*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3" (binary_expression "*(int *)(iVar27 + 0x2c0) * 4 * iVar23" (binary_expression "*(int *)(iVar27 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar27 + 0x2c0)" * (cast_expression "(int *)(iVar27 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x2c0)" ( (binary_expression "iVar27 + 0x2c0" identifier + number_literal) )))) * number_literal) * identifier) + identifier) ))))) ;) (if_statement "if (0.0 < (float)dVar28) break;" if (parenthesized_expression "(0.0 < (float)dVar28)" ( (binary_expression "0.0 < (float)dVar28" number_literal < (cast_expression "(float)dVar28" ( (type_descriptor "float" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar14 = *puVar20 + 1;" (assignment_expression "uVar14 = *puVar20 + 1" identifier = (binary_expression "*puVar20 + 1" (pointer_expression "*puVar20" * identifier) + number_literal)) ;) (expression_statement "*puVar20 = uVar14;" (assignment_expression "*puVar20 = uVar14" (pointer_expression "*puVar20" * identifier) = identifier) ;) (if_statement "if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }" if (parenthesized_expression "(uVar24 < uVar14)" ( (binary_expression "uVar24 < uVar14" identifier < identifier) )) (compound_statement "{\n                        iVar4 = iVar23;\n                      }" { (expression_statement "iVar4 = iVar23;" (assignment_expression "iVar4 = iVar23" identifier = identifier) ;) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (if_statement "if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }" if (parenthesized_expression "(uVar24 < uVar14)" ( (binary_expression "uVar24 < uVar14" identifier < identifier) )) (compound_statement "{\n                        uVar24 = uVar14;\n                      }" { (expression_statement "uVar24 = uVar14;" (assignment_expression "uVar24 = uVar14" identifier = identifier) ;) })) (if_statement "if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;" if (parenthesized_expression "(uVar22 + iVar21 == iVar23)" ( (binary_expression "uVar22 + iVar21 == iVar23" (binary_expression "uVar22 + iVar21" identifier + identifier) == identifier) )) (goto_statement "goto LAB_001230d8;" goto statement_identifier ;)) })) (expression_statement "dVar28 = (double)(float)dVar28 / dVar31;" (assignment_expression "dVar28 = (double)(float)dVar28 / dVar31" identifier = (binary_expression "(double)(float)dVar28 / dVar31" (cast_expression "(double)(float)dVar28" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)dVar28" ( (type_descriptor "float" primitive_type) ) identifier)) / identifier)) ;) (expression_statement "puVar10 = puVar20 + 0xff;" (assignment_expression "puVar10 = puVar20 + 0xff" identifier = (binary_expression "puVar20 + 0xff" identifier + number_literal)) ;) (if_statement "if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }" if (parenthesized_expression "(dVar28 < dVar30)" ( (binary_expression "dVar28 < dVar30" identifier < identifier) )) (compound_statement "{\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }" { (expression_statement "dVar28 = dVar28 + dVar32;" (assignment_expression "dVar28 = dVar28 + dVar32" identifier = (binary_expression "dVar28 + dVar32" identifier + identifier)) ;) (if_statement "if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }" if (parenthesized_expression "(dVar29 <= dVar28)" ( (binary_expression "dVar29 <= dVar28" identifier <= identifier) )) (compound_statement "{\n                        dVar28 = dVar28 - dVar29;\n                      }" { (expression_statement "dVar28 = dVar28 - dVar29;" (assignment_expression "dVar28 = dVar28 - dVar29" identifier = (binary_expression "dVar28 - dVar29" identifier - identifier)) ;) })) (expression_statement "puVar10 = puVar20 + ((int)dVar28 & 0xff);" (assignment_expression "puVar10 = puVar20 + ((int)dVar28 & 0xff)" identifier = (binary_expression "puVar20 + ((int)dVar28 & 0xff)" identifier + (parenthesized_expression "((int)dVar28 & 0xff)" ( (binary_expression "(int)dVar28 & 0xff" (cast_expression "(int)dVar28" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) )))) ;) })) (expression_statement "uVar14 = *puVar10 + 1;" (assignment_expression "uVar14 = *puVar10 + 1" identifier = (binary_expression "*puVar10 + 1" (pointer_expression "*puVar10" * identifier) + number_literal)) ;) (expression_statement "*puVar10 = uVar14;" (assignment_expression "*puVar10 = uVar14" (pointer_expression "*puVar10" * identifier) = identifier) ;) (if_statement "if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }" if (parenthesized_expression "(uVar24 < uVar14)" ( (binary_expression "uVar24 < uVar14" identifier < identifier) )) (compound_statement "{\n                      iVar4 = iVar23;\n                    }" { (expression_statement "iVar4 = iVar23;" (assignment_expression "iVar4 = iVar23" identifier = identifier) ;) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (if_statement "if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }" if (parenthesized_expression "(uVar24 < uVar14)" ( (binary_expression "uVar24 < uVar14" identifier < identifier) )) (compound_statement "{\n                      uVar24 = uVar14;\n                    }" { (expression_statement "uVar24 = uVar14;" (assignment_expression "uVar24 = uVar14" identifier = identifier) ;) })) }) while (parenthesized_expression "(uVar22 + iVar21 != iVar23)" ( (binary_expression "uVar22 + iVar21 != iVar23" (binary_expression "uVar22 + iVar21" identifier + identifier) != identifier) )) ;) (labeled_statement "LAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);" statement_identifier : (expression_statement "iVar23 = *(int *)(iVar27 + 0x18);" (assignment_expression "iVar23 = *(int *)(iVar27 + 0x18)" identifier = (pointer_expression "*(int *)(iVar27 + 0x18)" * (cast_expression "(int *)(iVar27 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x18)" ( (binary_expression "iVar27 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "uStack_20b8 = uStack_20b8 + 1;" (assignment_expression "uStack_20b8 = uStack_20b8 + 1" identifier = (binary_expression "uStack_20b8 + 1" identifier + number_literal)) ;) (expression_statement "iVar21 = iVar21 + uVar22 + iVar23;" (assignment_expression "iVar21 = iVar21 + uVar22 + iVar23" identifier = (binary_expression "iVar21 + uVar22 + iVar23" (binary_expression "iVar21 + uVar22" identifier + identifier) + identifier)) ;) }) while (parenthesized_expression "(uVar22 != uStack_20b8)" ( (binary_expression "uVar22 != uStack_20b8" identifier != identifier) )) ;) }))) (expression_statement "iVar21 = *(int *)(iVar27 + 0x2c0);" (assignment_expression "iVar21 = *(int *)(iVar27 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar27 + 0x2c0)" * (cast_expression "(int *)(iVar27 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x2c0)" ( (binary_expression "iVar27 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }" if (parenthesized_expression "(0 < iVar21)" ( (binary_expression "0 < iVar21" number_literal < identifier) )) (compound_statement "{\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }" { (expression_statement "piVar16 = *(int **)(iVar27 + 0x2d0);" (assignment_expression "piVar16 = *(int **)(iVar27 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar27 + 0x2d0)" * (cast_expression "(int **)(iVar27 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x2d0)" ( (binary_expression "iVar27 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);" (assignment_expression "puVar11 = (undefined4 *)(iVar3 + iVar1 * 4)" identifier = (cast_expression "(undefined4 *)(iVar3 + iVar1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar1 * 4)" ( (binary_expression "iVar3 + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar17 = *(int *)(iVar12 + 0x2d0);" (assignment_expression "iVar17 = *(int *)(iVar12 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar12 + 0x2d0)" * (cast_expression "(int *)(iVar12 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2d0)" ( (binary_expression "iVar12 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar19 = piVar16;" (assignment_expression "piVar19 = piVar16" identifier = identifier) ;) (do_statement "do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);" do (compound_statement "{\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                }" { (expression_statement "iVar5 = iVar17 + *piVar19 * 0xc;" (assignment_expression "iVar5 = iVar17 + *piVar19 * 0xc" identifier = (binary_expression "iVar17 + *piVar19 * 0xc" identifier + (binary_expression "*piVar19 * 0xc" (pointer_expression "*piVar19" * identifier) * number_literal))) ;) (if_statement "if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }" if (parenthesized_expression "((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0))" ( (binary_expression "(piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)" (parenthesized_expression "(piVar16[*piVar19 * 3 + 1] != 0)" ( (binary_expression "piVar16[*piVar19 * 3 + 1] != 0" (subscript_expression "piVar16[*piVar19 * 3 + 1]" identifier [ (binary_expression "*piVar19 * 3 + 1" (binary_expression "*piVar19 * 3" (pointer_expression "*piVar19" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)" ( (comma_expression "uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0" (assignment_expression "uVar24 = *(uint *)(iVar5 + 4)" identifier = (pointer_expression "*(uint *)(iVar5 + 4)" * (cast_expression "(uint *)(iVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) , (binary_expression "uVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }" { (expression_statement "puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);" (assignment_expression "puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4)" identifier = (cast_expression "(undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_20b4 + *(int *)(iVar5 + 8) * 4)" ( (binary_expression "iStack_20b4 + *(int *)(iVar5 + 8) * 4" identifier + (binary_expression "*(int *)(iVar5 + 8) * 4" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) * number_literal)) )))) ;) (if_statement "if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }" if (parenthesized_expression "((uVar24 & 1) == 0)" ( (binary_expression "(uVar24 & 1) == 0" (parenthesized_expression "(uVar24 & 1)" ( (binary_expression "uVar24 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }" { (expression_statement "*puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);" (assignment_expression "*puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" * (cast_expression "(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" ( (binary_expression "(int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4" (binary_expression "(int)puVar11 + iVar21 * 4 * iVar4" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar21 * 4 * iVar4" (binary_expression "iVar21 * 4" identifier * number_literal) * identifier)) + (binary_expression "iVar1 * -4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                      *puVar6 = *puVar11;\n                    }" else (compound_statement "{\n                      *puVar6 = *puVar11;\n                    }" { (expression_statement "*puVar6 = *puVar11;" (assignment_expression "*puVar6 = *puVar11" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) }))) })) (expression_statement "piVar19 = piVar19 + 3;" (assignment_expression "piVar19 = piVar19 + 3" identifier = (binary_expression "piVar19 + 3" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar16 + iVar21 * 3 != piVar19)" ( (binary_expression "piVar16 + iVar21 * 3 != piVar19" (binary_expression "piVar16 + iVar21 * 3" identifier + (binary_expression "iVar21 * 3" identifier * number_literal)) != identifier) )) ;) })) (expression_statement "iVar3 = iVar3 + iVar21 * 4;" (assignment_expression "iVar3 = iVar3 + iVar21 * 4" identifier = (binary_expression "iVar3 + iVar21 * 4" identifier + (binary_expression "iVar21 * 4" identifier * number_literal))) ;) (expression_statement "iStack_20ac = iStack_20ac + 1;" (assignment_expression "iStack_20ac = iStack_20ac + 1" identifier = (binary_expression "iStack_20ac + 1" identifier + number_literal)) ;) (expression_statement "iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;" (assignment_expression "iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4" identifier = (binary_expression "iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar12 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar12 + 0x2c0)" * (cast_expression "(int *)(iVar12 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c0)" ( (binary_expression "iVar12 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iStack_20ac < iVar23)" ( (binary_expression "iStack_20ac < iVar23" identifier < identifier) )) ;) })) (expression_statement "iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2)" identifier = (call_expression "(**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2)" (parenthesized_expression "(**(code **)(puVar25 + 0x2866e8))" ( (pointer_expression "**(code **)(puVar25 + 0x2866e8)" * (pointer_expression "*(code **)(puVar25 + 0x2866e8)" * (cast_expression "(code **)(puVar25 + 0x2866e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x2866e8)" ( (binary_expression "puVar25 + 0x2866e8" identifier + number_literal) ))))) )) (argument_list "(uVar13,uVar2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar8[8] = 0;\n          }" { (expression_statement "puVar8[8] = 0;" (assignment_expression "puVar8[8] = 0" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }" if (parenthesized_expression "(*(int *)(iVar27 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar27 + 0x328) != 0" (pointer_expression "*(int *)(iVar27 + 0x328)" * (cast_expression "(int *)(iVar27 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x328)" ( (binary_expression "iVar27 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }" { (expression_statement "piVar19 = (int *)puVar8[9];" (assignment_expression "piVar19 = (int *)puVar8[9]" identifier = (cast_expression "(int *)puVar8[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[9]" identifier [ number_literal ]))) ;) (expression_statement "(**(code **)(puVar25 + 0x2864d4))();" (call_expression "(**(code **)(puVar25 + 0x2864d4))()" (parenthesized_expression "(**(code **)(puVar25 + 0x2864d4))" ( (pointer_expression "**(code **)(puVar25 + 0x2864d4)" * (pointer_expression "*(code **)(puVar25 + 0x2864d4)" * (cast_expression "(code **)(puVar25 + 0x2864d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x2864d4)" ( (binary_expression "puVar25 + 0x2864d4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar24 = piVar19[1];" (assignment_expression "uVar24 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar26 = *(code **)(puVar25 + 0x286628);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0x286628)" identifier = (pointer_expression "*(code **)(puVar25 + 0x286628)" * (cast_expression "(code **)(puVar25 + 0x286628)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x286628)" ( (binary_expression "puVar25 + 0x286628" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uVar24 + 1;" (assignment_expression "uVar14 = uVar24 + 1" identifier = (binary_expression "uVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar19[1] = uVar14;" (assignment_expression "piVar19[1] = uVar14" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar19 = (uint)(uVar14 < uVar24) + *piVar19;" (assignment_expression "*piVar19 = (uint)(uVar14 < uVar24) + *piVar19" (pointer_expression "*piVar19" * identifier) = (binary_expression "(uint)(uVar14 < uVar24) + *piVar19" (call_expression "(uint)(uVar14 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar24)" ( (binary_expression "uVar14 < uVar24" identifier < identifier) ))) + (pointer_expression "*piVar19" * identifier))) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c))" identifier = (call_expression "(**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c))" (parenthesized_expression "(**(code **)(puVar25 + 0x285ea4))" ( (pointer_expression "**(code **)(puVar25 + 0x285ea4)" * (pointer_expression "*(code **)(puVar25 + 0x285ea4)" * (cast_expression "(code **)(puVar25 + 0x285ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x285ea4)" ( (binary_expression "puVar25 + 0x285ea4" identifier + number_literal) ))))) )) (argument_list "(iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c))" ( identifier , (binary_expression "*(int *)(puVar25 + 0x285ad4) + 0x29d0" (pointer_expression "*(int *)(puVar25 + 0x285ad4)" * (cast_expression "(int *)(puVar25 + 0x285ad4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x285ad4)" ( (binary_expression "puVar25 + 0x285ad4" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)puVar8[9]" * (cast_expression "(undefined4 *)puVar8[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[9]" identifier [ number_literal ]))) , (subscript_expression "((undefined4 *)puVar8[9])[1]" (parenthesized_expression "((undefined4 *)puVar8[9])" ( (cast_expression "(undefined4 *)puVar8[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[9]" identifier [ number_literal ])) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar27 + 0x1c)" * (cast_expression "(undefined4 *)(iVar27 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x1c)" ( (binary_expression "iVar27 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0012325c;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0012325c;" goto statement_identifier ;)) })) }))) })) (expression_statement "iStack_20a8 = iStack_20a8 + 1;" (assignment_expression "iStack_20a8 = iStack_20a8 + 1" identifier = (binary_expression "iStack_20a8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != iStack_20a8)" ( (binary_expression "iVar33 != iStack_20a8" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n\nMagickBooleanType DefineImageOption(ImageInfo *image_info,char *option)\n\n{\n  MagickBooleanType MVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  uint uVar15;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  char *pcVar19;\n  int *piVar20;\n  uint *puVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  uint uVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  int iVar34;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  MagickBooleanType MStack_20a8;\n  char key [4096];\n  char value [4096];\n  \n  puVar26 = PTR___stack_chk_guard_003a9230;\n  iVar8 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar16 = PTR_s_t_to_left_003a88e4;\n  if (image_info != (ImageInfo *)0x0) {\n    if (option != (char *)0x0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(key,option,0x1000);\n      pcVar19 = key;\n      while (key[0] != '\0') {\n        if (key[0] == '=') {\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar19 = pcVar19 + 1;\n        key[0] = *pcVar19;\n      }\n      value[0] = '\0';\nLAB_00122d50:\n      *pcVar19 = '\0';\n      MVar1 = (*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value);\n      if (iVar8 == *(int *)puVar26) {\n        return MVar1;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar16 = puVar16 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar16);\n  }\n  puVar10 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar26 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar10,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar16 + -0x1254);\n  iVar28 = puVar10[3];\n  iVar8 = (**(code **)(puVar26 + 0x286afc))();\n  iVar2 = (**(code **)(puVar26 + 0x2866f8))();\n  if (iVar8 == 0) {\n    trap(7);\n  }\n  iVar34 = *(int *)(iVar28 + 0x1c) / iVar8;\n  iVar8 = *(int *)(iVar28 + 0x1c) % iVar8;\n  if (iVar2 < iVar8) {\n    iVar34 = iVar34 + 1;\n    iVar8 = 0;\n  }\n  MVar1 = iVar34 * iVar2 + iVar8;\n  MStack_20a8 = (MagickBooleanType)((int)MVar1 < (int)(iVar34 + MVar1));\n  if (MStack_20a8 != MagickFalse) {\n    uVar23 = puVar10[6];\n    dVar32 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5af0);\n    iVar8 = puVar10[7];\n    iVar13 = puVar10[4];\n    iVar2 = puVar10[5];\n    uVar14 = puVar10[2];\n    dVar33 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1400);\n    uVar3 = *puVar10;\n    uVar9 = puVar10[1];\n    MStack_20a8 = MVar1;\n    do {\n      if (puVar10[8] != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);\n        iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);\n        if ((iVar4 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar10[8] = 0;\n        }\n        else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      MStack_20a8 = MStack_20a8 + MagickTrue;\n    } while (iVar34 + MVar1 != MStack_20a8);\n  }\n  return MStack_20a8;\n}\n\n" comment comment comment comment (function_definition "MagickBooleanType DefineImageOption(ImageInfo *image_info,char *option)\n\n{\n  MagickBooleanType MVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  uint uVar15;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  char *pcVar19;\n  int *piVar20;\n  uint *puVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  uint uVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  int iVar34;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  MagickBooleanType MStack_20a8;\n  char key [4096];\n  char value [4096];\n  \n  puVar26 = PTR___stack_chk_guard_003a9230;\n  iVar8 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar16 = PTR_s_t_to_left_003a88e4;\n  if (image_info != (ImageInfo *)0x0) {\n    if (option != (char *)0x0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(key,option,0x1000);\n      pcVar19 = key;\n      while (key[0] != '\0') {\n        if (key[0] == '=') {\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar19 = pcVar19 + 1;\n        key[0] = *pcVar19;\n      }\n      value[0] = '\0';\nLAB_00122d50:\n      *pcVar19 = '\0';\n      MVar1 = (*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value);\n      if (iVar8 == *(int *)puVar26) {\n        return MVar1;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar16 = puVar16 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar16);\n  }\n  puVar10 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar26 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar10,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar16 + -0x1254);\n  iVar28 = puVar10[3];\n  iVar8 = (**(code **)(puVar26 + 0x286afc))();\n  iVar2 = (**(code **)(puVar26 + 0x2866f8))();\n  if (iVar8 == 0) {\n    trap(7);\n  }\n  iVar34 = *(int *)(iVar28 + 0x1c) / iVar8;\n  iVar8 = *(int *)(iVar28 + 0x1c) % iVar8;\n  if (iVar2 < iVar8) {\n    iVar34 = iVar34 + 1;\n    iVar8 = 0;\n  }\n  MVar1 = iVar34 * iVar2 + iVar8;\n  MStack_20a8 = (MagickBooleanType)((int)MVar1 < (int)(iVar34 + MVar1));\n  if (MStack_20a8 != MagickFalse) {\n    uVar23 = puVar10[6];\n    dVar32 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5af0);\n    iVar8 = puVar10[7];\n    iVar13 = puVar10[4];\n    iVar2 = puVar10[5];\n    uVar14 = puVar10[2];\n    dVar33 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1400);\n    uVar3 = *puVar10;\n    uVar9 = puVar10[1];\n    MStack_20a8 = MVar1;\n    do {\n      if (puVar10[8] != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);\n        iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);\n        if ((iVar4 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar10[8] = 0;\n        }\n        else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      MStack_20a8 = MStack_20a8 + MagickTrue;\n    } while (iVar34 + MVar1 != MStack_20a8);\n  }\n  return MStack_20a8;\n}" type_identifier (function_declarator "DefineImageOption(ImageInfo *image_info,char *option)" identifier (parameter_list "(ImageInfo *image_info,char *option)" ( (parameter_declaration "ImageInfo *image_info" type_identifier (pointer_declarator "*image_info" * identifier)) , (parameter_declaration "char *option" primitive_type (pointer_declarator "*option" * identifier)) ))) (compound_statement "{\n  MagickBooleanType MVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined4 *puVar10;\n  uint *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  undefined4 uVar14;\n  uint uVar15;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  char *pcVar19;\n  int *piVar20;\n  uint *puVar21;\n  int iVar22;\n  uint uVar23;\n  int iVar24;\n  uint uVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  int iVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  double dVar33;\n  int iVar34;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  MagickBooleanType MStack_20a8;\n  char key [4096];\n  char value [4096];\n  \n  puVar26 = PTR___stack_chk_guard_003a9230;\n  iVar8 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar16 = PTR_s_t_to_left_003a88e4;\n  if (image_info != (ImageInfo *)0x0) {\n    if (option != (char *)0x0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(key,option,0x1000);\n      pcVar19 = key;\n      while (key[0] != '\0') {\n        if (key[0] == '=') {\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar19 = pcVar19 + 1;\n        key[0] = *pcVar19;\n      }\n      value[0] = '\0';\nLAB_00122d50:\n      *pcVar19 = '\0';\n      MVar1 = (*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value);\n      if (iVar8 == *(int *)puVar26) {\n        return MVar1;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar16 = puVar16 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar16);\n  }\n  puVar10 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar26 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar10,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar16 + -0x1254);\n  iVar28 = puVar10[3];\n  iVar8 = (**(code **)(puVar26 + 0x286afc))();\n  iVar2 = (**(code **)(puVar26 + 0x2866f8))();\n  if (iVar8 == 0) {\n    trap(7);\n  }\n  iVar34 = *(int *)(iVar28 + 0x1c) / iVar8;\n  iVar8 = *(int *)(iVar28 + 0x1c) % iVar8;\n  if (iVar2 < iVar8) {\n    iVar34 = iVar34 + 1;\n    iVar8 = 0;\n  }\n  MVar1 = iVar34 * iVar2 + iVar8;\n  MStack_20a8 = (MagickBooleanType)((int)MVar1 < (int)(iVar34 + MVar1));\n  if (MStack_20a8 != MagickFalse) {\n    uVar23 = puVar10[6];\n    dVar32 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5af0);\n    iVar8 = puVar10[7];\n    iVar13 = puVar10[4];\n    iVar2 = puVar10[5];\n    uVar14 = puVar10[2];\n    dVar33 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1400);\n    uVar3 = *puVar10;\n    uVar9 = puVar10[1];\n    MStack_20a8 = MVar1;\n    do {\n      if (puVar10[8] != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);\n        iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);\n        if ((iVar4 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar10[8] = 0;\n        }\n        else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      MStack_20a8 = MStack_20a8 + MagickTrue;\n    } while (iVar34 + MVar1 != MStack_20a8);\n  }\n  return MStack_20a8;\n}" { (declaration "MagickBooleanType MVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "uint *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "double dVar33;" primitive_type identifier ;) (declaration "int iVar34;" primitive_type identifier ;) (declaration "uint uStack_20b8;" type_identifier identifier ;) (declaration "int iStack_20b4;" primitive_type identifier ;) (declaration "int iStack_20ac;" primitive_type identifier ;) (declaration "MagickBooleanType MStack_20a8;" type_identifier identifier ;) (declaration "char key [4096];" primitive_type (array_declarator "key [4096]" identifier [ number_literal ]) ;) (declaration "char value [4096];" primitive_type (array_declarator "value [4096]" identifier [ number_literal ]) ;) (expression_statement "puVar26 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar26 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "iVar8 = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "iVar8 = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar16 = PTR_s_t_to_left_003a88e4;" (assignment_expression "puVar16 = PTR_s_t_to_left_003a88e4" identifier = identifier) ;) (if_statement "if (image_info != (ImageInfo *)0x0) {\n    if (option != (char *)0x0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(key,option,0x1000);\n      pcVar19 = key;\n      while (key[0] != '\0') {\n        if (key[0] == '=') {\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar19 = pcVar19 + 1;\n        key[0] = *pcVar19;\n      }\n      value[0] = '\0';\nLAB_00122d50:\n      *pcVar19 = '\0';\n      MVar1 = (*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value);\n      if (iVar8 == *(int *)puVar26) {\n        return MVar1;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar16 = puVar16 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar16);\n  }" if (parenthesized_expression "(image_info != (ImageInfo *)0x0)" ( (binary_expression "image_info != (ImageInfo *)0x0" identifier != (cast_expression "(ImageInfo *)0x0" ( (type_descriptor "ImageInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (option != (char *)0x0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(key,option,0x1000);\n      pcVar19 = key;\n      while (key[0] != '\0') {\n        if (key[0] == '=') {\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar19 = pcVar19 + 1;\n        key[0] = *pcVar19;\n      }\n      value[0] = '\0';\nLAB_00122d50:\n      *pcVar19 = '\0';\n      MVar1 = (*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value);\n      if (iVar8 == *(int *)puVar26) {\n        return MVar1;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar16 = puVar16 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar16);\n  }" { (if_statement "if (option != (char *)0x0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(key,option,0x1000);\n      pcVar19 = key;\n      while (key[0] != '\0') {\n        if (key[0] == '=') {\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar19 = pcVar19 + 1;\n        key[0] = *pcVar19;\n      }\n      value[0] = '\0';\nLAB_00122d50:\n      *pcVar19 = '\0';\n      MVar1 = (*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value);\n      if (iVar8 == *(int *)puVar26) {\n        return MVar1;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }" if (parenthesized_expression "(option != (char *)0x0)" ( (binary_expression "option != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_CopyMagickString_003a983c)(key,option,0x1000);\n      pcVar19 = key;\n      while (key[0] != '\0') {\n        if (key[0] == '=') {\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar19 = pcVar19 + 1;\n        key[0] = *pcVar19;\n      }\n      value[0] = '\0';\nLAB_00122d50:\n      *pcVar19 = '\0';\n      MVar1 = (*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value);\n      if (iVar8 == *(int *)puVar26) {\n        return MVar1;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }" { (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(key,option,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(key,option,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(key,option,0x1000)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pcVar19 = key;" (assignment_expression "pcVar19 = key" identifier = identifier) ;) (while_statement "while (key[0] != '\0') {\n        if (key[0] == '=') {\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar19 = pcVar19 + 1;\n        key[0] = *pcVar19;\n      }" while (parenthesized_expression "(key[0] != '\0')" ( (binary_expression "key[0] != '\0'" (subscript_expression "key[0]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (key[0] == '=') {\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar19 = pcVar19 + 1;\n        key[0] = *pcVar19;\n      }" { (if_statement "if (key[0] == '=') {\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }" if (parenthesized_expression "(key[0] == '=')" ( (binary_expression "key[0] == '='" (subscript_expression "key[0]" identifier [ number_literal ]) == (char_literal "'='" ' character ')) )) (compound_statement "{\n          value[0] = '\0';\n          (*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);\n          goto LAB_00122d50;\n        }" { (expression_statement "value[0] = '\0';" (assignment_expression "value[0] = '\0'" (subscript_expression "value[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(value,pcVar19 + 1,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(value,pcVar19 + 1,0x1000)" ( identifier , (binary_expression "pcVar19 + 1" identifier + number_literal) , number_literal ))) ;) (goto_statement "goto LAB_00122d50;" goto statement_identifier ;) })) (expression_statement "pcVar19 = pcVar19 + 1;" (assignment_expression "pcVar19 = pcVar19 + 1" identifier = (binary_expression "pcVar19 + 1" identifier + number_literal)) ;) (expression_statement "key[0] = *pcVar19;" (assignment_expression "key[0] = *pcVar19" (subscript_expression "key[0]" identifier [ number_literal ]) = (pointer_expression "*pcVar19" * identifier)) ;) })) (expression_statement "value[0] = '\0';" (assignment_expression "value[0] = '\0'" (subscript_expression "value[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "LAB_00122d50:\n      *pcVar19 = '\0';" statement_identifier : (expression_statement "*pcVar19 = '\0';" (assignment_expression "*pcVar19 = '\0'" (pointer_expression "*pcVar19" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "MVar1 = (*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value);" (assignment_expression "MVar1 = (*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value)" identifier = (call_expression "(*(code *)PTR_SetImageOption_003a8c80)(image_info,key,value)" (parenthesized_expression "(*(code *)PTR_SetImageOption_003a8c80)" ( (pointer_expression "*(code *)PTR_SetImageOption_003a8c80" * (cast_expression "(code *)PTR_SetImageOption_003a8c80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image_info,key,value)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar8 == *(int *)puVar26) {\n        return MVar1;\n      }" if (parenthesized_expression "(iVar8 == *(int *)puVar26)" ( (binary_expression "iVar8 == *(int *)puVar26" identifier == (pointer_expression "*(int *)puVar26" * (cast_expression "(int *)puVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return MVar1;\n      }" { (return_statement "return MVar1;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "puVar16 = puVar16 + -0x1254;" (assignment_expression "puVar16 = puVar16 + -0x1254" identifier = (binary_expression "puVar16 + -0x1254" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar16);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar16)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar16)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x1210" identifier + number_literal) , number_literal , identifier ))) ;) })) (expression_statement "puVar10 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);" (assignment_expression "puVar10 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88)" identifier = (cast_expression "(undefined4 *)(PTR_LAB_003a88e0 + 0x1c88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1c88)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1c88" identifier + number_literal) )))) ;) (expression_statement "puVar26 = PTR___assert_fail_003a9608;" (assignment_expression "puVar26 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar10,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar16 + -0x1254);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar10,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar16 + -0x1254)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar16 + -0x1254)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x1210" identifier + number_literal) , number_literal , (binary_expression "puVar16 + -0x1254" identifier + number_literal) ))) ;) (expression_statement "iVar28 = puVar10[3];" (assignment_expression "iVar28 = puVar10[3]" identifier = (subscript_expression "puVar10[3]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = (**(code **)(puVar26 + 0x286afc))();" (assignment_expression "iVar8 = (**(code **)(puVar26 + 0x286afc))()" identifier = (call_expression "(**(code **)(puVar26 + 0x286afc))()" (parenthesized_expression "(**(code **)(puVar26 + 0x286afc))" ( (pointer_expression "**(code **)(puVar26 + 0x286afc)" * (pointer_expression "*(code **)(puVar26 + 0x286afc)" * (cast_expression "(code **)(puVar26 + 0x286afc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x286afc)" ( (binary_expression "puVar26 + 0x286afc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar2 = (**(code **)(puVar26 + 0x2866f8))();" (assignment_expression "iVar2 = (**(code **)(puVar26 + 0x2866f8))()" identifier = (call_expression "(**(code **)(puVar26 + 0x2866f8))()" (parenthesized_expression "(**(code **)(puVar26 + 0x2866f8))" ( (pointer_expression "**(code **)(puVar26 + 0x2866f8)" * (pointer_expression "*(code **)(puVar26 + 0x2866f8)" * (cast_expression "(code **)(puVar26 + 0x2866f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2866f8)" ( (binary_expression "puVar26 + 0x2866f8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar34 = *(int *)(iVar28 + 0x1c) / iVar8;" (assignment_expression "iVar34 = *(int *)(iVar28 + 0x1c) / iVar8" identifier = (binary_expression "*(int *)(iVar28 + 0x1c) / iVar8" (pointer_expression "*(int *)(iVar28 + 0x1c)" * (cast_expression "(int *)(iVar28 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x1c)" ( (binary_expression "iVar28 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar8 = *(int *)(iVar28 + 0x1c) % iVar8;" (assignment_expression "iVar8 = *(int *)(iVar28 + 0x1c) % iVar8" identifier = (binary_expression "*(int *)(iVar28 + 0x1c) % iVar8" (pointer_expression "*(int *)(iVar28 + 0x1c)" * (cast_expression "(int *)(iVar28 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x1c)" ( (binary_expression "iVar28 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar2 < iVar8) {\n    iVar34 = iVar34 + 1;\n    iVar8 = 0;\n  }" if (parenthesized_expression "(iVar2 < iVar8)" ( (binary_expression "iVar2 < iVar8" identifier < identifier) )) (compound_statement "{\n    iVar34 = iVar34 + 1;\n    iVar8 = 0;\n  }" { (expression_statement "iVar34 = iVar34 + 1;" (assignment_expression "iVar34 = iVar34 + 1" identifier = (binary_expression "iVar34 + 1" identifier + number_literal)) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) })) (expression_statement "MVar1 = iVar34 * iVar2 + iVar8;" (assignment_expression "MVar1 = iVar34 * iVar2 + iVar8" identifier = (binary_expression "iVar34 * iVar2 + iVar8" (binary_expression "iVar34 * iVar2" identifier * identifier) + identifier)) ;) (expression_statement "MStack_20a8 = (MagickBooleanType)((int)MVar1 < (int)(iVar34 + MVar1));" (assignment_expression "MStack_20a8 = (MagickBooleanType)((int)MVar1 < (int)(iVar34 + MVar1))" identifier = (call_expression "(MagickBooleanType)((int)MVar1 < (int)(iVar34 + MVar1))" (parenthesized_expression "(MagickBooleanType)" ( identifier )) (argument_list "((int)MVar1 < (int)(iVar34 + MVar1))" ( (binary_expression "(int)MVar1 < (int)(iVar34 + MVar1)" (cast_expression "(int)MVar1" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(iVar34 + MVar1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar34 + MVar1)" ( (binary_expression "iVar34 + MVar1" identifier + identifier) )))) )))) ;) (if_statement "if (MStack_20a8 != MagickFalse) {\n    uVar23 = puVar10[6];\n    dVar32 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5af0);\n    iVar8 = puVar10[7];\n    iVar13 = puVar10[4];\n    iVar2 = puVar10[5];\n    uVar14 = puVar10[2];\n    dVar33 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1400);\n    uVar3 = *puVar10;\n    uVar9 = puVar10[1];\n    MStack_20a8 = MVar1;\n    do {\n      if (puVar10[8] != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);\n        iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);\n        if ((iVar4 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar10[8] = 0;\n        }\n        else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      MStack_20a8 = MStack_20a8 + MagickTrue;\n    } while (iVar34 + MVar1 != MStack_20a8);\n  }" if (parenthesized_expression "(MStack_20a8 != MagickFalse)" ( (binary_expression "MStack_20a8 != MagickFalse" identifier != identifier) )) (compound_statement "{\n    uVar23 = puVar10[6];\n    dVar32 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5af0);\n    iVar8 = puVar10[7];\n    iVar13 = puVar10[4];\n    iVar2 = puVar10[5];\n    uVar14 = puVar10[2];\n    dVar33 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1400);\n    uVar3 = *puVar10;\n    uVar9 = puVar10[1];\n    MStack_20a8 = MVar1;\n    do {\n      if (puVar10[8] != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);\n        iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);\n        if ((iVar4 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar10[8] = 0;\n        }\n        else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      MStack_20a8 = MStack_20a8 + MagickTrue;\n    } while (iVar34 + MVar1 != MStack_20a8);\n  }" { (expression_statement "uVar23 = puVar10[6];" (assignment_expression "uVar23 = puVar10[6]" identifier = (subscript_expression "puVar10[6]" identifier [ number_literal ])) ;) (expression_statement "dVar32 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5af0);" (assignment_expression "dVar32 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5af0)" identifier = (pointer_expression "*(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5af0)" * (cast_expression "(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x285ad8) + -0x5af0)" ( (binary_expression "*(int *)(puVar26 + 0x285ad8) + -0x5af0" (pointer_expression "*(int *)(puVar26 + 0x285ad8)" * (cast_expression "(int *)(puVar26 + 0x285ad8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x285ad8)" ( (binary_expression "puVar26 + 0x285ad8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar8 = puVar10[7];" (assignment_expression "iVar8 = puVar10[7]" identifier = (subscript_expression "puVar10[7]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = puVar10[4];" (assignment_expression "iVar13 = puVar10[4]" identifier = (subscript_expression "puVar10[4]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = puVar10[5];" (assignment_expression "iVar2 = puVar10[5]" identifier = (subscript_expression "puVar10[5]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar10[2];" (assignment_expression "uVar14 = puVar10[2]" identifier = (subscript_expression "puVar10[2]" identifier [ number_literal ])) ;) (expression_statement "dVar33 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1400);" (assignment_expression "dVar33 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1400)" identifier = (pointer_expression "*(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x285ad0) + 0x1400)" ( (binary_expression "*(int *)(puVar26 + 0x285ad0) + 0x1400" (pointer_expression "*(int *)(puVar26 + 0x285ad0)" * (cast_expression "(int *)(puVar26 + 0x285ad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x285ad0)" ( (binary_expression "puVar26 + 0x285ad0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar3 = *puVar10;" (assignment_expression "uVar3 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "uVar9 = puVar10[1];" (assignment_expression "uVar9 = puVar10[1]" identifier = (subscript_expression "puVar10[1]" identifier [ number_literal ])) ;) (expression_statement "MStack_20a8 = MVar1;" (assignment_expression "MStack_20a8 = MVar1" identifier = identifier) ;) (do_statement "do {\n      if (puVar10[8] != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);\n        iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);\n        if ((iVar4 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar10[8] = 0;\n        }\n        else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      MStack_20a8 = MStack_20a8 + MagickTrue;\n    } while (iVar34 + MVar1 != MStack_20a8);" do (compound_statement "{\n      if (puVar10[8] != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);\n        iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);\n        if ((iVar4 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar10[8] = 0;\n        }\n        else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      MStack_20a8 = MStack_20a8 + MagickTrue;\n    }" { (if_statement "if (puVar10[8] != 0) {\n        iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);\n        iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);\n        if ((iVar4 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar10[8] = 0;\n        }\n        else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }\n      }" if (parenthesized_expression "(puVar10[8] != 0)" ( (binary_expression "puVar10[8] != 0" (subscript_expression "puVar10[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);\n        iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);\n        if ((iVar4 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar10[8] = 0;\n        }\n        else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }\n      }" { (expression_statement "iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3)" identifier = (call_expression "(**(code **)(puVar26 + 0x28684c))\n                          (uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3)" (parenthesized_expression "(**(code **)(puVar26 + 0x28684c))" ( (pointer_expression "**(code **)(puVar26 + 0x28684c)" * (pointer_expression "*(code **)(puVar26 + 0x28684c)" * (cast_expression "(code **)(puVar26 + 0x28684c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x28684c)" ( (binary_expression "puVar26 + 0x28684c" identifier + number_literal) ))))) )) (argument_list "(uVar9,-((int)uVar23 / 2),MStack_20a8 - (uVar23 >> 1),\n                           uVar23 + *(int *)(iVar28 + 0x18),uVar23,uVar3)" ( identifier , (unary_expression "-((int)uVar23 / 2)" - (parenthesized_expression "((int)uVar23 / 2)" ( (binary_expression "(int)uVar23 / 2" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) ))) , (binary_expression "MStack_20a8 - (uVar23 >> 1)" identifier - (parenthesized_expression "(uVar23 >> 1)" ( (binary_expression "uVar23 >> 1" identifier >> number_literal) ))) , (binary_expression "uVar23 + *(int *)(iVar28 + 0x18)" identifier + (pointer_expression "*(int *)(iVar28 + 0x18)" * (cast_expression "(int *)(iVar28 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x18)" ( (binary_expression "iVar28 + 0x18" identifier + number_literal) ))))) , identifier , identifier )))) ;) (expression_statement "iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3);" (assignment_expression "iStack_20b4 = (**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3)" identifier = (call_expression "(**(code **)(puVar26 + 0x285e40))\n                                (uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3)" (parenthesized_expression "(**(code **)(puVar26 + 0x285e40))" ( (pointer_expression "**(code **)(puVar26 + 0x285e40)" * (pointer_expression "*(code **)(puVar26 + 0x285e40)" * (cast_expression "(code **)(puVar26 + 0x285e40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x285e40)" ( (binary_expression "puVar26 + 0x285e40" identifier + number_literal) ))))) )) (argument_list "(uVar14,0,MStack_20a8,*(undefined4 *)(iVar13 + 0x18),1,uVar3)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar13 + 0x18)" * (cast_expression "(undefined4 *)(iVar13 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x18)" ( (binary_expression "iVar13 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar4 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar10[8] = 0;\n        }\n        else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }" if (parenthesized_expression "((iVar4 == 0) || (iStack_20b4 == 0))" ( (binary_expression "(iVar4 == 0) || (iStack_20b4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_20b4 == 0)" ( (binary_expression "iStack_20b4 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_0012325c:\n          puVar10[8] = 0;\n        }" { (labeled_statement "LAB_0012325c:\n          puVar10[8] = 0;" statement_identifier : (expression_statement "puVar10[8] = 0;" (assignment_expression "puVar10[8] = 0" (subscript_expression "puVar10[8]" identifier [ number_literal ]) = number_literal) ;)) }) (else_clause "else {\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }" else (compound_statement "{\n          iVar5 = (**(code **)(puVar26 + 0x2866f8))();\n          puVar21 = *(uint **)(iVar2 + iVar5 * 4);\n          if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }\n          iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);\n          if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }\n          if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }\n        }" { (expression_statement "iVar5 = (**(code **)(puVar26 + 0x2866f8))();" (assignment_expression "iVar5 = (**(code **)(puVar26 + 0x2866f8))()" identifier = (call_expression "(**(code **)(puVar26 + 0x2866f8))()" (parenthesized_expression "(**(code **)(puVar26 + 0x2866f8))" ( (pointer_expression "**(code **)(puVar26 + 0x2866f8)" * (pointer_expression "*(code **)(puVar26 + 0x2866f8)" * (cast_expression "(code **)(puVar26 + 0x2866f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2866f8)" ( (binary_expression "puVar26 + 0x2866f8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "puVar21 = *(uint **)(iVar2 + iVar5 * 4);" (assignment_expression "puVar21 = *(uint **)(iVar2 + iVar5 * 4)" identifier = (pointer_expression "*(uint **)(iVar2 + iVar5 * 4)" * (cast_expression "(uint **)(iVar2 + iVar5 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + iVar5 * 4)" ( (binary_expression "iVar2 + iVar5 * 4" identifier + (binary_expression "iVar5 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (0 < *(int *)(iVar28 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }" if (parenthesized_expression "(0 < *(int *)(iVar28 + 0x18))" ( (binary_expression "0 < *(int *)(iVar28 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar28 + 0x18)" * (cast_expression "(int *)(iVar28 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x18)" ( (binary_expression "iVar28 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);\n          }" { (expression_statement "iStack_20ac = 0;" (assignment_expression "iStack_20ac = 0" identifier = number_literal) ;) (do_statement "do {\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar24);" do (compound_statement "{\n              (**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);\n              if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }\n              iVar22 = *(int *)(iVar28 + 0x2c0);\n              if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }\n              iVar4 = iVar4 + iVar22 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;\n            }" { (expression_statement "(**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400);" (call_expression "(**(code **)(puVar26 + 0x2868c4))(puVar21,0,0x400)" (parenthesized_expression "(**(code **)(puVar26 + 0x2868c4))" ( (pointer_expression "**(code **)(puVar26 + 0x2868c4)" * (pointer_expression "*(code **)(puVar26 + 0x2868c4)" * (cast_expression "(code **)(puVar26 + 0x2868c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2868c4)" ( (binary_expression "puVar26 + 0x2868c4" identifier + number_literal) ))))) )) (argument_list "(puVar21,0,0x400)" ( identifier , number_literal , number_literal ))) ;) (if_statement "if ((int)uVar23 < 1) {\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }\n              else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }" if (parenthesized_expression "((int)uVar23 < 1)" ( (binary_expression "(int)uVar23 < 1" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                iVar24 = *(int *)(iVar28 + 0x18);\n                iVar5 = 0;\n              }" { (expression_statement "iVar24 = *(int *)(iVar28 + 0x18);" (assignment_expression "iVar24 = *(int *)(iVar28 + 0x18)" identifier = (pointer_expression "*(int *)(iVar28 + 0x18)" * (cast_expression "(int *)(iVar28 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x18)" ( (binary_expression "iVar28 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }" else (compound_statement "{\n                uVar25 = 0;\n                iVar5 = 0;\n                uStack_20b8 = 0;\n                iVar22 = 0;\n                dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);\n              }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "uStack_20b8 = 0;" (assignment_expression "uStack_20b8 = 0" identifier = number_literal) ;) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8);" (assignment_expression "dVar31 = *(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8)" * (cast_expression "(double *)(*(int *)(puVar26 + 0x285ad8) + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x285ad8) + -0x5ae8)" ( (binary_expression "*(int *)(puVar26 + 0x285ad8) + -0x5ae8" (pointer_expression "*(int *)(puVar26 + 0x285ad8)" * (cast_expression "(int *)(puVar26 + 0x285ad8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x285ad8)" ( (binary_expression "puVar26 + 0x285ad8" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                } while (uVar23 != uStack_20b8);" do (compound_statement "{\n                  dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);\n                  iVar24 = iVar22;\n                  do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);\nLAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar22 = iVar22 + uVar23 + iVar24;\n                }" { (expression_statement "dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410);" (assignment_expression "dVar30 = *(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410)" identifier = (pointer_expression "*(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410)" * (cast_expression "(double *)(*(int *)(puVar26 + 0x285ad0) + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar26 + 0x285ad0) + 0x1410)" ( (binary_expression "*(int *)(puVar26 + 0x285ad0) + 0x1410" (pointer_expression "*(int *)(puVar26 + 0x285ad0)" * (cast_expression "(int *)(puVar26 + 0x285ad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x285ad0)" ( (binary_expression "puVar26 + 0x285ad0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar24 = iVar22;" (assignment_expression "iVar24 = iVar22" identifier = identifier) ;) (do_statement "do {\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  } while (uVar23 + iVar22 != iVar24);" do (compound_statement "{\n                    while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }\n                    dVar29 = (double)(float)dVar29 / dVar32;\n                    puVar11 = puVar21 + 0xff;\n                    if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }\n                    uVar15 = *puVar11 + 1;\n                    *puVar11 = uVar15;\n                    if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }\n                    iVar24 = iVar24 + 1;\n                    if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }\n                  }" { (while_statement "while( true ) {\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);\n                      if (0.0 < (float)dVar29) break;\n                      uVar15 = *puVar21 + 1;\n                      *puVar21 = uVar15;\n                      if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }\n                      iVar24 = iVar24 + 1;\n                      if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }\n                      if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;\n                    }" { (expression_statement "dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4);" (assignment_expression "dVar29 = (double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4)" identifier = (cast_expression "(double)(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar26 + 0x286048))\n                                                 (iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4)" (parenthesized_expression "(**(code **)(puVar26 + 0x286048))" ( (pointer_expression "**(code **)(puVar26 + 0x286048)" * (pointer_expression "*(code **)(puVar26 + 0x286048)" * (cast_expression "(code **)(puVar26 + 0x286048)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x286048)" ( (binary_expression "puVar26 + 0x286048" identifier + number_literal) ))))) )) (argument_list "(iVar28,*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4)" ( identifier , (binary_expression "*(int *)(iVar28 + 0x2c0) * 4 * iVar24 +\n                                                         iVar4" (binary_expression "*(int *)(iVar28 + 0x2c0) * 4 * iVar24" (binary_expression "*(int *)(iVar28 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar28 + 0x2c0)" * (cast_expression "(int *)(iVar28 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x2c0)" ( (binary_expression "iVar28 + 0x2c0" identifier + number_literal) )))) * number_literal) * identifier) + identifier) ))))) ;) (if_statement "if (0.0 < (float)dVar29) break;" if (parenthesized_expression "(0.0 < (float)dVar29)" ( (binary_expression "0.0 < (float)dVar29" number_literal < (cast_expression "(float)dVar29" ( (type_descriptor "float" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar15 = *puVar21 + 1;" (assignment_expression "uVar15 = *puVar21 + 1" identifier = (binary_expression "*puVar21 + 1" (pointer_expression "*puVar21" * identifier) + number_literal)) ;) (expression_statement "*puVar21 = uVar15;" (assignment_expression "*puVar21 = uVar15" (pointer_expression "*puVar21" * identifier) = identifier) ;) (if_statement "if (uVar25 < uVar15) {\n                        iVar5 = iVar24;\n                      }" if (parenthesized_expression "(uVar25 < uVar15)" ( (binary_expression "uVar25 < uVar15" identifier < identifier) )) (compound_statement "{\n                        iVar5 = iVar24;\n                      }" { (expression_statement "iVar5 = iVar24;" (assignment_expression "iVar5 = iVar24" identifier = identifier) ;) })) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (if_statement "if (uVar25 < uVar15) {\n                        uVar25 = uVar15;\n                      }" if (parenthesized_expression "(uVar25 < uVar15)" ( (binary_expression "uVar25 < uVar15" identifier < identifier) )) (compound_statement "{\n                        uVar25 = uVar15;\n                      }" { (expression_statement "uVar25 = uVar15;" (assignment_expression "uVar25 = uVar15" identifier = identifier) ;) })) (if_statement "if (uVar23 + iVar22 == iVar24) goto LAB_001230d8;" if (parenthesized_expression "(uVar23 + iVar22 == iVar24)" ( (binary_expression "uVar23 + iVar22 == iVar24" (binary_expression "uVar23 + iVar22" identifier + identifier) == identifier) )) (goto_statement "goto LAB_001230d8;" goto statement_identifier ;)) })) (expression_statement "dVar29 = (double)(float)dVar29 / dVar32;" (assignment_expression "dVar29 = (double)(float)dVar29 / dVar32" identifier = (binary_expression "(double)(float)dVar29 / dVar32" (cast_expression "(double)(float)dVar29" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)dVar29" ( (type_descriptor "float" primitive_type) ) identifier)) / identifier)) ;) (expression_statement "puVar11 = puVar21 + 0xff;" (assignment_expression "puVar11 = puVar21 + 0xff" identifier = (binary_expression "puVar21 + 0xff" identifier + number_literal)) ;) (if_statement "if (dVar29 < dVar31) {\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }" if (parenthesized_expression "(dVar29 < dVar31)" ( (binary_expression "dVar29 < dVar31" identifier < identifier) )) (compound_statement "{\n                      dVar29 = dVar29 + dVar33;\n                      if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }\n                      puVar11 = puVar21 + ((int)dVar29 & 0xff);\n                    }" { (expression_statement "dVar29 = dVar29 + dVar33;" (assignment_expression "dVar29 = dVar29 + dVar33" identifier = (binary_expression "dVar29 + dVar33" identifier + identifier)) ;) (if_statement "if (dVar30 <= dVar29) {\n                        dVar29 = dVar29 - dVar30;\n                      }" if (parenthesized_expression "(dVar30 <= dVar29)" ( (binary_expression "dVar30 <= dVar29" identifier <= identifier) )) (compound_statement "{\n                        dVar29 = dVar29 - dVar30;\n                      }" { (expression_statement "dVar29 = dVar29 - dVar30;" (assignment_expression "dVar29 = dVar29 - dVar30" identifier = (binary_expression "dVar29 - dVar30" identifier - identifier)) ;) })) (expression_statement "puVar11 = puVar21 + ((int)dVar29 & 0xff);" (assignment_expression "puVar11 = puVar21 + ((int)dVar29 & 0xff)" identifier = (binary_expression "puVar21 + ((int)dVar29 & 0xff)" identifier + (parenthesized_expression "((int)dVar29 & 0xff)" ( (binary_expression "(int)dVar29 & 0xff" (cast_expression "(int)dVar29" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) )))) ;) })) (expression_statement "uVar15 = *puVar11 + 1;" (assignment_expression "uVar15 = *puVar11 + 1" identifier = (binary_expression "*puVar11 + 1" (pointer_expression "*puVar11" * identifier) + number_literal)) ;) (expression_statement "*puVar11 = uVar15;" (assignment_expression "*puVar11 = uVar15" (pointer_expression "*puVar11" * identifier) = identifier) ;) (if_statement "if (uVar25 < uVar15) {\n                      iVar5 = iVar24;\n                    }" if (parenthesized_expression "(uVar25 < uVar15)" ( (binary_expression "uVar25 < uVar15" identifier < identifier) )) (compound_statement "{\n                      iVar5 = iVar24;\n                    }" { (expression_statement "iVar5 = iVar24;" (assignment_expression "iVar5 = iVar24" identifier = identifier) ;) })) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (if_statement "if (uVar25 < uVar15) {\n                      uVar25 = uVar15;\n                    }" if (parenthesized_expression "(uVar25 < uVar15)" ( (binary_expression "uVar25 < uVar15" identifier < identifier) )) (compound_statement "{\n                      uVar25 = uVar15;\n                    }" { (expression_statement "uVar25 = uVar15;" (assignment_expression "uVar25 = uVar15" identifier = identifier) ;) })) }) while (parenthesized_expression "(uVar23 + iVar22 != iVar24)" ( (binary_expression "uVar23 + iVar22 != iVar24" (binary_expression "uVar23 + iVar22" identifier + identifier) != identifier) )) ;) (labeled_statement "LAB_001230d8:\n                  iVar24 = *(int *)(iVar28 + 0x18);" statement_identifier : (expression_statement "iVar24 = *(int *)(iVar28 + 0x18);" (assignment_expression "iVar24 = *(int *)(iVar28 + 0x18)" identifier = (pointer_expression "*(int *)(iVar28 + 0x18)" * (cast_expression "(int *)(iVar28 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x18)" ( (binary_expression "iVar28 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "uStack_20b8 = uStack_20b8 + 1;" (assignment_expression "uStack_20b8 = uStack_20b8 + 1" identifier = (binary_expression "uStack_20b8 + 1" identifier + number_literal)) ;) (expression_statement "iVar22 = iVar22 + uVar23 + iVar24;" (assignment_expression "iVar22 = iVar22 + uVar23 + iVar24" identifier = (binary_expression "iVar22 + uVar23 + iVar24" (binary_expression "iVar22 + uVar23" identifier + identifier) + identifier)) ;) }) while (parenthesized_expression "(uVar23 != uStack_20b8)" ( (binary_expression "uVar23 != uStack_20b8" identifier != identifier) )) ;) }))) (expression_statement "iVar22 = *(int *)(iVar28 + 0x2c0);" (assignment_expression "iVar22 = *(int *)(iVar28 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar28 + 0x2c0)" * (cast_expression "(int *)(iVar28 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x2c0)" ( (binary_expression "iVar28 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar22) {\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }" if (parenthesized_expression "(0 < iVar22)" ( (binary_expression "0 < iVar22" number_literal < identifier) )) (compound_statement "{\n                piVar17 = *(int **)(iVar28 + 0x2d0);\n                puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);\n                iVar18 = *(int *)(iVar13 + 0x2d0);\n                piVar20 = piVar17;\n                do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);\n              }" { (expression_statement "piVar17 = *(int **)(iVar28 + 0x2d0);" (assignment_expression "piVar17 = *(int **)(iVar28 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar28 + 0x2d0)" * (cast_expression "(int **)(iVar28 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar28 + 0x2d0)" ( (binary_expression "iVar28 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "puVar12 = (undefined4 *)(iVar4 + iVar8 * 4);" (assignment_expression "puVar12 = (undefined4 *)(iVar4 + iVar8 * 4)" identifier = (cast_expression "(undefined4 *)(iVar4 + iVar8 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + iVar8 * 4)" ( (binary_expression "iVar4 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar18 = *(int *)(iVar13 + 0x2d0);" (assignment_expression "iVar18 = *(int *)(iVar13 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar13 + 0x2d0)" * (cast_expression "(int *)(iVar13 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x2d0)" ( (binary_expression "iVar13 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar20 = piVar17;" (assignment_expression "piVar20 = piVar17" identifier = identifier) ;) (do_statement "do {\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                } while (piVar17 + iVar22 * 3 != piVar20);" do (compound_statement "{\n                  iVar6 = iVar18 + *piVar20 * 0xc;\n                  if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }\n                  piVar20 = piVar20 + 3;\n                  puVar12 = puVar12 + 1;\n                }" { (expression_statement "iVar6 = iVar18 + *piVar20 * 0xc;" (assignment_expression "iVar6 = iVar18 + *piVar20 * 0xc" identifier = (binary_expression "iVar18 + *piVar20 * 0xc" identifier + (binary_expression "*piVar20 * 0xc" (pointer_expression "*piVar20" * identifier) * number_literal))) ;) (if_statement "if ((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)) {\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }" if (parenthesized_expression "((piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0))" ( (binary_expression "(piVar17[*piVar20 * 3 + 1] != 0) &&\n                     (uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)" (parenthesized_expression "(piVar17[*piVar20 * 3 + 1] != 0)" ( (binary_expression "piVar17[*piVar20 * 3 + 1] != 0" (subscript_expression "piVar17[*piVar20 * 3 + 1]" identifier [ (binary_expression "*piVar20 * 3 + 1" (binary_expression "*piVar20 * 3" (pointer_expression "*piVar20" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0)" ( (comma_expression "uVar25 = *(uint *)(iVar6 + 4), uVar25 != 0" (assignment_expression "uVar25 = *(uint *)(iVar6 + 4)" identifier = (pointer_expression "*(uint *)(iVar6 + 4)" * (cast_expression "(uint *)(iVar6 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) ))))) , (binary_expression "uVar25 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);\n                    if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }\n                  }" { (expression_statement "puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4);" (assignment_expression "puVar7 = (undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4)" identifier = (cast_expression "(undefined4 *)(iStack_20b4 + *(int *)(iVar6 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_20b4 + *(int *)(iVar6 + 8) * 4)" ( (binary_expression "iStack_20b4 + *(int *)(iVar6 + 8) * 4" identifier + (binary_expression "*(int *)(iVar6 + 8) * 4" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) * number_literal)) )))) ;) (if_statement "if ((uVar25 & 1) == 0) {\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }\n                    else {\n                      *puVar7 = *puVar12;\n                    }" if (parenthesized_expression "((uVar25 & 1) == 0)" ( (binary_expression "(uVar25 & 1) == 0" (parenthesized_expression "(uVar25 & 1)" ( (binary_expression "uVar25 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                      *puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);\n                    }" { (expression_statement "*puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4);" (assignment_expression "*puVar7 = *(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4)" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4)" * (cast_expression "(undefined4 *)((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4)" ( (binary_expression "(int)puVar12 + iVar22 * 4 * iVar5 + iVar8 * -4" (binary_expression "(int)puVar12 + iVar22 * 4 * iVar5" (cast_expression "(int)puVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar22 * 4 * iVar5" (binary_expression "iVar22 * 4" identifier * number_literal) * identifier)) + (binary_expression "iVar8 * -4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                      *puVar7 = *puVar12;\n                    }" else (compound_statement "{\n                      *puVar7 = *puVar12;\n                    }" { (expression_statement "*puVar7 = *puVar12;" (assignment_expression "*puVar7 = *puVar12" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*puVar12" * identifier)) ;) }))) })) (expression_statement "piVar20 = piVar20 + 3;" (assignment_expression "piVar20 = piVar20 + 3" identifier = (binary_expression "piVar20 + 3" identifier + number_literal)) ;) (expression_statement "puVar12 = puVar12 + 1;" (assignment_expression "puVar12 = puVar12 + 1" identifier = (binary_expression "puVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar17 + iVar22 * 3 != piVar20)" ( (binary_expression "piVar17 + iVar22 * 3 != piVar20" (binary_expression "piVar17 + iVar22 * 3" identifier + (binary_expression "iVar22 * 3" identifier * number_literal)) != identifier) )) ;) })) (expression_statement "iVar4 = iVar4 + iVar22 * 4;" (assignment_expression "iVar4 = iVar4 + iVar22 * 4" identifier = (binary_expression "iVar4 + iVar22 * 4" identifier + (binary_expression "iVar22 * 4" identifier * number_literal))) ;) (expression_statement "iStack_20ac = iStack_20ac + 1;" (assignment_expression "iStack_20ac = iStack_20ac + 1" identifier = (binary_expression "iStack_20ac + 1" identifier + number_literal)) ;) (expression_statement "iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4;" (assignment_expression "iStack_20b4 = iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4" identifier = (binary_expression "iStack_20b4 + *(int *)(iVar13 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar13 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar13 + 0x2c0)" * (cast_expression "(int *)(iVar13 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x2c0)" ( (binary_expression "iVar13 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iStack_20ac < iVar24)" ( (binary_expression "iStack_20ac < iVar24" identifier < identifier) )) ;) })) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3);" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3)" identifier = (call_expression "(**(code **)(puVar26 + 0x2866e8))(uVar14,uVar3)" (parenthesized_expression "(**(code **)(puVar26 + 0x2866e8))" ( (pointer_expression "**(code **)(puVar26 + 0x2866e8)" * (pointer_expression "*(code **)(puVar26 + 0x2866e8)" * (cast_expression "(code **)(puVar26 + 0x2866e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2866e8)" ( (binary_expression "puVar26 + 0x2866e8" identifier + number_literal) ))))) )) (argument_list "(uVar14,uVar3)" ( identifier , identifier )))) ;) (if_statement "if (iVar4 == 0) {\n            puVar10[8] = 0;\n          }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar10[8] = 0;\n          }" { (expression_statement "puVar10[8] = 0;" (assignment_expression "puVar10[8] = 0" (subscript_expression "puVar10[8]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar28 + 0x328) != 0) {\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }" if (parenthesized_expression "(*(int *)(iVar28 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar28 + 0x328) != 0" (pointer_expression "*(int *)(iVar28 + 0x328)" * (cast_expression "(int *)(iVar28 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x328)" ( (binary_expression "iVar28 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar20 = (int *)puVar10[9];\n            (**(code **)(puVar26 + 0x2864d4))();\n            uVar25 = piVar20[1];\n            pcVar27 = *(code **)(puVar26 + 0x286628);\n            uVar15 = uVar25 + 1;\n            piVar20[1] = uVar15;\n            *piVar20 = (uint)(uVar15 < uVar25) + *piVar20;\n            (*pcVar27)();\n            iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));\n            if (iVar4 == 0) goto LAB_0012325c;\n          }" { (expression_statement "piVar20 = (int *)puVar10[9];" (assignment_expression "piVar20 = (int *)puVar10[9]" identifier = (cast_expression "(int *)puVar10[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[9]" identifier [ number_literal ]))) ;) (expression_statement "(**(code **)(puVar26 + 0x2864d4))();" (call_expression "(**(code **)(puVar26 + 0x2864d4))()" (parenthesized_expression "(**(code **)(puVar26 + 0x2864d4))" ( (pointer_expression "**(code **)(puVar26 + 0x2864d4)" * (pointer_expression "*(code **)(puVar26 + 0x2864d4)" * (cast_expression "(code **)(puVar26 + 0x2864d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x2864d4)" ( (binary_expression "puVar26 + 0x2864d4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar25 = piVar20[1];" (assignment_expression "uVar25 = piVar20[1]" identifier = (subscript_expression "piVar20[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar27 = *(code **)(puVar26 + 0x286628);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0x286628)" identifier = (pointer_expression "*(code **)(puVar26 + 0x286628)" * (cast_expression "(code **)(puVar26 + 0x286628)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x286628)" ( (binary_expression "puVar26 + 0x286628" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = uVar25 + 1;" (assignment_expression "uVar15 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (expression_statement "piVar20[1] = uVar15;" (assignment_expression "piVar20[1] = uVar15" (subscript_expression "piVar20[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar20 = (uint)(uVar15 < uVar25) + *piVar20;" (assignment_expression "*piVar20 = (uint)(uVar15 < uVar25) + *piVar20" (pointer_expression "*piVar20" * identifier) = (binary_expression "(uint)(uVar15 < uVar25) + *piVar20" (call_expression "(uint)(uVar15 < uVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 < uVar25)" ( (binary_expression "uVar15 < uVar25" identifier < identifier) ))) + (pointer_expression "*piVar20" * identifier))) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c));" (assignment_expression "iVar4 = (**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c))" identifier = (call_expression "(**(code **)(puVar26 + 0x285ea4))\n                              (iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c))" (parenthesized_expression "(**(code **)(puVar26 + 0x285ea4))" ( (pointer_expression "**(code **)(puVar26 + 0x285ea4)" * (pointer_expression "*(code **)(puVar26 + 0x285ea4)" * (cast_expression "(code **)(puVar26 + 0x285ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0x285ea4)" ( (binary_expression "puVar26 + 0x285ea4" identifier + number_literal) ))))) )) (argument_list "(iVar28,*(int *)(puVar26 + 0x285ad4) + 0x29d0,\n                               *(undefined4 *)puVar10[9],((undefined4 *)puVar10[9])[1],0,\n                               *(undefined4 *)(iVar28 + 0x1c))" ( identifier , (binary_expression "*(int *)(puVar26 + 0x285ad4) + 0x29d0" (pointer_expression "*(int *)(puVar26 + 0x285ad4)" * (cast_expression "(int *)(puVar26 + 0x285ad4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0x285ad4)" ( (binary_expression "puVar26 + 0x285ad4" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)puVar10[9]" * (cast_expression "(undefined4 *)puVar10[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[9]" identifier [ number_literal ]))) , (subscript_expression "((undefined4 *)puVar10[9])[1]" (parenthesized_expression "((undefined4 *)puVar10[9])" ( (cast_expression "(undefined4 *)puVar10[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[9]" identifier [ number_literal ])) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar28 + 0x1c)" * (cast_expression "(undefined4 *)(iVar28 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x1c)" ( (binary_expression "iVar28 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar4 == 0) goto LAB_0012325c;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0012325c;" goto statement_identifier ;)) })) }))) })) (expression_statement "MStack_20a8 = MStack_20a8 + MagickTrue;" (assignment_expression "MStack_20a8 = MStack_20a8 + MagickTrue" identifier = (binary_expression "MStack_20a8 + MagickTrue" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar34 + MVar1 != MStack_20a8)" ( (binary_expression "iVar34 + MVar1 != MStack_20a8" (binary_expression "iVar34 + MVar1" identifier + identifier) != identifier) )) ;) })) (return_statement "return MStack_20a8;" return identifier ;) })))
(translation_unit "void DefineImageOption(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  undefined *puVar15;\n  int *piVar16;\n  int iVar17;\n  char *pcVar18;\n  int *piVar19;\n  uint *puVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  int iVar33;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  int iStack_20a8;\n  char local_201c;\n  char local_201b [4095];\n  undefined1 local_101c [4096];\n  int local_1c;\n  \n  puVar25 = PTR___stack_chk_guard_003a9230;\n  local_1c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar15 = PTR_s_t_to_left_003a88e4;\n  if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }\n  puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar25 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);\n  iVar27 = puVar8[3];\n  iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();\n  iVar1 = (**(code **)(puVar25 + 0x2866f8))();\n  if (iStack_20a8 == 0) {\n    trap(7);\n  }\n  iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;\n  iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;\n  if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }\n  iStack_20a8 = iVar33 * iVar1 + iStack_20a8;\n  iVar33 = iVar33 + iStack_20a8;\n  if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }\n  return;\n}\n\n" (function_definition "void DefineImageOption(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  undefined *puVar15;\n  int *piVar16;\n  int iVar17;\n  char *pcVar18;\n  int *piVar19;\n  uint *puVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  int iVar33;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  int iStack_20a8;\n  char local_201c;\n  char local_201b [4095];\n  undefined1 local_101c [4096];\n  int local_1c;\n  \n  puVar25 = PTR___stack_chk_guard_003a9230;\n  local_1c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar15 = PTR_s_t_to_left_003a88e4;\n  if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }\n  puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar25 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);\n  iVar27 = puVar8[3];\n  iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();\n  iVar1 = (**(code **)(puVar25 + 0x2866f8))();\n  if (iStack_20a8 == 0) {\n    trap(7);\n  }\n  iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;\n  iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;\n  if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }\n  iStack_20a8 = iVar33 * iVar1 + iStack_20a8;\n  iVar33 = iVar33 + iStack_20a8;\n  if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }\n  return;\n}" primitive_type (function_declarator "DefineImageOption(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  undefined *puVar15;\n  int *piVar16;\n  int iVar17;\n  char *pcVar18;\n  int *piVar19;\n  uint *puVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  int iVar33;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  int iStack_20a8;\n  char local_201c;\n  char local_201b [4095];\n  undefined1 local_101c [4096];\n  int local_1c;\n  \n  puVar25 = PTR___stack_chk_guard_003a9230;\n  local_1c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar15 = PTR_s_t_to_left_003a88e4;\n  if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }\n  puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar25 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);\n  iVar27 = puVar8[3];\n  iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();\n  iVar1 = (**(code **)(puVar25 + 0x2866f8))();\n  if (iStack_20a8 == 0) {\n    trap(7);\n  }\n  iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;\n  iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;\n  if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }\n  iStack_20a8 = iVar33 * iVar1 + iStack_20a8;\n  iVar33 = iVar33 + iStack_20a8;\n  if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "double dVar28;" primitive_type identifier ;) (declaration "double dVar29;" primitive_type identifier ;) (declaration "double dVar30;" primitive_type identifier ;) (declaration "double dVar31;" primitive_type identifier ;) (declaration "double dVar32;" primitive_type identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "uint uStack_20b8;" type_identifier identifier ;) (declaration "int iStack_20b4;" primitive_type identifier ;) (declaration "int iStack_20ac;" primitive_type identifier ;) (declaration "int iStack_20a8;" primitive_type identifier ;) (declaration "char local_201c;" primitive_type identifier ;) (declaration "char local_201b [4095];" primitive_type (array_declarator "local_201b [4095]" identifier [ number_literal ]) ;) (declaration "undefined1 local_101c [4096];" type_identifier (array_declarator "local_101c [4096]" identifier [ number_literal ]) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar25 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar25 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_003a9230" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" * (cast_expression "(int *)PTR___stack_chk_guard_003a9230" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar15 = PTR_s_t_to_left_003a88e4;" (assignment_expression "puVar15 = PTR_s_t_to_left_003a88e4" identifier = identifier) ;) (if_statement "if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }" { (if_statement "if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }" { (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_201c,param_2,0x1000)" ( (pointer_expression "&local_201c" & identifier) , identifier , number_literal ))) ;) (expression_statement "pcVar18 = &local_201c;" (assignment_expression "pcVar18 = &local_201c" identifier = (pointer_expression "&local_201c" & identifier)) ;) (while_statement "while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }" while (parenthesized_expression "(local_201c != '\0')" ( (binary_expression "local_201c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }" { (if_statement "if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }" if (parenthesized_expression "(local_201c == '=')" ( (binary_expression "local_201c == '='" identifier == (char_literal "'='" ' character ')) )) (compound_statement "{\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }" { (expression_statement "local_101c[0] = 0;" (assignment_expression "local_101c[0] = 0" (subscript_expression "local_101c[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" ( (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" * (cast_expression "(code *)PTR_CopyMagickString_003a983c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_101c,pcVar18 + 1,0x1000)" ( identifier , (binary_expression "pcVar18 + 1" identifier + number_literal) , number_literal ))) ;) (goto_statement "goto LAB_00122d50;" goto statement_identifier ;) })) (expression_statement "pcVar18 = pcVar18 + 1;" (assignment_expression "pcVar18 = pcVar18 + 1" identifier = (binary_expression "pcVar18 + 1" identifier + number_literal)) ;) (expression_statement "local_201c = *pcVar18;" (assignment_expression "local_201c = *pcVar18" identifier = (pointer_expression "*pcVar18" * identifier)) ;) })) (expression_statement "local_101c[0] = 0;" (assignment_expression "local_101c[0] = 0" (subscript_expression "local_101c[0]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00122d50:\n      *pcVar18 = '\0';" statement_identifier : (expression_statement "*pcVar18 = '\0';" (assignment_expression "*pcVar18 = '\0'" (pointer_expression "*pcVar18" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (expression_statement "(*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);" (call_expression "(*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c)" (parenthesized_expression "(*(code *)PTR_SetImageOption_003a8c80)" ( (pointer_expression "*(code *)PTR_SetImageOption_003a8c80" * (cast_expression "(code *)PTR_SetImageOption_003a8c80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_201c,local_101c)" ( identifier , (pointer_expression "&local_201c" & identifier) , identifier ))) ;) (if_statement "if (local_1c == *(int *)puVar25) {\n        return;\n      }" if (parenthesized_expression "(local_1c == *(int *)puVar25)" ( (binary_expression "local_1c == *(int *)puVar25" identifier == (pointer_expression "*(int *)puVar25" * (cast_expression "(int *)puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" * (cast_expression "(code *)PTR___stack_chk_fail_003a9064" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "puVar15 = puVar15 + -0x1254;" (assignment_expression "puVar15 = puVar15 + -0x1254" identifier = (binary_expression "puVar15 + -0x1254" identifier + number_literal)) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15)" ( (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88" identifier + number_literal) , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x1210" identifier + number_literal) , number_literal , identifier ))) ;) })) (expression_statement "puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);" (assignment_expression "puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88)" identifier = (cast_expression "(undefined4 *)(PTR_LAB_003a88e0 + 0x1c88)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1c88)" ( (binary_expression "PTR_LAB_003a88e0 + 0x1c88" identifier + number_literal) )))) ;) (expression_statement "puVar25 = PTR___assert_fail_003a9608;" (assignment_expression "puVar25 = PTR___assert_fail_003a9608" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" ( (pointer_expression "*(code *)PTR___assert_fail_003a9608" * (cast_expression "(code *)PTR___assert_fail_003a9608" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254)" ( identifier , (binary_expression "PTR_s_t_to_left_003a88e4 + -0x1210" identifier + number_literal) , number_literal , (binary_expression "puVar15 + -0x1254" identifier + number_literal) ))) ;) (expression_statement "iVar27 = puVar8[3];" (assignment_expression "iVar27 = puVar8[3]" identifier = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();" (assignment_expression "iStack_20a8 = (**(code **)(puVar25 + 0x286afc))()" identifier = (call_expression "(**(code **)(puVar25 + 0x286afc))()" (parenthesized_expression "(**(code **)(puVar25 + 0x286afc))" ( (pointer_expression "**(code **)(puVar25 + 0x286afc)" * (pointer_expression "*(code **)(puVar25 + 0x286afc)" * (cast_expression "(code **)(puVar25 + 0x286afc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x286afc)" ( (binary_expression "puVar25 + 0x286afc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar1 = (**(code **)(puVar25 + 0x2866f8))();" (assignment_expression "iVar1 = (**(code **)(puVar25 + 0x2866f8))()" identifier = (call_expression "(**(code **)(puVar25 + 0x2866f8))()" (parenthesized_expression "(**(code **)(puVar25 + 0x2866f8))" ( (pointer_expression "**(code **)(puVar25 + 0x2866f8)" * (pointer_expression "*(code **)(puVar25 + 0x2866f8)" * (cast_expression "(code **)(puVar25 + 0x2866f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x2866f8)" ( (binary_expression "puVar25 + 0x2866f8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iStack_20a8 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iStack_20a8 == 0)" ( (binary_expression "iStack_20a8 == 0" identifier == number_literal) )) (compound_statement "{\n    trap(7);\n  }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;" (assignment_expression "iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8" identifier = (binary_expression "*(int *)(iVar27 + 0x1c) / iStack_20a8" (pointer_expression "*(int *)(iVar27 + 0x1c)" * (cast_expression "(int *)(iVar27 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x1c)" ( (binary_expression "iVar27 + 0x1c" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;" (assignment_expression "iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8" identifier = (binary_expression "*(int *)(iVar27 + 0x1c) % iStack_20a8" (pointer_expression "*(int *)(iVar27 + 0x1c)" * (cast_expression "(int *)(iVar27 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x1c)" ( (binary_expression "iVar27 + 0x1c" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }" if (parenthesized_expression "(iVar1 < iStack_20a8)" ( (binary_expression "iVar1 < iStack_20a8" identifier < identifier) )) (compound_statement "{\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }" { (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "iStack_20a8 = 0;" (assignment_expression "iStack_20a8 = 0" identifier = number_literal) ;) })) (expression_statement "iStack_20a8 = iVar33 * iVar1 + iStack_20a8;" (assignment_expression "iStack_20a8 = iVar33 * iVar1 + iStack_20a8" identifier = (binary_expression "iVar33 * iVar1 + iStack_20a8" (binary_expression "iVar33 * iVar1" identifier * identifier) + identifier)) ;) (expression_statement "iVar33 = iVar33 + iStack_20a8;" (assignment_expression "iVar33 = iVar33 + iStack_20a8" identifier = (binary_expression "iVar33 + iStack_20a8" identifier + identifier)) ;) (if_statement "if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }" if (parenthesized_expression "(iStack_20a8 < iVar33)" ( (binary_expression "iStack_20a8 < iVar33" identifier < identifier) )) (compound_statement "{\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }" { (expression_statement "uVar22 = puVar8[6];" (assignment_expression "uVar22 = puVar8[6]" identifier = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);" (assignment_expression "dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" identifier = (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" * (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" ( (binary_expression "*(int *)(puVar25 + 0x285ad8) + -0x5af0" (pointer_expression "*(int *)(puVar25 + 0x285ad8)" * (cast_expression "(int *)(puVar25 + 0x285ad8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x285ad8)" ( (binary_expression "puVar25 + 0x285ad8" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar1 = puVar8[7];" (assignment_expression "iVar1 = puVar8[7]" identifier = (subscript_expression "puVar8[7]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = puVar8[4];" (assignment_expression "iVar12 = puVar8[4]" identifier = (subscript_expression "puVar8[4]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = puVar8[5];" (assignment_expression "iVar9 = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = puVar8[2];" (assignment_expression "uVar13 = puVar8[2]" identifier = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);" (assignment_expression "dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400)" identifier = (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400)" * (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x285ad0) + 0x1400)" ( (binary_expression "*(int *)(puVar25 + 0x285ad0) + 0x1400" (pointer_expression "*(int *)(puVar25 + 0x285ad0)" * (cast_expression "(int *)(puVar25 + 0x285ad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x285ad0)" ( (binary_expression "puVar25 + 0x285ad0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar2 = *puVar8;" (assignment_expression "uVar2 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "uVar7 = puVar8[1];" (assignment_expression "uVar7 = puVar8[1]" identifier = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);" do (compound_statement "{\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    }" { (if_statement "if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }" if (parenthesized_expression "(puVar8[8] != 0)" ( (binary_expression "puVar8[8] != 0" (subscript_expression "puVar8[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }" { (expression_statement "iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2)" identifier = (call_expression "(**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2)" (parenthesized_expression "(**(code **)(puVar25 + 0x28684c))" ( (pointer_expression "**(code **)(puVar25 + 0x28684c)" * (pointer_expression "*(code **)(puVar25 + 0x28684c)" * (cast_expression "(code **)(puVar25 + 0x28684c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x28684c)" ( (binary_expression "puVar25 + 0x28684c" identifier + number_literal) ))))) )) (argument_list "(uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2)" ( identifier , (unary_expression "-((int)uVar22 / 2)" - (parenthesized_expression "((int)uVar22 / 2)" ( (binary_expression "(int)uVar22 / 2" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) / number_literal) ))) , (binary_expression "iStack_20a8 - (uVar22 >> 1)" identifier - (parenthesized_expression "(uVar22 >> 1)" ( (binary_expression "uVar22 >> 1" identifier >> number_literal) ))) , (binary_expression "uVar22 + *(int *)(iVar27 + 0x18)" identifier + (pointer_expression "*(int *)(iVar27 + 0x18)" * (cast_expression "(int *)(iVar27 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x18)" ( (binary_expression "iVar27 + 0x18" identifier + number_literal) ))))) , identifier , identifier )))) ;) (expression_statement "iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);" (assignment_expression "iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2)" identifier = (call_expression "(**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2)" (parenthesized_expression "(**(code **)(puVar25 + 0x285e40))" ( (pointer_expression "**(code **)(puVar25 + 0x285e40)" * (pointer_expression "*(code **)(puVar25 + 0x285e40)" * (cast_expression "(code **)(puVar25 + 0x285e40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x285e40)" ( (binary_expression "puVar25 + 0x285e40" identifier + number_literal) ))))) )) (argument_list "(uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" * (cast_expression "(undefined4 *)(iVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) )))) , number_literal , identifier )))) ;) (if_statement "if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }" if (parenthesized_expression "((iVar3 == 0) || (iStack_20b4 == 0))" ( (binary_expression "(iVar3 == 0) || (iStack_20b4 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iStack_20b4 == 0)" ( (binary_expression "iStack_20b4 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_0012325c:\n          puVar8[8] = 0;\n        }" { (labeled_statement "LAB_0012325c:\n          puVar8[8] = 0;" statement_identifier : (expression_statement "puVar8[8] = 0;" (assignment_expression "puVar8[8] = 0" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = number_literal) ;)) }) (else_clause "else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }" else (compound_statement "{\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }" { (expression_statement "iVar4 = (**(code **)(puVar25 + 0x2866f8))();" (assignment_expression "iVar4 = (**(code **)(puVar25 + 0x2866f8))()" identifier = (call_expression "(**(code **)(puVar25 + 0x2866f8))()" (parenthesized_expression "(**(code **)(puVar25 + 0x2866f8))" ( (pointer_expression "**(code **)(puVar25 + 0x2866f8)" * (pointer_expression "*(code **)(puVar25 + 0x2866f8)" * (cast_expression "(code **)(puVar25 + 0x2866f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x2866f8)" ( (binary_expression "puVar25 + 0x2866f8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "puVar20 = *(uint **)(iVar9 + iVar4 * 4);" (assignment_expression "puVar20 = *(uint **)(iVar9 + iVar4 * 4)" identifier = (pointer_expression "*(uint **)(iVar9 + iVar4 * 4)" * (cast_expression "(uint **)(iVar9 + iVar4 * 4)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + iVar4 * 4)" ( (binary_expression "iVar9 + iVar4 * 4" identifier + (binary_expression "iVar4 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }" if (parenthesized_expression "(0 < *(int *)(iVar27 + 0x18))" ( (binary_expression "0 < *(int *)(iVar27 + 0x18)" number_literal < (pointer_expression "*(int *)(iVar27 + 0x18)" * (cast_expression "(int *)(iVar27 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x18)" ( (binary_expression "iVar27 + 0x18" identifier + number_literal) ))))) )) (compound_statement "{\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }" { (expression_statement "iStack_20ac = 0;" (assignment_expression "iStack_20ac = 0" identifier = number_literal) ;) (do_statement "do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);" do (compound_statement "{\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            }" { (expression_statement "(**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);" (call_expression "(**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400)" (parenthesized_expression "(**(code **)(puVar25 + 0x2868c4))" ( (pointer_expression "**(code **)(puVar25 + 0x2868c4)" * (pointer_expression "*(code **)(puVar25 + 0x2868c4)" * (cast_expression "(code **)(puVar25 + 0x2868c4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x2868c4)" ( (binary_expression "puVar25 + 0x2868c4" identifier + number_literal) ))))) )) (argument_list "(puVar20,0,0x400)" ( identifier , number_literal , number_literal ))) ;) (if_statement "if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }" if (parenthesized_expression "((int)uVar22 < 1)" ( (binary_expression "(int)uVar22 < 1" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }" { (expression_statement "iVar23 = *(int *)(iVar27 + 0x18);" (assignment_expression "iVar23 = *(int *)(iVar27 + 0x18)" identifier = (pointer_expression "*(int *)(iVar27 + 0x18)" * (cast_expression "(int *)(iVar27 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x18)" ( (binary_expression "iVar27 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }" else (compound_statement "{\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "uStack_20b8 = 0;" (assignment_expression "uStack_20b8 = 0" identifier = number_literal) ;) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (expression_statement "dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);" (assignment_expression "dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" identifier = (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" * (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" ( (binary_expression "*(int *)(puVar25 + 0x285ad8) + -0x5ae8" (pointer_expression "*(int *)(puVar25 + 0x285ad8)" * (cast_expression "(int *)(puVar25 + 0x285ad8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x285ad8)" ( (binary_expression "puVar25 + 0x285ad8" identifier + number_literal) )))) + number_literal) ))))) ;) (do_statement "do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);" do (compound_statement "{\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                }" { (expression_statement "dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);" (assignment_expression "dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410)" identifier = (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410)" * (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0x285ad0) + 0x1410)" ( (binary_expression "*(int *)(puVar25 + 0x285ad0) + 0x1410" (pointer_expression "*(int *)(puVar25 + 0x285ad0)" * (cast_expression "(int *)(puVar25 + 0x285ad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x285ad0)" ( (binary_expression "puVar25 + 0x285ad0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar23 = iVar21;" (assignment_expression "iVar23 = iVar21" identifier = identifier) ;) (do_statement "do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);" do (compound_statement "{\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  }" { (while_statement "while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }" { (expression_statement "dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);" (assignment_expression "dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" identifier = (cast_expression "(double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" ( (type_descriptor "double" primitive_type) ) (call_expression "(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" (parenthesized_expression "(**(code **)(puVar25 + 0x286048))" ( (pointer_expression "**(code **)(puVar25 + 0x286048)" * (pointer_expression "*(code **)(puVar25 + 0x286048)" * (cast_expression "(code **)(puVar25 + 0x286048)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x286048)" ( (binary_expression "puVar25 + 0x286048" identifier + number_literal) ))))) )) (argument_list "(iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" ( identifier , (binary_expression "*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3" (binary_expression "*(int *)(iVar27 + 0x2c0) * 4 * iVar23" (binary_expression "*(int *)(iVar27 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar27 + 0x2c0)" * (cast_expression "(int *)(iVar27 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x2c0)" ( (binary_expression "iVar27 + 0x2c0" identifier + number_literal) )))) * number_literal) * identifier) + identifier) ))))) ;) (if_statement "if (0.0 < (float)dVar28) break;" if (parenthesized_expression "(0.0 < (float)dVar28)" ( (binary_expression "0.0 < (float)dVar28" number_literal < (cast_expression "(float)dVar28" ( (type_descriptor "float" primitive_type) ) identifier)) )) (break_statement "break;" break ;)) (expression_statement "uVar14 = *puVar20 + 1;" (assignment_expression "uVar14 = *puVar20 + 1" identifier = (binary_expression "*puVar20 + 1" (pointer_expression "*puVar20" * identifier) + number_literal)) ;) (expression_statement "*puVar20 = uVar14;" (assignment_expression "*puVar20 = uVar14" (pointer_expression "*puVar20" * identifier) = identifier) ;) (if_statement "if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }" if (parenthesized_expression "(uVar24 < uVar14)" ( (binary_expression "uVar24 < uVar14" identifier < identifier) )) (compound_statement "{\n                        iVar4 = iVar23;\n                      }" { (expression_statement "iVar4 = iVar23;" (assignment_expression "iVar4 = iVar23" identifier = identifier) ;) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (if_statement "if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }" if (parenthesized_expression "(uVar24 < uVar14)" ( (binary_expression "uVar24 < uVar14" identifier < identifier) )) (compound_statement "{\n                        uVar24 = uVar14;\n                      }" { (expression_statement "uVar24 = uVar14;" (assignment_expression "uVar24 = uVar14" identifier = identifier) ;) })) (if_statement "if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;" if (parenthesized_expression "(uVar22 + iVar21 == iVar23)" ( (binary_expression "uVar22 + iVar21 == iVar23" (binary_expression "uVar22 + iVar21" identifier + identifier) == identifier) )) (goto_statement "goto LAB_001230d8;" goto statement_identifier ;)) })) (expression_statement "dVar28 = (double)(float)dVar28 / dVar31;" (assignment_expression "dVar28 = (double)(float)dVar28 / dVar31" identifier = (binary_expression "(double)(float)dVar28 / dVar31" (cast_expression "(double)(float)dVar28" ( (type_descriptor "double" primitive_type) ) (cast_expression "(float)dVar28" ( (type_descriptor "float" primitive_type) ) identifier)) / identifier)) ;) (expression_statement "puVar10 = puVar20 + 0xff;" (assignment_expression "puVar10 = puVar20 + 0xff" identifier = (binary_expression "puVar20 + 0xff" identifier + number_literal)) ;) (if_statement "if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }" if (parenthesized_expression "(dVar28 < dVar30)" ( (binary_expression "dVar28 < dVar30" identifier < identifier) )) (compound_statement "{\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }" { (expression_statement "dVar28 = dVar28 + dVar32;" (assignment_expression "dVar28 = dVar28 + dVar32" identifier = (binary_expression "dVar28 + dVar32" identifier + identifier)) ;) (if_statement "if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }" if (parenthesized_expression "(dVar29 <= dVar28)" ( (binary_expression "dVar29 <= dVar28" identifier <= identifier) )) (compound_statement "{\n                        dVar28 = dVar28 - dVar29;\n                      }" { (expression_statement "dVar28 = dVar28 - dVar29;" (assignment_expression "dVar28 = dVar28 - dVar29" identifier = (binary_expression "dVar28 - dVar29" identifier - identifier)) ;) })) (expression_statement "puVar10 = puVar20 + ((int)dVar28 & 0xff);" (assignment_expression "puVar10 = puVar20 + ((int)dVar28 & 0xff)" identifier = (binary_expression "puVar20 + ((int)dVar28 & 0xff)" identifier + (parenthesized_expression "((int)dVar28 & 0xff)" ( (binary_expression "(int)dVar28 & 0xff" (cast_expression "(int)dVar28" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) )))) ;) })) (expression_statement "uVar14 = *puVar10 + 1;" (assignment_expression "uVar14 = *puVar10 + 1" identifier = (binary_expression "*puVar10 + 1" (pointer_expression "*puVar10" * identifier) + number_literal)) ;) (expression_statement "*puVar10 = uVar14;" (assignment_expression "*puVar10 = uVar14" (pointer_expression "*puVar10" * identifier) = identifier) ;) (if_statement "if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }" if (parenthesized_expression "(uVar24 < uVar14)" ( (binary_expression "uVar24 < uVar14" identifier < identifier) )) (compound_statement "{\n                      iVar4 = iVar23;\n                    }" { (expression_statement "iVar4 = iVar23;" (assignment_expression "iVar4 = iVar23" identifier = identifier) ;) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (if_statement "if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }" if (parenthesized_expression "(uVar24 < uVar14)" ( (binary_expression "uVar24 < uVar14" identifier < identifier) )) (compound_statement "{\n                      uVar24 = uVar14;\n                    }" { (expression_statement "uVar24 = uVar14;" (assignment_expression "uVar24 = uVar14" identifier = identifier) ;) })) }) while (parenthesized_expression "(uVar22 + iVar21 != iVar23)" ( (binary_expression "uVar22 + iVar21 != iVar23" (binary_expression "uVar22 + iVar21" identifier + identifier) != identifier) )) ;) (labeled_statement "LAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);" statement_identifier : (expression_statement "iVar23 = *(int *)(iVar27 + 0x18);" (assignment_expression "iVar23 = *(int *)(iVar27 + 0x18)" identifier = (pointer_expression "*(int *)(iVar27 + 0x18)" * (cast_expression "(int *)(iVar27 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x18)" ( (binary_expression "iVar27 + 0x18" identifier + number_literal) ))))) ;)) (expression_statement "uStack_20b8 = uStack_20b8 + 1;" (assignment_expression "uStack_20b8 = uStack_20b8 + 1" identifier = (binary_expression "uStack_20b8 + 1" identifier + number_literal)) ;) (expression_statement "iVar21 = iVar21 + uVar22 + iVar23;" (assignment_expression "iVar21 = iVar21 + uVar22 + iVar23" identifier = (binary_expression "iVar21 + uVar22 + iVar23" (binary_expression "iVar21 + uVar22" identifier + identifier) + identifier)) ;) }) while (parenthesized_expression "(uVar22 != uStack_20b8)" ( (binary_expression "uVar22 != uStack_20b8" identifier != identifier) )) ;) }))) (expression_statement "iVar21 = *(int *)(iVar27 + 0x2c0);" (assignment_expression "iVar21 = *(int *)(iVar27 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar27 + 0x2c0)" * (cast_expression "(int *)(iVar27 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x2c0)" ( (binary_expression "iVar27 + 0x2c0" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }" if (parenthesized_expression "(0 < iVar21)" ( (binary_expression "0 < iVar21" number_literal < identifier) )) (compound_statement "{\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }" { (expression_statement "piVar16 = *(int **)(iVar27 + 0x2d0);" (assignment_expression "piVar16 = *(int **)(iVar27 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar27 + 0x2d0)" * (cast_expression "(int **)(iVar27 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar27 + 0x2d0)" ( (binary_expression "iVar27 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);" (assignment_expression "puVar11 = (undefined4 *)(iVar3 + iVar1 * 4)" identifier = (cast_expression "(undefined4 *)(iVar3 + iVar1 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + iVar1 * 4)" ( (binary_expression "iVar3 + iVar1 * 4" identifier + (binary_expression "iVar1 * 4" identifier * number_literal)) )))) ;) (expression_statement "iVar17 = *(int *)(iVar12 + 0x2d0);" (assignment_expression "iVar17 = *(int *)(iVar12 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar12 + 0x2d0)" * (cast_expression "(int *)(iVar12 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2d0)" ( (binary_expression "iVar12 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar19 = piVar16;" (assignment_expression "piVar19 = piVar16" identifier = identifier) ;) (do_statement "do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);" do (compound_statement "{\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                }" { (expression_statement "iVar5 = iVar17 + *piVar19 * 0xc;" (assignment_expression "iVar5 = iVar17 + *piVar19 * 0xc" identifier = (binary_expression "iVar17 + *piVar19 * 0xc" identifier + (binary_expression "*piVar19 * 0xc" (pointer_expression "*piVar19" * identifier) * number_literal))) ;) (if_statement "if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }" if (parenthesized_expression "((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0))" ( (binary_expression "(piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)" (parenthesized_expression "(piVar16[*piVar19 * 3 + 1] != 0)" ( (binary_expression "piVar16[*piVar19 * 3 + 1] != 0" (subscript_expression "piVar16[*piVar19 * 3 + 1]" identifier [ (binary_expression "*piVar19 * 3 + 1" (binary_expression "*piVar19 * 3" (pointer_expression "*piVar19" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)" ( (comma_expression "uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0" (assignment_expression "uVar24 = *(uint *)(iVar5 + 4)" identifier = (pointer_expression "*(uint *)(iVar5 + 4)" * (cast_expression "(uint *)(iVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) , (binary_expression "uVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }" { (expression_statement "puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);" (assignment_expression "puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4)" identifier = (cast_expression "(undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_20b4 + *(int *)(iVar5 + 8) * 4)" ( (binary_expression "iStack_20b4 + *(int *)(iVar5 + 8) * 4" identifier + (binary_expression "*(int *)(iVar5 + 8) * 4" (pointer_expression "*(int *)(iVar5 + 8)" * (cast_expression "(int *)(iVar5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 8)" ( (binary_expression "iVar5 + 8" identifier + number_literal) )))) * number_literal)) )))) ;) (if_statement "if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }" if (parenthesized_expression "((uVar24 & 1) == 0)" ( (binary_expression "(uVar24 & 1) == 0" (parenthesized_expression "(uVar24 & 1)" ( (binary_expression "uVar24 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }" { (expression_statement "*puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);" (assignment_expression "*puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" * (cast_expression "(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" ( (binary_expression "(int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4" (binary_expression "(int)puVar11 + iVar21 * 4 * iVar4" (cast_expression "(int)puVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar21 * 4 * iVar4" (binary_expression "iVar21 * 4" identifier * number_literal) * identifier)) + (binary_expression "iVar1 * -4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                      *puVar6 = *puVar11;\n                    }" else (compound_statement "{\n                      *puVar6 = *puVar11;\n                    }" { (expression_statement "*puVar6 = *puVar11;" (assignment_expression "*puVar6 = *puVar11" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar11" * identifier)) ;) }))) })) (expression_statement "piVar19 = piVar19 + 3;" (assignment_expression "piVar19 = piVar19 + 3" identifier = (binary_expression "piVar19 + 3" identifier + number_literal)) ;) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" identifier = (binary_expression "puVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar16 + iVar21 * 3 != piVar19)" ( (binary_expression "piVar16 + iVar21 * 3 != piVar19" (binary_expression "piVar16 + iVar21 * 3" identifier + (binary_expression "iVar21 * 3" identifier * number_literal)) != identifier) )) ;) })) (expression_statement "iVar3 = iVar3 + iVar21 * 4;" (assignment_expression "iVar3 = iVar3 + iVar21 * 4" identifier = (binary_expression "iVar3 + iVar21 * 4" identifier + (binary_expression "iVar21 * 4" identifier * number_literal))) ;) (expression_statement "iStack_20ac = iStack_20ac + 1;" (assignment_expression "iStack_20ac = iStack_20ac + 1" identifier = (binary_expression "iStack_20ac + 1" identifier + number_literal)) ;) (expression_statement "iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;" (assignment_expression "iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4" identifier = (binary_expression "iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4" identifier + (binary_expression "*(int *)(iVar12 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar12 + 0x2c0)" * (cast_expression "(int *)(iVar12 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x2c0)" ( (binary_expression "iVar12 + 0x2c0" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "(iStack_20ac < iVar23)" ( (binary_expression "iStack_20ac < iVar23" identifier < identifier) )) ;) })) (expression_statement "iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2)" identifier = (call_expression "(**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2)" (parenthesized_expression "(**(code **)(puVar25 + 0x2866e8))" ( (pointer_expression "**(code **)(puVar25 + 0x2866e8)" * (pointer_expression "*(code **)(puVar25 + 0x2866e8)" * (cast_expression "(code **)(puVar25 + 0x2866e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x2866e8)" ( (binary_expression "puVar25 + 0x2866e8" identifier + number_literal) ))))) )) (argument_list "(uVar13,uVar2)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            puVar8[8] = 0;\n          }" { (expression_statement "puVar8[8] = 0;" (assignment_expression "puVar8[8] = 0" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = number_literal) ;) })) (if_statement "if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }" if (parenthesized_expression "(*(int *)(iVar27 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar27 + 0x328) != 0" (pointer_expression "*(int *)(iVar27 + 0x328)" * (cast_expression "(int *)(iVar27 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x328)" ( (binary_expression "iVar27 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }" { (expression_statement "piVar19 = (int *)puVar8[9];" (assignment_expression "piVar19 = (int *)puVar8[9]" identifier = (cast_expression "(int *)puVar8[9]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[9]" identifier [ number_literal ]))) ;) (expression_statement "(**(code **)(puVar25 + 0x2864d4))();" (call_expression "(**(code **)(puVar25 + 0x2864d4))()" (parenthesized_expression "(**(code **)(puVar25 + 0x2864d4))" ( (pointer_expression "**(code **)(puVar25 + 0x2864d4)" * (pointer_expression "*(code **)(puVar25 + 0x2864d4)" * (cast_expression "(code **)(puVar25 + 0x2864d4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x2864d4)" ( (binary_expression "puVar25 + 0x2864d4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "uVar24 = piVar19[1];" (assignment_expression "uVar24 = piVar19[1]" identifier = (subscript_expression "piVar19[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar26 = *(code **)(puVar25 + 0x286628);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0x286628)" identifier = (pointer_expression "*(code **)(puVar25 + 0x286628)" * (cast_expression "(code **)(puVar25 + 0x286628)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x286628)" ( (binary_expression "puVar25 + 0x286628" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = uVar24 + 1;" (assignment_expression "uVar14 = uVar24 + 1" identifier = (binary_expression "uVar24 + 1" identifier + number_literal)) ;) (expression_statement "piVar19[1] = uVar14;" (assignment_expression "piVar19[1] = uVar14" (subscript_expression "piVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*piVar19 = (uint)(uVar14 < uVar24) + *piVar19;" (assignment_expression "*piVar19 = (uint)(uVar14 < uVar24) + *piVar19" (pointer_expression "*piVar19" * identifier) = (binary_expression "(uint)(uVar14 < uVar24) + *piVar19" (call_expression "(uint)(uVar14 < uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar24)" ( (binary_expression "uVar14 < uVar24" identifier < identifier) ))) + (pointer_expression "*piVar19" * identifier))) ;) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c))" identifier = (call_expression "(**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c))" (parenthesized_expression "(**(code **)(puVar25 + 0x285ea4))" ( (pointer_expression "**(code **)(puVar25 + 0x285ea4)" * (pointer_expression "*(code **)(puVar25 + 0x285ea4)" * (cast_expression "(code **)(puVar25 + 0x285ea4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0x285ea4)" ( (binary_expression "puVar25 + 0x285ea4" identifier + number_literal) ))))) )) (argument_list "(iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c))" ( identifier , (binary_expression "*(int *)(puVar25 + 0x285ad4) + 0x29d0" (pointer_expression "*(int *)(puVar25 + 0x285ad4)" * (cast_expression "(int *)(puVar25 + 0x285ad4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0x285ad4)" ( (binary_expression "puVar25 + 0x285ad4" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(undefined4 *)puVar8[9]" * (cast_expression "(undefined4 *)puVar8[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[9]" identifier [ number_literal ]))) , (subscript_expression "((undefined4 *)puVar8[9])[1]" (parenthesized_expression "((undefined4 *)puVar8[9])" ( (cast_expression "(undefined4 *)puVar8[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[9]" identifier [ number_literal ])) )) [ number_literal ]) , number_literal , (pointer_expression "*(undefined4 *)(iVar27 + 0x1c)" * (cast_expression "(undefined4 *)(iVar27 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x1c)" ( (binary_expression "iVar27 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar3 == 0) goto LAB_0012325c;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0012325c;" goto statement_identifier ;)) })) }))) })) (expression_statement "iStack_20a8 = iStack_20a8 + 1;" (assignment_expression "iStack_20a8 = iStack_20a8 + 1" identifier = (binary_expression "iStack_20a8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar33 != iStack_20a8)" ( (binary_expression "iVar33 != iStack_20a8" identifier != identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) % IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / LIT) ))) , (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_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 ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (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 (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) * IDENT) + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * IDENT) * LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (pointer_expression * IDENT) * LIT) + LIT) ]) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (binary_expression IDENT * LIT) * IDENT)) + (binary_expression IDENT * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( ))) ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (pointer_expression * IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]) , LIT , (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) )) (goto_statement goto statement_identifier ;)) })) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void DefineImageOption(int param_1,int param_2)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  undefined *puVar15;\n  int *piVar16;\n  int iVar17;\n  char *pcVar18;\n  int *piVar19;\n  uint *puVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  int iVar33;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  int iStack_20a8;\n  char local_201c;\n  char local_201b [4095];\n  undefined1 local_101c [4096];\n  int local_1c;\n  \n  puVar25 = PTR___stack_chk_guard_003a9230;\n  local_1c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar15 = PTR_s_t_to_left_003a88e4;\n  if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }\n  puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar25 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);\n  iVar27 = puVar8[3];\n  iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();\n  iVar1 = (**(code **)(puVar25 + 0x2866f8))();\n  if (iStack_20a8 == 0) {\n    trap(7);\n  }\n  iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;\n  iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;\n  if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }\n  iStack_20a8 = iVar33 * iVar1 + iStack_20a8;\n  iVar33 = iVar33 + iStack_20a8;\n  if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "DefineImageOption(int param_1,int param_2)" (identifier "DefineImageOption") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint *puVar10;\n  undefined4 *puVar11;\n  int iVar12;\n  undefined4 uVar13;\n  uint uVar14;\n  undefined *puVar15;\n  int *piVar16;\n  int iVar17;\n  char *pcVar18;\n  int *piVar19;\n  uint *puVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  int iVar27;\n  double dVar28;\n  double dVar29;\n  double dVar30;\n  double dVar31;\n  double dVar32;\n  int iVar33;\n  uint uStack_20b8;\n  int iStack_20b4;\n  int iStack_20ac;\n  int iStack_20a8;\n  char local_201c;\n  char local_201b [4095];\n  undefined1 local_101c [4096];\n  int local_1c;\n  \n  puVar25 = PTR___stack_chk_guard_003a9230;\n  local_1c = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar15 = PTR_s_t_to_left_003a88e4;\n  if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }\n  puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);\n  puVar25 = PTR___assert_fail_003a9608;\n  (*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);\n  iVar27 = puVar8[3];\n  iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();\n  iVar1 = (**(code **)(puVar25 + 0x2866f8))();\n  if (iStack_20a8 == 0) {\n    trap(7);\n  }\n  iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;\n  iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;\n  if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }\n  iStack_20a8 = iVar33 * iVar1 + iStack_20a8;\n  iVar33 = iVar33 + iStack_20a8;\n  if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint *puVar10;" (type_identifier "uint") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined4 *puVar11;" (type_identifier "undefined4") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "char *pcVar18;" (primitive_type "char") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "uint *puVar20;" (type_identifier "uint") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "undefined *puVar25;" (type_identifier "undefined") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "code *pcVar26;" (type_identifier "code") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (declaration "int iVar27;" (primitive_type "int") (identifier "iVar27") (; ";")) (declaration "double dVar28;" (primitive_type "double") (identifier "dVar28") (; ";")) (declaration "double dVar29;" (primitive_type "double") (identifier "dVar29") (; ";")) (declaration "double dVar30;" (primitive_type "double") (identifier "dVar30") (; ";")) (declaration "double dVar31;" (primitive_type "double") (identifier "dVar31") (; ";")) (declaration "double dVar32;" (primitive_type "double") (identifier "dVar32") (; ";")) (declaration "int iVar33;" (primitive_type "int") (identifier "iVar33") (; ";")) (declaration "uint uStack_20b8;" (type_identifier "uint") (identifier "uStack_20b8") (; ";")) (declaration "int iStack_20b4;" (primitive_type "int") (identifier "iStack_20b4") (; ";")) (declaration "int iStack_20ac;" (primitive_type "int") (identifier "iStack_20ac") (; ";")) (declaration "int iStack_20a8;" (primitive_type "int") (identifier "iStack_20a8") (; ";")) (declaration "char local_201c;" (primitive_type "char") (identifier "local_201c") (; ";")) (declaration "char local_201b [4095];" (primitive_type "char") (array_declarator "local_201b [4095]" (identifier "local_201b") ([ "[") (number_literal "4095") (] "]")) (; ";")) (declaration "undefined1 local_101c [4096];" (type_identifier "undefined1") (array_declarator "local_101c [4096]" (identifier "local_101c") ([ "[") (number_literal "4096") (] "]")) (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "puVar25 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar25 = PTR___stack_chk_guard_003a9230" (identifier "puVar25") (= "=") (identifier "PTR___stack_chk_guard_003a9230")) (; ";")) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_003a9230" (identifier "local_1c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_003a9230" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_003a9230" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_003a9230")))) (; ";")) (expression_statement "puVar15 = PTR_s_t_to_left_003a88e4;" (assignment_expression "puVar15 = PTR_s_t_to_left_003a88e4" (identifier "puVar15") (= "=") (identifier "PTR_s_t_to_left_003a88e4")) (; ";")) (if_statement "if (param_1 != 0) {\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }\n    puVar15 = puVar15 + -0x1254;\n    (*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);\n  }" ({ "{") (if_statement "if (param_2 != 0) {\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);\n      pcVar18 = &local_201c;\n      while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }\n      local_101c[0] = 0;\nLAB_00122d50:\n      *pcVar18 = '\0';\n      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);\n      if (local_1c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_003a9064)();\n    }" ({ "{") (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" (( "(") (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" (* "*") (cast_expression "(code *)PTR_CopyMagickString_003a983c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CopyMagickString_003a983c"))) () ")")) (argument_list "(&local_201c,param_2,0x1000)" (( "(") (pointer_expression "&local_201c" (& "&") (identifier "local_201c")) (, ",") (identifier "param_2") (, ",") (number_literal "0x1000") () ")"))) (; ";")) (expression_statement "pcVar18 = &local_201c;" (assignment_expression "pcVar18 = &local_201c" (identifier "pcVar18") (= "=") (pointer_expression "&local_201c" (& "&") (identifier "local_201c"))) (; ";")) (while_statement "while (local_201c != '\0') {\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }" (while "while") (parenthesized_expression "(local_201c != '\0')" (( "(") (binary_expression "local_201c != '\0'" (identifier "local_201c") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }\n        pcVar18 = pcVar18 + 1;\n        local_201c = *pcVar18;\n      }" ({ "{") (if_statement "if (local_201c == '=') {\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }" (if "if") (parenthesized_expression "(local_201c == '=')" (( "(") (binary_expression "local_201c == '='" (identifier "local_201c") (== "==") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")")) (compound_statement "{\n          local_101c[0] = 0;\n          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);\n          goto LAB_00122d50;\n        }" ({ "{") (expression_statement "local_101c[0] = 0;" (assignment_expression "local_101c[0] = 0" (subscript_expression "local_101c[0]" (identifier "local_101c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);" (call_expression "(*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000)" (parenthesized_expression "(*(code *)PTR_CopyMagickString_003a983c)" (( "(") (pointer_expression "*(code *)PTR_CopyMagickString_003a983c" (* "*") (cast_expression "(code *)PTR_CopyMagickString_003a983c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_CopyMagickString_003a983c"))) () ")")) (argument_list "(local_101c,pcVar18 + 1,0x1000)" (( "(") (identifier "local_101c") (, ",") (binary_expression "pcVar18 + 1" (identifier "pcVar18") (+ "+") (number_literal "1")) (, ",") (number_literal "0x1000") () ")"))) (; ";")) (goto_statement "goto LAB_00122d50;" (goto "goto") (statement_identifier "LAB_00122d50") (; ";")) (} "}"))) (expression_statement "pcVar18 = pcVar18 + 1;" (assignment_expression "pcVar18 = pcVar18 + 1" (identifier "pcVar18") (= "=") (binary_expression "pcVar18 + 1" (identifier "pcVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_201c = *pcVar18;" (assignment_expression "local_201c = *pcVar18" (identifier "local_201c") (= "=") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18"))) (; ";")) (} "}"))) (expression_statement "local_101c[0] = 0;" (assignment_expression "local_101c[0] = 0" (subscript_expression "local_101c[0]" (identifier "local_101c") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00122d50:\n      *pcVar18 = '\0';" (statement_identifier "LAB_00122d50") (: ":") (expression_statement "*pcVar18 = '\0';" (assignment_expression "*pcVar18 = '\0'" (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (expression_statement "(*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);" (call_expression "(*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c)" (parenthesized_expression "(*(code *)PTR_SetImageOption_003a8c80)" (( "(") (pointer_expression "*(code *)PTR_SetImageOption_003a8c80" (* "*") (cast_expression "(code *)PTR_SetImageOption_003a8c80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetImageOption_003a8c80"))) () ")")) (argument_list "(param_1,&local_201c,local_101c)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_201c" (& "&") (identifier "local_201c")) (, ",") (identifier "local_101c") () ")"))) (; ";")) (if_statement "if (local_1c == *(int *)puVar25) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_1c == *(int *)puVar25)" (( "(") (binary_expression "local_1c == *(int *)puVar25" (identifier "local_1c") (== "==") (pointer_expression "*(int *)puVar25" (* "*") (cast_expression "(int *)puVar25" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar25")))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_003a9064)();" (call_expression "(*(code *)PTR___stack_chk_fail_003a9064)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_003a9064)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_003a9064" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_003a9064" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_003a9064"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar15 = puVar15 + -0x1254;" (assignment_expression "puVar15 = puVar15 + -0x1254" (identifier "puVar15") (= "=") (binary_expression "puVar15 + -0x1254" (identifier "puVar15") (+ "+") (number_literal "-0x1254"))) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,\n               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15)" (( "(") (binary_expression "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88" (identifier "PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8") (+ "+") (number_literal "-0x1c88")) (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x1210" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x1210")) (, ",") (number_literal "0x89e") (, ",") (identifier "puVar15") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);" (assignment_expression "puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(PTR_LAB_003a88e0 + 0x1c88)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_003a88e0 + 0x1c88)" (( "(") (binary_expression "PTR_LAB_003a88e0 + 0x1c88" (identifier "PTR_LAB_003a88e0") (+ "+") (number_literal "0x1c88")) () ")")))) (; ";")) (expression_statement "puVar25 = PTR___assert_fail_003a9608;" (assignment_expression "puVar25 = PTR___assert_fail_003a9608" (identifier "puVar25") (= "=") (identifier "PTR___assert_fail_003a9608")) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);" (call_expression "(*(code *)PTR___assert_fail_003a9608)\n            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254)" (parenthesized_expression "(*(code *)PTR___assert_fail_003a9608)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003a9608" (* "*") (cast_expression "(code *)PTR___assert_fail_003a9608" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003a9608"))) () ")")) (argument_list "(puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254)" (( "(") (identifier "puVar8") (, ",") (binary_expression "PTR_s_t_to_left_003a88e4 + -0x1210" (identifier "PTR_s_t_to_left_003a88e4") (+ "+") (number_literal "-0x1210")) (, ",") (number_literal "0x89d") (, ",") (binary_expression "puVar15 + -0x1254" (identifier "puVar15") (+ "+") (number_literal "-0x1254")) () ")"))) (; ";")) (expression_statement "iVar27 = puVar8[3];" (assignment_expression "iVar27 = puVar8[3]" (identifier "iVar27") (= "=") (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();" (assignment_expression "iStack_20a8 = (**(code **)(puVar25 + 0x286afc))()" (identifier "iStack_20a8") (= "=") (call_expression "(**(code **)(puVar25 + 0x286afc))()" (parenthesized_expression "(**(code **)(puVar25 + 0x286afc))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x286afc)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x286afc)" (* "*") (cast_expression "(code **)(puVar25 + 0x286afc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x286afc)" (( "(") (binary_expression "puVar25 + 0x286afc" (identifier "puVar25") (+ "+") (number_literal "0x286afc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar1 = (**(code **)(puVar25 + 0x2866f8))();" (assignment_expression "iVar1 = (**(code **)(puVar25 + 0x2866f8))()" (identifier "iVar1") (= "=") (call_expression "(**(code **)(puVar25 + 0x2866f8))()" (parenthesized_expression "(**(code **)(puVar25 + 0x2866f8))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x2866f8)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x2866f8)" (* "*") (cast_expression "(code **)(puVar25 + 0x2866f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x2866f8)" (( "(") (binary_expression "puVar25 + 0x2866f8" (identifier "puVar25") (+ "+") (number_literal "0x2866f8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iStack_20a8 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iStack_20a8 == 0)" (( "(") (binary_expression "iStack_20a8 == 0" (identifier "iStack_20a8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    trap(7);\n  }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;" (assignment_expression "iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8" (identifier "iVar33") (= "=") (binary_expression "*(int *)(iVar27 + 0x1c) / iStack_20a8" (pointer_expression "*(int *)(iVar27 + 0x1c)" (* "*") (cast_expression "(int *)(iVar27 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x1c)" (( "(") (binary_expression "iVar27 + 0x1c" (identifier "iVar27") (+ "+") (number_literal "0x1c")) () ")")))) (/ "/") (identifier "iStack_20a8"))) (; ";")) (expression_statement "iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;" (assignment_expression "iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8" (identifier "iStack_20a8") (= "=") (binary_expression "*(int *)(iVar27 + 0x1c) % iStack_20a8" (pointer_expression "*(int *)(iVar27 + 0x1c)" (* "*") (cast_expression "(int *)(iVar27 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x1c)" (( "(") (binary_expression "iVar27 + 0x1c" (identifier "iVar27") (+ "+") (number_literal "0x1c")) () ")")))) (% "%") (identifier "iStack_20a8"))) (; ";")) (if_statement "if (iVar1 < iStack_20a8) {\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }" (if "if") (parenthesized_expression "(iVar1 < iStack_20a8)" (( "(") (binary_expression "iVar1 < iStack_20a8" (identifier "iVar1") (< "<") (identifier "iStack_20a8")) () ")")) (compound_statement "{\n    iVar33 = iVar33 + 1;\n    iStack_20a8 = 0;\n  }" ({ "{") (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" (identifier "iVar33") (= "=") (binary_expression "iVar33 + 1" (identifier "iVar33") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iStack_20a8 = 0;" (assignment_expression "iStack_20a8 = 0" (identifier "iStack_20a8") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iStack_20a8 = iVar33 * iVar1 + iStack_20a8;" (assignment_expression "iStack_20a8 = iVar33 * iVar1 + iStack_20a8" (identifier "iStack_20a8") (= "=") (binary_expression "iVar33 * iVar1 + iStack_20a8" (binary_expression "iVar33 * iVar1" (identifier "iVar33") (* "*") (identifier "iVar1")) (+ "+") (identifier "iStack_20a8"))) (; ";")) (expression_statement "iVar33 = iVar33 + iStack_20a8;" (assignment_expression "iVar33 = iVar33 + iStack_20a8" (identifier "iVar33") (= "=") (binary_expression "iVar33 + iStack_20a8" (identifier "iVar33") (+ "+") (identifier "iStack_20a8"))) (; ";")) (if_statement "if (iStack_20a8 < iVar33) {\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }" (if "if") (parenthesized_expression "(iStack_20a8 < iVar33)" (( "(") (binary_expression "iStack_20a8 < iVar33" (identifier "iStack_20a8") (< "<") (identifier "iVar33")) () ")")) (compound_statement "{\n    uVar22 = puVar8[6];\n    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);\n    iVar1 = puVar8[7];\n    iVar12 = puVar8[4];\n    iVar9 = puVar8[5];\n    uVar13 = puVar8[2];\n    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);\n    uVar2 = *puVar8;\n    uVar7 = puVar8[1];\n    do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);\n  }" ({ "{") (expression_statement "uVar22 = puVar8[6];" (assignment_expression "uVar22 = puVar8[6]" (identifier "uVar22") (= "=") (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);" (assignment_expression "dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" (identifier "dVar31") (= "=") (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" (* "*") (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar25 + 0x285ad8) + -0x5af0)" (( "(") (binary_expression "*(int *)(puVar25 + 0x285ad8) + -0x5af0" (pointer_expression "*(int *)(puVar25 + 0x285ad8)" (* "*") (cast_expression "(int *)(puVar25 + 0x285ad8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x285ad8)" (( "(") (binary_expression "puVar25 + 0x285ad8" (identifier "puVar25") (+ "+") (number_literal "0x285ad8")) () ")")))) (+ "+") (number_literal "-0x5af0")) () ")"))))) (; ";")) (expression_statement "iVar1 = puVar8[7];" (assignment_expression "iVar1 = puVar8[7]" (identifier "iVar1") (= "=") (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "iVar12 = puVar8[4];" (assignment_expression "iVar12 = puVar8[4]" (identifier "iVar12") (= "=") (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar9 = puVar8[5];" (assignment_expression "iVar9 = puVar8[5]" (identifier "iVar9") (= "=") (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar13 = puVar8[2];" (assignment_expression "uVar13 = puVar8[2]" (identifier "uVar13") (= "=") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);" (assignment_expression "dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400)" (identifier "dVar32") (= "=") (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400)" (* "*") (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar25 + 0x285ad0) + 0x1400)" (( "(") (binary_expression "*(int *)(puVar25 + 0x285ad0) + 0x1400" (pointer_expression "*(int *)(puVar25 + 0x285ad0)" (* "*") (cast_expression "(int *)(puVar25 + 0x285ad0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x285ad0)" (( "(") (binary_expression "puVar25 + 0x285ad0" (identifier "puVar25") (+ "+") (number_literal "0x285ad0")) () ")")))) (+ "+") (number_literal "0x1400")) () ")"))))) (; ";")) (expression_statement "uVar2 = *puVar8;" (assignment_expression "uVar2 = *puVar8" (identifier "uVar2") (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "uVar7 = puVar8[1];" (assignment_expression "uVar7 = puVar8[1]" (identifier "uVar7") (= "=") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (do_statement "do {\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    } while (iVar33 != iStack_20a8);" (do "do") (compound_statement "{\n      if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }\n      iStack_20a8 = iStack_20a8 + 1;\n    }" ({ "{") (if_statement "if (puVar8[8] != 0) {\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(puVar8[8] != 0)" (( "(") (binary_expression "puVar8[8] != 0" (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);\n        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);\n        if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar25 + 0x28684c))\n                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2)" (parenthesized_expression "(**(code **)(puVar25 + 0x28684c))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x28684c)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x28684c)" (* "*") (cast_expression "(code **)(puVar25 + 0x28684c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x28684c)" (( "(") (binary_expression "puVar25 + 0x28684c" (identifier "puVar25") (+ "+") (number_literal "0x28684c")) () ")"))))) () ")")) (argument_list "(uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),\n                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2)" (( "(") (identifier "uVar7") (, ",") (unary_expression "-((int)uVar22 / 2)" (- "-") (parenthesized_expression "((int)uVar22 / 2)" (( "(") (binary_expression "(int)uVar22 / 2" (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22")) (/ "/") (number_literal "2")) () ")"))) (, ",") (binary_expression "iStack_20a8 - (uVar22 >> 1)" (identifier "iStack_20a8") (- "-") (parenthesized_expression "(uVar22 >> 1)" (( "(") (binary_expression "uVar22 >> 1" (identifier "uVar22") (>> ">>") (number_literal "1")) () ")"))) (, ",") (binary_expression "uVar22 + *(int *)(iVar27 + 0x18)" (identifier "uVar22") (+ "+") (pointer_expression "*(int *)(iVar27 + 0x18)" (* "*") (cast_expression "(int *)(iVar27 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x18)" (( "(") (binary_expression "iVar27 + 0x18" (identifier "iVar27") (+ "+") (number_literal "0x18")) () ")"))))) (, ",") (identifier "uVar22") (, ",") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);" (assignment_expression "iStack_20b4 = (**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2)" (identifier "iStack_20b4") (= "=") (call_expression "(**(code **)(puVar25 + 0x285e40))\n                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2)" (parenthesized_expression "(**(code **)(puVar25 + 0x285e40))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x285e40)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x285e40)" (* "*") (cast_expression "(code **)(puVar25 + 0x285e40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x285e40)" (( "(") (binary_expression "puVar25 + 0x285e40" (identifier "puVar25") (+ "+") (number_literal "0x285e40")) () ")"))))) () ")")) (argument_list "(uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2)" (( "(") (identifier "uVar13") (, ",") (number_literal "0") (, ",") (identifier "iStack_20a8") (, ",") (pointer_expression "*(undefined4 *)(iVar12 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (number_literal "1") (, ",") (identifier "uVar2") () ")")))) (; ";")) (if_statement "if ((iVar3 == 0) || (iStack_20b4 == 0)) {\nLAB_0012325c:\n          puVar8[8] = 0;\n        }\n        else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }" (if "if") (parenthesized_expression "((iVar3 == 0) || (iStack_20b4 == 0))" (( "(") (binary_expression "(iVar3 == 0) || (iStack_20b4 == 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iStack_20b4 == 0)" (( "(") (binary_expression "iStack_20b4 == 0" (identifier "iStack_20b4") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0012325c:\n          puVar8[8] = 0;\n        }" ({ "{") (labeled_statement "LAB_0012325c:\n          puVar8[8] = 0;" (statement_identifier "LAB_0012325c") (: ":") (expression_statement "puVar8[8] = 0;" (assignment_expression "puVar8[8] = 0" (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }" (else "else") (compound_statement "{\n          iVar4 = (**(code **)(puVar25 + 0x2866f8))();\n          puVar20 = *(uint **)(iVar9 + iVar4 * 4);\n          if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }\n          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);\n          if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }\n          if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }\n        }" ({ "{") (expression_statement "iVar4 = (**(code **)(puVar25 + 0x2866f8))();" (assignment_expression "iVar4 = (**(code **)(puVar25 + 0x2866f8))()" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar25 + 0x2866f8))()" (parenthesized_expression "(**(code **)(puVar25 + 0x2866f8))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x2866f8)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x2866f8)" (* "*") (cast_expression "(code **)(puVar25 + 0x2866f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x2866f8)" (( "(") (binary_expression "puVar25 + 0x2866f8" (identifier "puVar25") (+ "+") (number_literal "0x2866f8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar20 = *(uint **)(iVar9 + iVar4 * 4);" (assignment_expression "puVar20 = *(uint **)(iVar9 + iVar4 * 4)" (identifier "puVar20") (= "=") (pointer_expression "*(uint **)(iVar9 + iVar4 * 4)" (* "*") (cast_expression "(uint **)(iVar9 + iVar4 * 4)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + iVar4 * 4)" (( "(") (binary_expression "iVar9 + iVar4 * 4" (identifier "iVar9") (+ "+") (binary_expression "iVar4 * 4" (identifier "iVar4") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (0 < *(int *)(iVar27 + 0x18)) {\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar27 + 0x18))" (( "(") (binary_expression "0 < *(int *)(iVar27 + 0x18)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar27 + 0x18)" (* "*") (cast_expression "(int *)(iVar27 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x18)" (( "(") (binary_expression "iVar27 + 0x18" (identifier "iVar27") (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (compound_statement "{\n            iStack_20ac = 0;\n            do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);\n          }" ({ "{") (expression_statement "iStack_20ac = 0;" (assignment_expression "iStack_20ac = 0" (identifier "iStack_20ac") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            } while (iStack_20ac < iVar23);" (do "do") (compound_statement "{\n              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);\n              if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }\n              iVar21 = *(int *)(iVar27 + 0x2c0);\n              if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }\n              iVar3 = iVar3 + iVar21 * 4;\n              iStack_20ac = iStack_20ac + 1;\n              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;\n            }" ({ "{") (expression_statement "(**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);" (call_expression "(**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400)" (parenthesized_expression "(**(code **)(puVar25 + 0x2868c4))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x2868c4)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x2868c4)" (* "*") (cast_expression "(code **)(puVar25 + 0x2868c4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x2868c4)" (( "(") (binary_expression "puVar25 + 0x2868c4" (identifier "puVar25") (+ "+") (number_literal "0x2868c4")) () ")"))))) () ")")) (argument_list "(puVar20,0,0x400)" (( "(") (identifier "puVar20") (, ",") (number_literal "0") (, ",") (number_literal "0x400") () ")"))) (; ";")) (if_statement "if ((int)uVar22 < 1) {\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }\n              else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }" (if "if") (parenthesized_expression "((int)uVar22 < 1)" (( "(") (binary_expression "(int)uVar22 < 1" (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                iVar23 = *(int *)(iVar27 + 0x18);\n                iVar4 = 0;\n              }" ({ "{") (expression_statement "iVar23 = *(int *)(iVar27 + 0x18);" (assignment_expression "iVar23 = *(int *)(iVar27 + 0x18)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(iVar27 + 0x18)" (* "*") (cast_expression "(int *)(iVar27 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x18)" (( "(") (binary_expression "iVar27 + 0x18" (identifier "iVar27") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }" (else "else") (compound_statement "{\n                uVar24 = 0;\n                iVar4 = 0;\n                uStack_20b8 = 0;\n                iVar21 = 0;\n                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);\n                do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);\n              }" ({ "{") (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_20b8 = 0;" (assignment_expression "uStack_20b8 = 0" (identifier "uStack_20b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" (identifier "iVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);" (assignment_expression "dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" (identifier "dVar30") (= "=") (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" (* "*") (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar25 + 0x285ad8) + -0x5ae8)" (( "(") (binary_expression "*(int *)(puVar25 + 0x285ad8) + -0x5ae8" (pointer_expression "*(int *)(puVar25 + 0x285ad8)" (* "*") (cast_expression "(int *)(puVar25 + 0x285ad8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x285ad8)" (( "(") (binary_expression "puVar25 + 0x285ad8" (identifier "puVar25") (+ "+") (number_literal "0x285ad8")) () ")")))) (+ "+") (number_literal "-0x5ae8")) () ")"))))) (; ";")) (do_statement "do {\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                } while (uVar22 != uStack_20b8);" (do "do") (compound_statement "{\n                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);\n                  iVar23 = iVar21;\n                  do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);\nLAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);\n                  uStack_20b8 = uStack_20b8 + 1;\n                  iVar21 = iVar21 + uVar22 + iVar23;\n                }" ({ "{") (expression_statement "dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);" (assignment_expression "dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410)" (identifier "dVar29") (= "=") (pointer_expression "*(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410)" (* "*") (cast_expression "(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar25 + 0x285ad0) + 0x1410)" (( "(") (binary_expression "*(int *)(puVar25 + 0x285ad0) + 0x1410" (pointer_expression "*(int *)(puVar25 + 0x285ad0)" (* "*") (cast_expression "(int *)(puVar25 + 0x285ad0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x285ad0)" (( "(") (binary_expression "puVar25 + 0x285ad0" (identifier "puVar25") (+ "+") (number_literal "0x285ad0")) () ")")))) (+ "+") (number_literal "0x1410")) () ")"))))) (; ";")) (expression_statement "iVar23 = iVar21;" (assignment_expression "iVar23 = iVar21" (identifier "iVar23") (= "=") (identifier "iVar21")) (; ";")) (do_statement "do {\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  } while (uVar22 + iVar21 != iVar23);" (do "do") (compound_statement "{\n                    while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }\n                    dVar28 = (double)(float)dVar28 / dVar31;\n                    puVar10 = puVar20 + 0xff;\n                    if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }\n                    uVar14 = *puVar10 + 1;\n                    *puVar10 = uVar14;\n                    if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }\n                    iVar23 = iVar23 + 1;\n                    if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }\n                  }" ({ "{") (while_statement "while( true ) {\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);\n                      if (0.0 < (float)dVar28) break;\n                      uVar14 = *puVar20 + 1;\n                      *puVar20 = uVar14;\n                      if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }\n                      iVar23 = iVar23 + 1;\n                      if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }\n                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;\n                    }" ({ "{") (expression_statement "dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3);" (assignment_expression "dVar28 = (double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" (identifier "dVar28") (= "=") (cast_expression "(double)(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(**(code **)(puVar25 + 0x286048))\n                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" (parenthesized_expression "(**(code **)(puVar25 + 0x286048))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x286048)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x286048)" (* "*") (cast_expression "(code **)(puVar25 + 0x286048)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x286048)" (( "(") (binary_expression "puVar25 + 0x286048" (identifier "puVar25") (+ "+") (number_literal "0x286048")) () ")"))))) () ")")) (argument_list "(iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3)" (( "(") (identifier "iVar27") (, ",") (binary_expression "*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +\n                                                         iVar3" (binary_expression "*(int *)(iVar27 + 0x2c0) * 4 * iVar23" (binary_expression "*(int *)(iVar27 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar27 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar27 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x2c0)" (( "(") (binary_expression "iVar27 + 0x2c0" (identifier "iVar27") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")) (* "*") (identifier "iVar23")) (+ "+") (identifier "iVar3")) () ")"))))) (; ";")) (if_statement "if (0.0 < (float)dVar28) break;" (if "if") (parenthesized_expression "(0.0 < (float)dVar28)" (( "(") (binary_expression "0.0 < (float)dVar28" (number_literal "0.0") (< "<") (cast_expression "(float)dVar28" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar28"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar14 = *puVar20 + 1;" (assignment_expression "uVar14 = *puVar20 + 1" (identifier "uVar14") (= "=") (binary_expression "*puVar20 + 1" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar20 = uVar14;" (assignment_expression "*puVar20 = uVar14" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (uVar24 < uVar14) {\n                        iVar4 = iVar23;\n                      }" (if "if") (parenthesized_expression "(uVar24 < uVar14)" (( "(") (binary_expression "uVar24 < uVar14" (identifier "uVar24") (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n                        iVar4 = iVar23;\n                      }" ({ "{") (expression_statement "iVar4 = iVar23;" (assignment_expression "iVar4 = iVar23" (identifier "iVar4") (= "=") (identifier "iVar23")) (; ";")) (} "}"))) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar24 < uVar14) {\n                        uVar24 = uVar14;\n                      }" (if "if") (parenthesized_expression "(uVar24 < uVar14)" (( "(") (binary_expression "uVar24 < uVar14" (identifier "uVar24") (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n                        uVar24 = uVar14;\n                      }" ({ "{") (expression_statement "uVar24 = uVar14;" (assignment_expression "uVar24 = uVar14" (identifier "uVar24") (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (if_statement "if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;" (if "if") (parenthesized_expression "(uVar22 + iVar21 == iVar23)" (( "(") (binary_expression "uVar22 + iVar21 == iVar23" (binary_expression "uVar22 + iVar21" (identifier "uVar22") (+ "+") (identifier "iVar21")) (== "==") (identifier "iVar23")) () ")")) (goto_statement "goto LAB_001230d8;" (goto "goto") (statement_identifier "LAB_001230d8") (; ";"))) (} "}"))) (expression_statement "dVar28 = (double)(float)dVar28 / dVar31;" (assignment_expression "dVar28 = (double)(float)dVar28 / dVar31" (identifier "dVar28") (= "=") (binary_expression "(double)(float)dVar28 / dVar31" (cast_expression "(double)(float)dVar28" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(float)dVar28" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (identifier "dVar28"))) (/ "/") (identifier "dVar31"))) (; ";")) (expression_statement "puVar10 = puVar20 + 0xff;" (assignment_expression "puVar10 = puVar20 + 0xff" (identifier "puVar10") (= "=") (binary_expression "puVar20 + 0xff" (identifier "puVar20") (+ "+") (number_literal "0xff"))) (; ";")) (if_statement "if (dVar28 < dVar30) {\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }" (if "if") (parenthesized_expression "(dVar28 < dVar30)" (( "(") (binary_expression "dVar28 < dVar30" (identifier "dVar28") (< "<") (identifier "dVar30")) () ")")) (compound_statement "{\n                      dVar28 = dVar28 + dVar32;\n                      if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }\n                      puVar10 = puVar20 + ((int)dVar28 & 0xff);\n                    }" ({ "{") (expression_statement "dVar28 = dVar28 + dVar32;" (assignment_expression "dVar28 = dVar28 + dVar32" (identifier "dVar28") (= "=") (binary_expression "dVar28 + dVar32" (identifier "dVar28") (+ "+") (identifier "dVar32"))) (; ";")) (if_statement "if (dVar29 <= dVar28) {\n                        dVar28 = dVar28 - dVar29;\n                      }" (if "if") (parenthesized_expression "(dVar29 <= dVar28)" (( "(") (binary_expression "dVar29 <= dVar28" (identifier "dVar29") (<= "<=") (identifier "dVar28")) () ")")) (compound_statement "{\n                        dVar28 = dVar28 - dVar29;\n                      }" ({ "{") (expression_statement "dVar28 = dVar28 - dVar29;" (assignment_expression "dVar28 = dVar28 - dVar29" (identifier "dVar28") (= "=") (binary_expression "dVar28 - dVar29" (identifier "dVar28") (- "-") (identifier "dVar29"))) (; ";")) (} "}"))) (expression_statement "puVar10 = puVar20 + ((int)dVar28 & 0xff);" (assignment_expression "puVar10 = puVar20 + ((int)dVar28 & 0xff)" (identifier "puVar10") (= "=") (binary_expression "puVar20 + ((int)dVar28 & 0xff)" (identifier "puVar20") (+ "+") (parenthesized_expression "((int)dVar28 & 0xff)" (( "(") (binary_expression "(int)dVar28 & 0xff" (cast_expression "(int)dVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "dVar28")) (& "&") (number_literal "0xff")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar14 = *puVar10 + 1;" (assignment_expression "uVar14 = *puVar10 + 1" (identifier "uVar14") (= "=") (binary_expression "*puVar10 + 1" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar10 = uVar14;" (assignment_expression "*puVar10 = uVar14" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (identifier "uVar14")) (; ";")) (if_statement "if (uVar24 < uVar14) {\n                      iVar4 = iVar23;\n                    }" (if "if") (parenthesized_expression "(uVar24 < uVar14)" (( "(") (binary_expression "uVar24 < uVar14" (identifier "uVar24") (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n                      iVar4 = iVar23;\n                    }" ({ "{") (expression_statement "iVar4 = iVar23;" (assignment_expression "iVar4 = iVar23" (identifier "iVar4") (= "=") (identifier "iVar23")) (; ";")) (} "}"))) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar24 < uVar14) {\n                      uVar24 = uVar14;\n                    }" (if "if") (parenthesized_expression "(uVar24 < uVar14)" (( "(") (binary_expression "uVar24 < uVar14" (identifier "uVar24") (< "<") (identifier "uVar14")) () ")")) (compound_statement "{\n                      uVar24 = uVar14;\n                    }" ({ "{") (expression_statement "uVar24 = uVar14;" (assignment_expression "uVar24 = uVar14" (identifier "uVar24") (= "=") (identifier "uVar14")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(uVar22 + iVar21 != iVar23)" (( "(") (binary_expression "uVar22 + iVar21 != iVar23" (binary_expression "uVar22 + iVar21" (identifier "uVar22") (+ "+") (identifier "iVar21")) (!= "!=") (identifier "iVar23")) () ")")) (; ";")) (labeled_statement "LAB_001230d8:\n                  iVar23 = *(int *)(iVar27 + 0x18);" (statement_identifier "LAB_001230d8") (: ":") (expression_statement "iVar23 = *(int *)(iVar27 + 0x18);" (assignment_expression "iVar23 = *(int *)(iVar27 + 0x18)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(iVar27 + 0x18)" (* "*") (cast_expression "(int *)(iVar27 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x18)" (( "(") (binary_expression "iVar27 + 0x18" (identifier "iVar27") (+ "+") (number_literal "0x18")) () ")"))))) (; ";"))) (expression_statement "uStack_20b8 = uStack_20b8 + 1;" (assignment_expression "uStack_20b8 = uStack_20b8 + 1" (identifier "uStack_20b8") (= "=") (binary_expression "uStack_20b8 + 1" (identifier "uStack_20b8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar21 = iVar21 + uVar22 + iVar23;" (assignment_expression "iVar21 = iVar21 + uVar22 + iVar23" (identifier "iVar21") (= "=") (binary_expression "iVar21 + uVar22 + iVar23" (binary_expression "iVar21 + uVar22" (identifier "iVar21") (+ "+") (identifier "uVar22")) (+ "+") (identifier "iVar23"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar22 != uStack_20b8)" (( "(") (binary_expression "uVar22 != uStack_20b8" (identifier "uVar22") (!= "!=") (identifier "uStack_20b8")) () ")")) (; ";")) (} "}")))) (expression_statement "iVar21 = *(int *)(iVar27 + 0x2c0);" (assignment_expression "iVar21 = *(int *)(iVar27 + 0x2c0)" (identifier "iVar21") (= "=") (pointer_expression "*(int *)(iVar27 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar27 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x2c0)" (( "(") (binary_expression "iVar27 + 0x2c0" (identifier "iVar27") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (if_statement "if (0 < iVar21) {\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }" (if "if") (parenthesized_expression "(0 < iVar21)" (( "(") (binary_expression "0 < iVar21" (number_literal "0") (< "<") (identifier "iVar21")) () ")")) (compound_statement "{\n                piVar16 = *(int **)(iVar27 + 0x2d0);\n                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);\n                iVar17 = *(int *)(iVar12 + 0x2d0);\n                piVar19 = piVar16;\n                do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);\n              }" ({ "{") (expression_statement "piVar16 = *(int **)(iVar27 + 0x2d0);" (assignment_expression "piVar16 = *(int **)(iVar27 + 0x2d0)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(iVar27 + 0x2d0)" (* "*") (cast_expression "(int **)(iVar27 + 0x2d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar27 + 0x2d0)" (( "(") (binary_expression "iVar27 + 0x2d0" (identifier "iVar27") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);" (assignment_expression "puVar11 = (undefined4 *)(iVar3 + iVar1 * 4)" (identifier "puVar11") (= "=") (cast_expression "(undefined4 *)(iVar3 + iVar1 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + iVar1 * 4)" (( "(") (binary_expression "iVar3 + iVar1 * 4" (identifier "iVar3") (+ "+") (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar17 = *(int *)(iVar12 + 0x2d0);" (assignment_expression "iVar17 = *(int *)(iVar12 + 0x2d0)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar12 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar12 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2d0)" (( "(") (binary_expression "iVar12 + 0x2d0" (identifier "iVar12") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "piVar19 = piVar16;" (assignment_expression "piVar19 = piVar16" (identifier "piVar19") (= "=") (identifier "piVar16")) (; ";")) (do_statement "do {\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                } while (piVar16 + iVar21 * 3 != piVar19);" (do "do") (compound_statement "{\n                  iVar5 = iVar17 + *piVar19 * 0xc;\n                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }\n                  piVar19 = piVar19 + 3;\n                  puVar11 = puVar11 + 1;\n                }" ({ "{") (expression_statement "iVar5 = iVar17 + *piVar19 * 0xc;" (assignment_expression "iVar5 = iVar17 + *piVar19 * 0xc" (identifier "iVar5") (= "=") (binary_expression "iVar17 + *piVar19 * 0xc" (identifier "iVar17") (+ "+") (binary_expression "*piVar19 * 0xc" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (* "*") (number_literal "0xc")))) (; ";")) (if_statement "if ((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }" (if "if") (parenthesized_expression "((piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0))" (( "(") (binary_expression "(piVar16[*piVar19 * 3 + 1] != 0) &&\n                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)" (parenthesized_expression "(piVar16[*piVar19 * 3 + 1] != 0)" (( "(") (binary_expression "piVar16[*piVar19 * 3 + 1] != 0" (subscript_expression "piVar16[*piVar19 * 3 + 1]" (identifier "piVar16") ([ "[") (binary_expression "*piVar19 * 3 + 1" (binary_expression "*piVar19 * 3" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)" (( "(") (comma_expression "uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0" (assignment_expression "uVar24 = *(uint *)(iVar5 + 4)" (identifier "uVar24") (= "=") (pointer_expression "*(uint *)(iVar5 + 4)" (* "*") (cast_expression "(uint *)(iVar5 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (, ",") (binary_expression "uVar24 != 0" (identifier "uVar24") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);\n                    if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }\n                  }" ({ "{") (expression_statement "puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);" (assignment_expression "puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4)" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_20b4 + *(int *)(iVar5 + 8) * 4)" (( "(") (binary_expression "iStack_20b4 + *(int *)(iVar5 + 8) * 4" (identifier "iStack_20b4") (+ "+") (binary_expression "*(int *)(iVar5 + 8) * 4" (pointer_expression "*(int *)(iVar5 + 8)" (* "*") (cast_expression "(int *)(iVar5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 8)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if ((uVar24 & 1) == 0) {\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }\n                    else {\n                      *puVar6 = *puVar11;\n                    }" (if "if") (parenthesized_expression "((uVar24 & 1) == 0)" (( "(") (binary_expression "(uVar24 & 1) == 0" (parenthesized_expression "(uVar24 & 1)" (( "(") (binary_expression "uVar24 & 1" (identifier "uVar24") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);\n                    }" ({ "{") (expression_statement "*puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);" (assignment_expression "*puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" (* "*") (cast_expression "(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4)" (( "(") (binary_expression "(int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4" (binary_expression "(int)puVar11 + iVar21 * 4 * iVar4" (cast_expression "(int)puVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar11")) (+ "+") (binary_expression "iVar21 * 4 * iVar4" (binary_expression "iVar21 * 4" (identifier "iVar21") (* "*") (number_literal "4")) (* "*") (identifier "iVar4"))) (+ "+") (binary_expression "iVar1 * -4" (identifier "iVar1") (* "*") (number_literal "-4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                      *puVar6 = *puVar11;\n                    }" (else "else") (compound_statement "{\n                      *puVar6 = *puVar11;\n                    }" ({ "{") (expression_statement "*puVar6 = *puVar11;" (assignment_expression "*puVar6 = *puVar11" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "piVar19 = piVar19 + 3;" (assignment_expression "piVar19 = piVar19 + 3" (identifier "piVar19") (= "=") (binary_expression "piVar19 + 3" (identifier "piVar19") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar11 = puVar11 + 1;" (assignment_expression "puVar11 = puVar11 + 1" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 1" (identifier "puVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar16 + iVar21 * 3 != piVar19)" (( "(") (binary_expression "piVar16 + iVar21 * 3 != piVar19" (binary_expression "piVar16 + iVar21 * 3" (identifier "piVar16") (+ "+") (binary_expression "iVar21 * 3" (identifier "iVar21") (* "*") (number_literal "3"))) (!= "!=") (identifier "piVar19")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar3 + iVar21 * 4;" (assignment_expression "iVar3 = iVar3 + iVar21 * 4" (identifier "iVar3") (= "=") (binary_expression "iVar3 + iVar21 * 4" (identifier "iVar3") (+ "+") (binary_expression "iVar21 * 4" (identifier "iVar21") (* "*") (number_literal "4")))) (; ";")) (expression_statement "iStack_20ac = iStack_20ac + 1;" (assignment_expression "iStack_20ac = iStack_20ac + 1" (identifier "iStack_20ac") (= "=") (binary_expression "iStack_20ac + 1" (identifier "iStack_20ac") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;" (assignment_expression "iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4" (identifier "iStack_20b4") (= "=") (binary_expression "iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4" (identifier "iStack_20b4") (+ "+") (binary_expression "*(int *)(iVar12 + 0x2c0) * 4" (pointer_expression "*(int *)(iVar12 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar12 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x2c0)" (( "(") (binary_expression "iVar12 + 0x2c0" (identifier "iVar12") (+ "+") (number_literal "0x2c0")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iStack_20ac < iVar23)" (( "(") (binary_expression "iStack_20ac < iVar23" (identifier "iStack_20ac") (< "<") (identifier "iVar23")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2)" (parenthesized_expression "(**(code **)(puVar25 + 0x2866e8))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x2866e8)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x2866e8)" (* "*") (cast_expression "(code **)(puVar25 + 0x2866e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x2866e8)" (( "(") (binary_expression "puVar25 + 0x2866e8" (identifier "puVar25") (+ "+") (number_literal "0x2866e8")) () ")"))))) () ")")) (argument_list "(uVar13,uVar2)" (( "(") (identifier "uVar13") (, ",") (identifier "uVar2") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            puVar8[8] = 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            puVar8[8] = 0;\n          }" ({ "{") (expression_statement "puVar8[8] = 0;" (assignment_expression "puVar8[8] = 0" (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar27 + 0x328) != 0) {\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar27 + 0x328) != 0)" (( "(") (binary_expression "*(int *)(iVar27 + 0x328) != 0" (pointer_expression "*(int *)(iVar27 + 0x328)" (* "*") (cast_expression "(int *)(iVar27 + 0x328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x328)" (( "(") (binary_expression "iVar27 + 0x328" (identifier "iVar27") (+ "+") (number_literal "0x328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar19 = (int *)puVar8[9];\n            (**(code **)(puVar25 + 0x2864d4))();\n            uVar24 = piVar19[1];\n            pcVar26 = *(code **)(puVar25 + 0x286628);\n            uVar14 = uVar24 + 1;\n            piVar19[1] = uVar14;\n            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;\n            (*pcVar26)();\n            iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));\n            if (iVar3 == 0) goto LAB_0012325c;\n          }" ({ "{") (expression_statement "piVar19 = (int *)puVar8[9];" (assignment_expression "piVar19 = (int *)puVar8[9]" (identifier "piVar19") (= "=") (cast_expression "(int *)puVar8[9]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[9]" (identifier "puVar8") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "(**(code **)(puVar25 + 0x2864d4))();" (call_expression "(**(code **)(puVar25 + 0x2864d4))()" (parenthesized_expression "(**(code **)(puVar25 + 0x2864d4))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x2864d4)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x2864d4)" (* "*") (cast_expression "(code **)(puVar25 + 0x2864d4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x2864d4)" (( "(") (binary_expression "puVar25 + 0x2864d4" (identifier "puVar25") (+ "+") (number_literal "0x2864d4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar24 = piVar19[1];" (assignment_expression "uVar24 = piVar19[1]" (identifier "uVar24") (= "=") (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar26 = *(code **)(puVar25 + 0x286628);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0x286628)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(puVar25 + 0x286628)" (* "*") (cast_expression "(code **)(puVar25 + 0x286628)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x286628)" (( "(") (binary_expression "puVar25 + 0x286628" (identifier "puVar25") (+ "+") (number_literal "0x286628")) () ")"))))) (; ";")) (expression_statement "uVar14 = uVar24 + 1;" (assignment_expression "uVar14 = uVar24 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar24 + 1" (identifier "uVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar19[1] = uVar14;" (assignment_expression "piVar19[1] = uVar14" (subscript_expression "piVar19[1]" (identifier "piVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*piVar19 = (uint)(uVar14 < uVar24) + *piVar19;" (assignment_expression "*piVar19 = (uint)(uVar14 < uVar24) + *piVar19" (pointer_expression "*piVar19" (* "*") (identifier "piVar19")) (= "=") (binary_expression "(uint)(uVar14 < uVar24) + *piVar19" (call_expression "(uint)(uVar14 < uVar24)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < uVar24)" (( "(") (binary_expression "uVar14 < uVar24" (identifier "uVar14") (< "<") (identifier "uVar24")) () ")"))) (+ "+") (pointer_expression "*piVar19" (* "*") (identifier "piVar19")))) (; ";")) (expression_statement "(*pcVar26)();" (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));" (assignment_expression "iVar3 = (**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c))" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar25 + 0x285ea4))\n                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c))" (parenthesized_expression "(**(code **)(puVar25 + 0x285ea4))" (( "(") (pointer_expression "**(code **)(puVar25 + 0x285ea4)" (* "*") (pointer_expression "*(code **)(puVar25 + 0x285ea4)" (* "*") (cast_expression "(code **)(puVar25 + 0x285ea4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar25 + 0x285ea4)" (( "(") (binary_expression "puVar25 + 0x285ea4" (identifier "puVar25") (+ "+") (number_literal "0x285ea4")) () ")"))))) () ")")) (argument_list "(iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]\n                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c))" (( "(") (identifier "iVar27") (, ",") (binary_expression "*(int *)(puVar25 + 0x285ad4) + 0x29d0" (pointer_expression "*(int *)(puVar25 + 0x285ad4)" (* "*") (cast_expression "(int *)(puVar25 + 0x285ad4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar25 + 0x285ad4)" (( "(") (binary_expression "puVar25 + 0x285ad4" (identifier "puVar25") (+ "+") (number_literal "0x285ad4")) () ")")))) (+ "+") (number_literal "0x29d0")) (, ",") (pointer_expression "*(undefined4 *)puVar8[9]" (* "*") (cast_expression "(undefined4 *)puVar8[9]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[9]" (identifier "puVar8") ([ "[") (number_literal "9") (] "]")))) (, ",") (subscript_expression "((undefined4 *)puVar8[9])[1]" (parenthesized_expression "((undefined4 *)puVar8[9])" (( "(") (cast_expression "(undefined4 *)puVar8[9]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[9]" (identifier "puVar8") ([ "[") (number_literal "9") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]")) (, ",") (number_literal "0") (, ",") (pointer_expression "*(undefined4 *)(iVar27 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar27 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x1c)" (( "(") (binary_expression "iVar27 + 0x1c" (identifier "iVar27") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0012325c;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0012325c;" (goto "goto") (statement_identifier "LAB_0012325c") (; ";"))) (} "}"))) (} "}")))) (} "}"))) (expression_statement "iStack_20a8 = iStack_20a8 + 1;" (assignment_expression "iStack_20a8 = iStack_20a8 + 1" (identifier "iStack_20a8") (= "=") (binary_expression "iStack_20a8 + 1" (identifier "iStack_20a8") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar33 != iStack_20a8)" (( "(") (binary_expression "iVar33 != iStack_20a8" (identifier "iVar33") (!= "!=") (identifier "iStack_20a8")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */

type_1 function_1(type_2 *var_1,char *var_2)

{
  type_1 var_14;
  int var_12;
  type_3 uVar3;
  int var_19;
  int var_21;
  int var_34;
  type_3 *puVar7;
  int var_4;
  type_3 uVar9;
  type_3 *puVar10;
  type_4 *puVar11;
  type_3 *var_36;
  int var_18;
  type_3 uVar14;
  type_4 var_24;
  type_5 *var_5;
  int *var_37;
  int var_33;
  char *var_3;
  int *var_35;
  type_4 *var_27;
  int var_25;
  type_4 var_17;
  int var_22;
  type_4 var_23;
  type_5 *var_9;
  type_6 *pcVar27;
  int var_11;
  double var_28;
  double var_31;
  double var_29;
  double var_26;
  double var_30;
  int var_13;
  type_4 var_32;
  int var_20;
  int var_38;
  type_1 var_15;
  char key [4096];
  char value [4096];
  
  var_9 = PTR___stack_chk_guard_003a9230;
  var_4 = *(int *)PTR___stack_chk_guard_003a9230;
  var_5 = var_7;
  if (var_1 != (type_2 *)0x0) {
    if (var_2 != (char *)0x0) {
      (*(type_6 *)PTR_CopyMagickString_003a983c)(key,var_2,0x1000);
      var_3 = key;
      while (key[0] != '\0') {
        if (key[0] == '=') {
          value[0] = '\0';
          (*(type_6 *)PTR_CopyMagickString_003a983c)(value,var_3 + 1,0x1000);
          goto LAB_00122d50;
        }
        var_3 = var_3 + 1;
        key[0] = *var_3;
      }
      value[0] = '\0';
LAB_00122d50:
      *var_3 = '\0';
      var_14 = (*(type_6 *)PTR_SetImageOption_003a8c80)(var_1,key,value);
      if (var_4 == *(int *)var_9) {
        return var_14;
      }
      (*(type_6 *)PTR___stack_chk_fail_003a9064)();
    }
    var_5 = var_5 + -0x1254;
    (*(type_6 *)PTR___assert_fail_003a9608)
              (var_6 + -0x1c88,
               var_7 + -0x1210,0x89e,var_5);
  }
  puVar10 = (type_3 *)(var_8 + 0x1c88);
  var_9 = PTR___assert_fail_003a9608;
  (*(type_6 *)PTR___assert_fail_003a9608)
            (puVar10,var_7 + -0x1210,0x89d,var_5 + -0x1254);
  var_11 = puVar10[3];
  var_4 = (**(type_6 **)(var_9 + 0x286afc))();
  var_12 = (**(type_6 **)(var_9 + 0x2866f8))();
  if (var_4 == 0) {
    var_10(7);
  }
  var_13 = *(int *)(var_11 + 0x1c) / var_4;
  var_4 = *(int *)(var_11 + 0x1c) % var_4;
  if (var_12 < var_4) {
    var_13 = var_13 + 1;
    var_4 = 0;
  }
  var_14 = var_13 * var_12 + var_4;
  var_15 = (type_1)((int)var_14 < (int)(var_13 + var_14));
  if (var_15 != var_16) {
    var_17 = puVar10[6];
    var_26 = *(double *)(*(int *)(var_9 + 0x285ad8) + -0x5af0);
    var_4 = puVar10[7];
    var_18 = puVar10[4];
    var_12 = puVar10[5];
    uVar14 = puVar10[2];
    var_30 = *(double *)(*(int *)(var_9 + 0x285ad0) + 0x1400);
    uVar3 = *puVar10;
    uVar9 = puVar10[1];
    var_15 = var_14;
    do {
      if (puVar10[8] != 0) {
        var_19 = (**(type_6 **)(var_9 + 0x28684c))
                          (uVar9,-((int)var_17 / 2),var_15 - (var_17 >> 1),
                           var_17 + *(int *)(var_11 + 0x18),var_17,uVar3);
        var_20 = (**(type_6 **)(var_9 + 0x285e40))
                                (uVar14,0,var_15,*(type_3 *)(var_18 + 0x18),1,uVar3);
        if ((var_19 == 0) || (var_20 == 0)) {
LAB_0012325c:
          puVar10[8] = 0;
        }
        else {
          var_21 = (**(type_6 **)(var_9 + 0x2866f8))();
          var_27 = *(type_4 **)(var_12 + var_21 * 4);
          if (0 < *(int *)(var_11 + 0x18)) {
            var_38 = 0;
            do {
              (**(type_6 **)(var_9 + 0x2868c4))(var_27,0,0x400);
              if ((int)var_17 < 1) {
                var_22 = *(int *)(var_11 + 0x18);
                var_21 = 0;
              }
              else {
                var_23 = 0;
                var_21 = 0;
                var_32 = 0;
                var_25 = 0;
                var_29 = *(double *)(*(int *)(var_9 + 0x285ad8) + -0x5ae8);
                do {
                  var_31 = *(double *)(*(int *)(var_9 + 0x285ad0) + 0x1410);
                  var_22 = var_25;
                  do {
                    while( true ) {
                      var_28 = (double)(**(type_6 **)(var_9 + 0x286048))
                                                 (var_11,*(int *)(var_11 + 0x2c0) * 4 * var_22 +
                                                         var_19);
                      if (0.0 < (float)var_28) break;
                      var_24 = *var_27 + 1;
                      *var_27 = var_24;
                      if (var_23 < var_24) {
                        var_21 = var_22;
                      }
                      var_22 = var_22 + 1;
                      if (var_23 < var_24) {
                        var_23 = var_24;
                      }
                      if (var_17 + var_25 == var_22) goto LAB_001230d8;
                    }
                    var_28 = (double)(float)var_28 / var_26;
                    puVar11 = var_27 + 0xff;
                    if (var_28 < var_29) {
                      var_28 = var_28 + var_30;
                      if (var_31 <= var_28) {
                        var_28 = var_28 - var_31;
                      }
                      puVar11 = var_27 + ((int)var_28 & 0xff);
                    }
                    var_24 = *puVar11 + 1;
                    *puVar11 = var_24;
                    if (var_23 < var_24) {
                      var_21 = var_22;
                    }
                    var_22 = var_22 + 1;
                    if (var_23 < var_24) {
                      var_23 = var_24;
                    }
                  } while (var_17 + var_25 != var_22);
LAB_001230d8:
                  var_22 = *(int *)(var_11 + 0x18);
                  var_32 = var_32 + 1;
                  var_25 = var_25 + var_17 + var_22;
                } while (var_17 != var_32);
              }
              var_25 = *(int *)(var_11 + 0x2c0);
              if (0 < var_25) {
                var_37 = *(int **)(var_11 + 0x2d0);
                var_36 = (type_3 *)(var_19 + var_4 * 4);
                var_33 = *(int *)(var_18 + 0x2d0);
                var_35 = var_37;
                do {
                  var_34 = var_33 + *var_35 * 0xc;
                  if ((var_37[*var_35 * 3 + 1] != 0) &&
                     (var_23 = *(type_4 *)(var_34 + 4), var_23 != 0)) {
                    puVar7 = (type_3 *)(var_20 + *(int *)(var_34 + 8) * 4);
                    if ((var_23 & 1) == 0) {
                      *puVar7 = *(type_3 *)((int)var_36 + var_25 * 4 * var_21 + var_4 * -4);
                    }
                    else {
                      *puVar7 = *var_36;
                    }
                  }
                  var_35 = var_35 + 3;
                  var_36 = var_36 + 1;
                } while (var_37 + var_25 * 3 != var_35);
              }
              var_19 = var_19 + var_25 * 4;
              var_38 = var_38 + 1;
              var_20 = var_20 + *(int *)(var_18 + 0x2c0) * 4;
            } while (var_38 < var_22);
          }
          var_19 = (**(type_6 **)(var_9 + 0x2866e8))(uVar14,uVar3);
          if (var_19 == 0) {
            puVar10[8] = 0;
          }
          if (*(int *)(var_11 + 0x328) != 0) {
            var_35 = (int *)puVar10[9];
            (**(type_6 **)(var_9 + 0x2864d4))();
            var_23 = var_35[1];
            pcVar27 = *(type_6 **)(var_9 + 0x286628);
            var_24 = var_23 + 1;
            var_35[1] = var_24;
            *var_35 = (type_4)(var_24 < var_23) + *var_35;
            (*pcVar27)();
            var_19 = (**(type_6 **)(var_9 + 0x285ea4))
                              (var_11,*(int *)(var_9 + 0x285ad4) + 0x29d0,
                               *(type_3 *)puVar10[9],((type_3 *)puVar10[9])[1],0,
                               *(type_3 *)(var_11 + 0x1c));
            if (var_19 == 0) goto LAB_0012325c;
          }
        }
      }
      var_15 = var_15 + var_39;
    } while (var_13 + var_14 != var_15);
  }
  return var_15;
}


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

void MASKED(int param_1,int param_2)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined4 *puVar6;
  undefined4 uVar7;
  undefined4 *puVar8;
  int iVar9;
  uint *puVar10;
  undefined4 *puVar11;
  int iVar12;
  undefined4 uVar13;
  uint uVar14;
  undefined *puVar15;
  int *piVar16;
  int iVar17;
  char *pcVar18;
  int *piVar19;
  uint *puVar20;
  int iVar21;
  uint uVar22;
  int iVar23;
  uint uVar24;
  undefined *puVar25;
  code *pcVar26;
  int iVar27;
  double dVar28;
  double dVar29;
  double dVar30;
  double dVar31;
  double dVar32;
  int iVar33;
  uint uStack_20b8;
  int iStack_20b4;
  int iStack_20ac;
  int iStack_20a8;
  char local_201c;
  char local_201b [4095];
  undefined1 local_101c [4096];
  int local_1c;
  
  puVar25 = PTR___stack_chk_guard_003a9230;
  local_1c = *(int *)PTR___stack_chk_guard_003a9230;
  puVar15 = PTR_s_t_to_left_003a88e4;
  if (param_1 != 0) {
    if (param_2 != 0) {
      (*(code *)PTR_CopyMagickString_003a983c)(&local_201c,param_2,0x1000);
      pcVar18 = &local_201c;
      while (local_201c != '\0') {
        if (local_201c == '=') {
          local_101c[0] = 0;
          (*(code *)PTR_CopyMagickString_003a983c)(local_101c,pcVar18 + 1,0x1000);
          goto LAB_00122d50;
        }
        pcVar18 = pcVar18 + 1;
        local_201c = *pcVar18;
      }
      local_101c[0] = 0;
LAB_00122d50:
      *pcVar18 = '\0';
      (*(code *)PTR_SetImageOption_003a8c80)(param_1,&local_201c,local_101c);
      if (local_1c == *(int *)puVar25) {
        return;
      }
      (*(code *)PTR___stack_chk_fail_003a9064)();
    }
    puVar15 = puVar15 + -0x1254;
    (*(code *)PTR___assert_fail_003a9608)
              (PTR_s_ls_0__dGridFitTT_2__sPDFPassword_003a88e8 + -0x1c88,
               PTR_s_t_to_left_003a88e4 + -0x1210,0x89e,puVar15);
  }
  puVar8 = (undefined4 *)(PTR_LAB_003a88e0 + 0x1c88);
  puVar25 = PTR___assert_fail_003a9608;
  (*(code *)PTR___assert_fail_003a9608)
            (puVar8,PTR_s_t_to_left_003a88e4 + -0x1210,0x89d,puVar15 + -0x1254);
  iVar27 = puVar8[3];
  iStack_20a8 = (**(code **)(puVar25 + 0x286afc))();
  iVar1 = (**(code **)(puVar25 + 0x2866f8))();
  if (iStack_20a8 == 0) {
    trap(7);
  }
  iVar33 = *(int *)(iVar27 + 0x1c) / iStack_20a8;
  iStack_20a8 = *(int *)(iVar27 + 0x1c) % iStack_20a8;
  if (iVar1 < iStack_20a8) {
    iVar33 = iVar33 + 1;
    iStack_20a8 = 0;
  }
  iStack_20a8 = iVar33 * iVar1 + iStack_20a8;
  iVar33 = iVar33 + iStack_20a8;
  if (iStack_20a8 < iVar33) {
    uVar22 = puVar8[6];
    dVar31 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5af0);
    iVar1 = puVar8[7];
    iVar12 = puVar8[4];
    iVar9 = puVar8[5];
    uVar13 = puVar8[2];
    dVar32 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1400);
    uVar2 = *puVar8;
    uVar7 = puVar8[1];
    do {
      if (puVar8[8] != 0) {
        iVar3 = (**(code **)(puVar25 + 0x28684c))
                          (uVar7,-((int)uVar22 / 2),iStack_20a8 - (uVar22 >> 1),
                           uVar22 + *(int *)(iVar27 + 0x18),uVar22,uVar2);
        iStack_20b4 = (**(code **)(puVar25 + 0x285e40))
                                (uVar13,0,iStack_20a8,*(undefined4 *)(iVar12 + 0x18),1,uVar2);
        if ((iVar3 == 0) || (iStack_20b4 == 0)) {
LAB_0012325c:
          puVar8[8] = 0;
        }
        else {
          iVar4 = (**(code **)(puVar25 + 0x2866f8))();
          puVar20 = *(uint **)(iVar9 + iVar4 * 4);
          if (0 < *(int *)(iVar27 + 0x18)) {
            iStack_20ac = 0;
            do {
              (**(code **)(puVar25 + 0x2868c4))(puVar20,0,0x400);
              if ((int)uVar22 < 1) {
                iVar23 = *(int *)(iVar27 + 0x18);
                iVar4 = 0;
              }
              else {
                uVar24 = 0;
                iVar4 = 0;
                uStack_20b8 = 0;
                iVar21 = 0;
                dVar30 = *(double *)(*(int *)(puVar25 + 0x285ad8) + -0x5ae8);
                do {
                  dVar29 = *(double *)(*(int *)(puVar25 + 0x285ad0) + 0x1410);
                  iVar23 = iVar21;
                  do {
                    while( true ) {
                      dVar28 = (double)(**(code **)(puVar25 + 0x286048))
                                                 (iVar27,*(int *)(iVar27 + 0x2c0) * 4 * iVar23 +
                                                         iVar3);
                      if (0.0 < (float)dVar28) break;
                      uVar14 = *puVar20 + 1;
                      *puVar20 = uVar14;
                      if (uVar24 < uVar14) {
                        iVar4 = iVar23;
                      }
                      iVar23 = iVar23 + 1;
                      if (uVar24 < uVar14) {
                        uVar24 = uVar14;
                      }
                      if (uVar22 + iVar21 == iVar23) goto LAB_001230d8;
                    }
                    dVar28 = (double)(float)dVar28 / dVar31;
                    puVar10 = puVar20 + 0xff;
                    if (dVar28 < dVar30) {
                      dVar28 = dVar28 + dVar32;
                      if (dVar29 <= dVar28) {
                        dVar28 = dVar28 - dVar29;
                      }
                      puVar10 = puVar20 + ((int)dVar28 & 0xff);
                    }
                    uVar14 = *puVar10 + 1;
                    *puVar10 = uVar14;
                    if (uVar24 < uVar14) {
                      iVar4 = iVar23;
                    }
                    iVar23 = iVar23 + 1;
                    if (uVar24 < uVar14) {
                      uVar24 = uVar14;
                    }
                  } while (uVar22 + iVar21 != iVar23);
LAB_001230d8:
                  iVar23 = *(int *)(iVar27 + 0x18);
                  uStack_20b8 = uStack_20b8 + 1;
                  iVar21 = iVar21 + uVar22 + iVar23;
                } while (uVar22 != uStack_20b8);
              }
              iVar21 = *(int *)(iVar27 + 0x2c0);
              if (0 < iVar21) {
                piVar16 = *(int **)(iVar27 + 0x2d0);
                puVar11 = (undefined4 *)(iVar3 + iVar1 * 4);
                iVar17 = *(int *)(iVar12 + 0x2d0);
                piVar19 = piVar16;
                do {
                  iVar5 = iVar17 + *piVar19 * 0xc;
                  if ((piVar16[*piVar19 * 3 + 1] != 0) &&
                     (uVar24 = *(uint *)(iVar5 + 4), uVar24 != 0)) {
                    puVar6 = (undefined4 *)(iStack_20b4 + *(int *)(iVar5 + 8) * 4);
                    if ((uVar24 & 1) == 0) {
                      *puVar6 = *(undefined4 *)((int)puVar11 + iVar21 * 4 * iVar4 + iVar1 * -4);
                    }
                    else {
                      *puVar6 = *puVar11;
                    }
                  }
                  piVar19 = piVar19 + 3;
                  puVar11 = puVar11 + 1;
                } while (piVar16 + iVar21 * 3 != piVar19);
              }
              iVar3 = iVar3 + iVar21 * 4;
              iStack_20ac = iStack_20ac + 1;
              iStack_20b4 = iStack_20b4 + *(int *)(iVar12 + 0x2c0) * 4;
            } while (iStack_20ac < iVar23);
          }
          iVar3 = (**(code **)(puVar25 + 0x2866e8))(uVar13,uVar2);
          if (iVar3 == 0) {
            puVar8[8] = 0;
          }
          if (*(int *)(iVar27 + 0x328) != 0) {
            piVar19 = (int *)puVar8[9];
            (**(code **)(puVar25 + 0x2864d4))();
            uVar24 = piVar19[1];
            pcVar26 = *(code **)(puVar25 + 0x286628);
            uVar14 = uVar24 + 1;
            piVar19[1] = uVar14;
            *piVar19 = (uint)(uVar14 < uVar24) + *piVar19;
            (*pcVar26)();
            iVar3 = (**(code **)(puVar25 + 0x285ea4))
                              (iVar27,*(int *)(puVar25 + 0x285ad4) + 0x29d0,*(undefined4 *)puVar8[9]
                               ,((undefined4 *)puVar8[9])[1],0,*(undefined4 *)(iVar27 + 0x1c));
            if (iVar3 == 0) goto LAB_0012325c;
          }
        }
      }
      iStack_20a8 = iStack_20a8 + 1;
    } while (iVar33 != iStack_20a8);
  }
  return;
}

