
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* DWARF original prototype: void RadonTransform._omp_fn.0(anon_struct_32_7_acf8c8cc * param_0) */

void __thiscall RadonTransform__omp_fn_0(void *this)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  int *piVar5;
  int *piVar6;
  undefined4 uVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  int extraout_v1;
  int extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int extraout_v1_03;
  int iVar13;
  int iVar14;
  int *piVar15;
  int in_a1;
  int in_a2;
  int iVar16;
  undefined4 *puVar17;
  ushort *in_a3;
  int iVar18;
  undefined4 *puVar19;
  int iVar20;
  int iVar21;
  int iVar22;
  int iVar23;
  int iVar24;
  int iVar25;
  ushort *unaff_s4;
  undefined4 unaff_s5;
  int iVar26;
  int unaff_s6;
  int iVar27;
  ushort *unaff_s7;
  int iVar28;
  undefined *puVar29;
  int iVar30;
  ushort *puVar31;
  code *pcVar32;
  code *pcVar33;
  double dVar34;
  int iVar35;
  int iVar36;
  undefined8 uVar37;
  int iStack_188;
  int iStack_118;
  uint uStack_110;
  int iStack_10c;
  short sStack_f2;
  ushort *puStack_f0;
  undefined *puStack_ec;
  int iStack_e8;
  int iStack_e4;
  int iStack_e0;
  int iStack_dc;
  int iStack_d8;
  void *pvStack_d4;
  ushort *puStack_d0;
  int iStack_cc;
  int iStack_c8;
  ushort *puStack_c4;
  ushort *puStack_c0;
  code *pcStack_bc;
  ushort *puStack_ac;
  undefined *puStack_a8;
  int iStack_a0;
  int *piStack_9c;
  ushort uStack_98;
  ushort uStack_96;
  int iStack_94;
  int iStack_90;
  undefined *puStack_8c;
  int iStack_88;
  void *pvStack_84;
  ushort *puStack_80;
  undefined4 uStack_7c;
  int iStack_78;
  ushort *puStack_74;
  ushort *puStack_70;
  code *pcStack_6c;
  undefined4 local_58;
  undefined4 local_54;
  ushort local_36;
  int local_34;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  local_34 = *(int *)PTR___stack_chk_guard_003a9230;
  puVar31 = *(ushort **)((int)this + 8);
  piVar15 = (int *)this;
  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  if (iVar3 == 0) {
    trap(7);
  }
  iVar35 = *(int *)(puVar31 + 0xe) / iVar3;
  iVar3 = *(int *)(puVar31 + 0xe) % iVar3;
  if (iVar4 < iVar3) {
    iVar35 = iVar35 + 1;
    iVar3 = 0;
  }
  iVar3 = iVar35 * iVar4 + iVar3;
  iVar35 = iVar35 + iVar3;
  if (iVar3 < iVar35) {
    piVar5 = *(int **)((int)this + 0x14);
    unaff_s5 = 8;
                    /* WARNING: Load size is inaccurate */
    dVar34 = *this;
    unaff_s4 = &local_36;
    piVar6 = *(int **)((int)this + 0x10);
    uVar7 = *(undefined4 *)((int)this + 0xc);
    do {
      while (*(int *)((int)this + 0x1c) == 0) {
LAB_001a1798:
        iVar3 = iVar3 + 1;
        if (iVar35 == iVar3) goto LAB_001a17a4;
      }
      in_a1 = 0;
      in_a3 = *(ushort **)(puVar31 + 0xc);
      local_58 = 1;
      piVar15 = piVar6;
      in_a2 = iVar3;
      local_54 = uVar7;
      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();
      if (unaff_s6 != 0) {
        in_a1 = *(int *)(puVar31 + 0xc);
        iVar4 = in_a1 + 7;
        if (iVar4 < 0) {
          iVar4 = in_a1 + 0xe;
        }
        iVar4 = iVar4 >> 3;
        if (0 < in_a1) {
          unaff_s7 = (ushort *)0x0;
          piVar15 = (int *)0x0;
          iVar8 = 0;
          do {
            iVar16 = *(int *)(puVar31 + 0x168);
            piVar15 = (int *)((int)piVar15 << 1);
            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||
                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||
               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {
              piVar15 = (int *)((uint)piVar15 | 1);
            }
            iVar8 = iVar8 + 1;
            if (iVar8 == 8) {
              iVar4 = iVar4 + -1;
              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);
              in_a3 = unaff_s4;
              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);
              piVar15 = (int *)0x0;
              iVar8 = 0;
              in_a1 = *(int *)(puVar31 + 0xc);
            }
            unaff_s7 = (ushort *)((int)unaff_s7 + 1);
            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;
          } while ((int)unaff_s7 < in_a1);
          in_a2 = 0;
          if (iVar8 != 0) {
            in_a1 = iVar4 + -1;
            local_36 = *(ushort *)
                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);
            piVar15 = piVar5;
            in_a2 = iVar3;
            in_a3 = unaff_s4;
            (*(code *)PTR_SetMatrixElement_003a96a4)();
          }
        }
        goto LAB_001a1798;
      }
      iVar3 = iVar3 + 1;
      *(undefined4 *)((int)this + 0x1c) = 0;
    } while (iVar35 != iVar3);
  }
LAB_001a17a4:
  if (local_34 == *(int *)puVar2) {
    return;
  }
  pcVar32 = RadonProjection__omp_fn_2;
  puVar29 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  puStack_a8 = puVar29 + 0x20f054;
  piStack_9c = *(int **)(puVar29 + 0x2079d4);
  puStack_8c = puVar2;
  iStack_94 = *piStack_9c;
  iVar23 = piVar15[2];
  iStack_a0 = piVar15[1];
  iVar27 = *piVar15;
  iVar4 = iVar23;
  iStack_90 = iVar35;
  iStack_88 = iVar3;
  pvStack_84 = this;
  puStack_80 = unaff_s4;
  uStack_7c = unaff_s5;
  iStack_78 = unaff_s6;
  puStack_74 = unaff_s7;
  puStack_70 = puVar31;
  pcStack_6c = pcVar32;
  iVar3 = (**(code **)(puVar29 + 0x2076dc))();
  iVar8 = (**(code **)(puStack_a8 + -0x6fa4))();
  iVar16 = (**(code **)(puStack_a8 + -0x73a8))();
  if (iVar8 == 0) {
    trap(7);
  }
  iVar36 = iVar3 / iVar8;
  iVar3 = iVar3 % iVar8;
  if (iVar16 < iVar3) {
    iVar36 = iVar36 + 1;
    iVar3 = 0;
  }
  iVar3 = iVar36 * iVar16 + iVar3;
  iVar36 = iVar36 + iVar3;
  if (iVar3 < iVar36) {
    unaff_s7 = &uStack_98;
    puVar31 = &uStack_96;
    unaff_s4 = (ushort *)(iVar27 * iVar3 + 0x3fffffff);
    do {
      iVar35 = 0;
      this = (void *)0x0;
      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1) {
        while( true ) {
          in_a1 = iVar3;
          in_a2 = iVar35;
          in_a3 = unaff_s7;
          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);
          iVar35 = iVar35 + 1;
          if ((iVar4 == 0) ||
             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,
             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;
          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)
                         + (int)this);
          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);
          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;
        }
      }
LAB_001a19d0:
      iVar3 = iVar3 + 1;
      iVar4 = iVar23;
      iVar8 = (**(code **)(puStack_a8 + -0x7978))();
      iVar8 = (int)unaff_s4 + iVar8;
      unaff_s4 = (ushort *)((int)unaff_s4 + iVar27);
      *(void **)(iStack_a0 + iVar8 * 4) = this;
    } while (iVar36 != iVar3);
  }
  if (iStack_94 == *piStack_9c) {
    return;
  }
  pcVar32 = *(code **)(puStack_a8 + -0x784c);
  pcVar33 = RadonProjection;
  (*pcVar32)();
  puVar2 = puStack_a8;
  piVar15 = *(int **)(pcVar32 + 0x2077e4);
  uStack_110 = 1;
  iStack_e4 = *piVar15;
  iStack_e0 = iVar35;
  iStack_dc = iVar23;
  iStack_d8 = iVar3;
  pvStack_d4 = this;
  puStack_d0 = unaff_s4;
  iStack_cc = iVar36;
  iStack_c8 = iVar27;
  puStack_c4 = unaff_s7;
  puStack_c0 = puVar31;
  pcStack_bc = pcVar33;
  puStack_ac = in_a3;
  uVar9 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);
  iVar3 = in_a1;
  if (1 < uVar9) {
    do {
      in_a1 = in_a2;
      in_a2 = iVar3;
      uVar9 = uStack_110 * 2;
      iStack_10c = 0;
      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);
      if (0 < iVar3) {
        do {
          if (0 < (int)uStack_110) {
            iStack_118 = iStack_10c + 1;
            iVar35 = iStack_10c + uStack_110;
            iVar3 = iStack_10c;
            uVar11 = 0;
            do {
              iVar23 = 0;
              iVar8 = iStack_118 + -1;
              uVar10 = uVar11 + 1;
              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);
              if (0 < (int)(iVar16 + ~uVar11)) {
                do {
                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);
                  if ((iVar16 != 0) &&
                     (iVar16 = (**(code **)(pcVar32 + 0x207820))
                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {
                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);
                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);
                    if ((iVar16 != 0) &&
                       (iVar16 = (**(code **)(pcVar32 + 0x207820))
                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))
                    {
                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)
                      ;
                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);
                    }
                  }
                  iVar23 = iVar23 + 1;
                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);
                } while (iVar23 < (int)(iVar16 + ~uVar11));
              }
              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);
              if (iVar23 < (int)(iVar16 - uVar11)) {
                do {
                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);
                  if ((iVar16 != 0) &&
                     (iVar16 = (**(code **)(pcVar32 + 0x207820))
                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {
                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);
                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);
                    if (iVar16 != 0) {
                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);
                    }
                  }
                  iVar23 = iVar23 + 1;
                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);
                } while (iVar23 < (int)(iVar16 - uVar11));
              }
              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);
              if (iVar23 < iVar16) {
                do {
                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);
                  if ((iVar16 != 0) &&
                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),
                     iVar16 != 0)) {
                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);
                  }
                  iVar23 = iVar23 + 1;
                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);
                } while (iVar23 < iVar16);
              }
              iVar3 = iVar3 + 1;
              iStack_118 = iStack_118 + 2;
              iVar35 = iVar35 + 1;
              uVar11 = uVar10;
            } while (uStack_110 != uVar10);
          }
          iStack_10c = iStack_10c + uVar9;
          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);
        } while (iStack_10c < iVar3);
      }
      uVar11 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);
      iVar3 = in_a1;
      uStack_110 = uVar9;
    } while (uVar9 < uVar11);
  }
  iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4);
  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)) &&
     ((iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 4 ||
      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)))) {
    (**(code **)(pcVar32 + 0x2076f0))(7);
    iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);
    if (iVar3 < 0) {
      iVar3 = iVar3 + 0x3f;
    }
    if (extraout_v1 < iVar3 >> 6) {
      (**(code **)(pcVar32 + 0x2076f0))(7);
      bVar1 = extraout_v1_00 < 2;
    }
    else {
      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);
      bVar1 = iVar3 < 0x80;
    }
    iVar3 = 1;
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcVar32 + 0x2076f0))(7);
      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);
      if (iVar3 < 0) {
        iVar3 = iVar3 + 0x3f;
      }
      if (extraout_v1_01 < iVar3 >> 6) {
        (**(code **)(pcVar32 + 0x2076f0))(7);
        iVar3 = extraout_v1_02;
      }
      else {
        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);
        if (iVar3 < 0) {
          iVar3 = iVar3 + 0x3f;
        }
        iVar3 = iVar3 >> 6;
      }
    }
    goto LAB_001a1e70;
  }
  uVar37 = (**(code **)(pcVar32 + 0x2076f0))(7);
  if ((int)((ulonglong)uVar37 >> 0x20) == 0) {
    pcVar33 = *(code **)(pcVar32 + 0x2076f0);
    if ((uint)uVar37 < 2) {
      uVar37 = (*pcVar33)(7);
      if ((int)((ulonglong)uVar37 >> 0x20) != 0) goto LAB_001a1e58;
      pcVar33 = *(code **)(pcVar32 + 0x2076f0);
      if ((uint)uVar37 < 2) {
        iVar3 = 1;
        goto LAB_001a1e70;
      }
    }
  }
  else {
LAB_001a1e58:
    pcVar33 = *(code **)(pcVar32 + 0x2076f0);
  }
  uVar37 = (*pcVar33)(7);
  if (((int)((ulonglong)uVar37 >> 0x20) == 0) && ((uint)uVar37 < 2)) {
    (**(code **)(pcVar32 + 0x2076f0))(7);
    iVar3 = extraout_v1_03;
  }
  else {
    iVar3 = 2;
  }
LAB_001a1e70:
  puStack_ec = puVar2;
  piVar5 = (int *)(*(int *)(pcVar32 + 0x207140) + 0x185c);
  puStack_f0 = puStack_ac;
  iStack_e8 = in_a1;
  (**(code **)(pcVar32 + 0x20774c))(piVar5,&puStack_f0,iVar3,0);
  if (iStack_e4 == *piVar15) {
    return;
  }
  pcVar32 = *(code **)(pcVar32 + 0x207618);
  (*pcVar32)();
  iVar35 = *(int *)piVar5[7];
  iVar8 = piVar5[2];
  iVar3 = (**(code **)(pcVar32 + 0x2078b0))();
  iVar4 = (**(code **)(pcVar32 + 0x2074ac))();
  if (iVar35 == 0) {
    trap(7);
  }
  iVar16 = (iVar35 + -1 + *(int *)(iVar8 + 0x1c)) / iVar35;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar23 = iVar16 / iVar3;
  iVar16 = iVar16 % iVar3;
  if (iVar4 < iVar16) {
    iVar23 = iVar23 + 1;
    iVar16 = 0;
  }
  iVar16 = iVar23 * iVar4 + iVar16;
  if (iVar16 < iVar23 + iVar16) {
    iVar25 = piVar5[6];
    iStack_188 = iVar35 * iVar16;
    iVar3 = piVar5[5];
    iVar4 = piVar5[4];
    iVar27 = *(int *)(pcVar32 + 0x206890);
    iVar36 = piVar5[3];
    do {
      if (piVar5[9] != 0) {
        iVar13 = *(int *)(iVar8 + 0x18);
        if (0 < iVar13) {
          iVar24 = 0;
          iVar21 = *(int *)piVar5[8];
          iVar22 = iVar21;
          do {
            if (iVar13 < iVar21) {
              iVar22 = iVar13 - iVar24;
            }
            iVar13 = *(int *)piVar5[7];
            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {
              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;
            }
            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)
            ;
            if (iVar21 == 0) {
              piVar5[9] = 0;
              break;
            }
            if (0 < iVar22) {
              iVar26 = iVar24;
              do {
                if (piVar5[9] != 0) {
                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))
                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,
                                      iVar13,1,iVar36);
                  if (iVar12 != 0) {
                    iVar28 = *(int *)(iVar8 + 0x2c0);
                    puVar19 = (undefined4 *)
                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);
                    if (0 < iVar13) {
                      iVar30 = *(int *)(iVar25 + 0x2c0);
                      iVar20 = 0;
                      do {
                        if (0 < iVar28) {
                          piVar6 = *(int **)(iVar8 + 0x2d0);
                          iVar18 = *(int *)(iVar25 + 0x2d0);
                          piVar15 = piVar6;
                          puVar17 = puVar19;
                          do {
                            iVar14 = iVar18 + *piVar15 * 0xc;
                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {
                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;
                            }
                            piVar15 = piVar15 + 3;
                            puVar17 = puVar17 + 1;
                          } while (piVar15 != piVar6 + iVar28 * 3);
                        }
                        iVar20 = iVar20 + 1;
                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);
                        iVar12 = iVar12 + iVar30 * 4;
                      } while (iVar20 != iVar13);
                    }
                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);
                    if (iVar12 != 0) goto LAB_001a2344;
                  }
                  piVar5[9] = 0;
                }
LAB_001a2344:
                iVar26 = iVar26 + 1;
              } while (iVar22 + iVar24 != iVar26);
            }
            iVar13 = *(int *)(iVar8 + 0x18);
            iVar22 = *(int *)piVar5[8];
            iVar24 = iVar24 + iVar22;
            iVar21 = iVar22 + iVar24;
          } while (iVar24 < iVar13);
        }
        if (*(int *)(iVar8 + 0x328) != 0) {
          uVar7 = *(undefined4 *)(iVar8 + 0x1c);
          uVar9 = *(uint *)piVar5[7];
          pcVar33 = *(code **)(pcVar32 + 0x206c58);
          uVar11 = uVar9 + piVar5[1];
          piVar5[1] = uVar11;
          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;
          *piVar5 = iVar13;
          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);
          if (iVar13 == 0) {
            piVar5[9] = 0;
          }
        }
      }
      iStack_188 = iStack_188 + iVar35;
    } while (iStack_188 < iVar35 * (iVar23 + iVar16));
  }
  return;
}



void FUN_001a159c(double *param_1,int param_2,int param_3,ushort *param_4)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  double *pdVar5;
  double *pdVar6;
  int iVar7;
  int *piVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  int extraout_v1;
  int extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int extraout_v1_03;
  int iVar13;
  int iVar14;
  undefined4 uVar15;
  double *pdVar16;
  int *piVar17;
  int iVar18;
  undefined4 *puVar19;
  int *piVar20;
  int iVar21;
  int iVar22;
  undefined4 *puVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  int iVar27;
  int iVar28;
  ushort *unaff_s4;
  undefined4 unaff_s5;
  int iVar29;
  int unaff_s6;
  int iVar30;
  ushort *unaff_s7;
  int iVar31;
  undefined *puVar32;
  int iVar33;
  ushort *puVar34;
  code *pcVar35;
  code *pcVar36;
  double dVar37;
  int iVar38;
  int iVar39;
  undefined8 uVar40;
  int iStack_188;
  int iStack_118;
  uint uStack_110;
  int iStack_10c;
  short sStack_f2;
  ushort *puStack_f0;
  undefined *puStack_ec;
  int iStack_e8;
  int iStack_e4;
  int iStack_e0;
  int iStack_dc;
  int iStack_d8;
  double *pdStack_d4;
  ushort *puStack_d0;
  int iStack_cc;
  int iStack_c8;
  ushort *puStack_c4;
  ushort *puStack_c0;
  code *pcStack_bc;
  ushort *puStack_ac;
  undefined *puStack_a8;
  int iStack_a0;
  int *piStack_9c;
  ushort uStack_98;
  ushort uStack_96;
  int iStack_94;
  int iStack_90;
  undefined *puStack_8c;
  int iStack_88;
  double *pdStack_84;
  ushort *puStack_80;
  undefined4 uStack_7c;
  int iStack_78;
  ushort *puStack_74;
  ushort *puStack_70;
  code *pcStack_6c;
  undefined4 local_58;
  int local_54;
  ushort local_36;
  int local_34;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  local_34 = *(int *)PTR___stack_chk_guard_003a9230;
  puVar34 = *(ushort **)(param_1 + 1);
  pdVar16 = param_1;
  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  if (iVar3 == 0) {
    trap(7);
  }
  iVar38 = *(int *)(puVar34 + 0xe) / iVar3;
  iVar3 = *(int *)(puVar34 + 0xe) % iVar3;
  if (iVar4 < iVar3) {
    iVar38 = iVar38 + 1;
    iVar3 = 0;
  }
  iVar3 = iVar38 * iVar4 + iVar3;
  iVar38 = iVar38 + iVar3;
  if (iVar3 < iVar38) {
    pdVar5 = *(double **)((int)param_1 + 0x14);
    unaff_s5 = 8;
    dVar37 = *param_1;
    unaff_s4 = &local_36;
    pdVar6 = *(double **)(param_1 + 2);
    iVar4 = *(int *)((int)param_1 + 0xc);
    do {
      while (*(int *)((int)param_1 + 0x1c) == 0) {
LAB_001a1798:
        iVar3 = iVar3 + 1;
        if (iVar38 == iVar3) goto LAB_001a17a4;
      }
      param_2 = 0;
      param_4 = *(ushort **)(puVar34 + 0xc);
      local_58 = 1;
      pdVar16 = pdVar6;
      param_3 = iVar3;
      local_54 = iVar4;
      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();
      if (unaff_s6 != 0) {
        param_2 = *(int *)(puVar34 + 0xc);
        iVar21 = param_2 + 7;
        if (iVar21 < 0) {
          iVar21 = param_2 + 0xe;
        }
        iVar21 = iVar21 >> 3;
        if (0 < param_2) {
          unaff_s7 = (ushort *)0x0;
          pdVar16 = (double *)0x0;
          iVar7 = 0;
          do {
            iVar18 = *(int *)(puVar34 + 0x168);
            pdVar16 = (double *)((int)pdVar16 << 1);
            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||
                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||
               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {
              pdVar16 = (double *)((uint)pdVar16 | 1);
            }
            iVar7 = iVar7 + 1;
            if (iVar7 == 8) {
              iVar21 = iVar21 + -1;
              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);
              param_4 = unaff_s4;
              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);
              pdVar16 = (double *)0x0;
              iVar7 = 0;
              param_2 = *(int *)(puVar34 + 0xc);
            }
            unaff_s7 = (ushort *)((int)unaff_s7 + 1);
            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;
          } while ((int)unaff_s7 < param_2);
          param_3 = 0;
          if (iVar7 != 0) {
            param_2 = iVar21 + -1;
            local_36 = *(ushort *)
                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);
            pdVar16 = pdVar5;
            param_3 = iVar3;
            param_4 = unaff_s4;
            (*(code *)PTR_SetMatrixElement_003a96a4)();
          }
        }
        goto LAB_001a1798;
      }
      iVar3 = iVar3 + 1;
      *(int *)((int)param_1 + 0x1c) = 0;
    } while (iVar38 != iVar3);
  }
LAB_001a17a4:
  if (local_34 == *(int *)puVar2) {
    return;
  }
  pcVar35 = FUN_001a185c;
  puVar32 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  puStack_a8 = puVar32 + 0x20f054;
  piStack_9c = *(int **)(puVar32 + 0x2079d4);
  puStack_8c = puVar2;
  iStack_94 = *piStack_9c;
  iVar18 = *(int *)(pdVar16 + 1);
  iStack_a0 = *(int *)((int)pdVar16 + 4);
  iVar30 = *(int *)pdVar16;
  iVar4 = iVar18;
  iStack_90 = iVar38;
  iStack_88 = iVar3;
  pdStack_84 = param_1;
  puStack_80 = unaff_s4;
  uStack_7c = unaff_s5;
  iStack_78 = unaff_s6;
  puStack_74 = unaff_s7;
  puStack_70 = puVar34;
  pcStack_6c = pcVar35;
  iVar3 = (**(code **)(puVar32 + 0x2076dc))();
  iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();
  iVar7 = (**(code **)(puStack_a8 + -0x73a8))();
  if (iVar21 == 0) {
    trap(7);
  }
  iVar39 = iVar3 / iVar21;
  iVar3 = iVar3 % iVar21;
  if (iVar7 < iVar3) {
    iVar39 = iVar39 + 1;
    iVar3 = 0;
  }
  iVar3 = iVar39 * iVar7 + iVar3;
  iVar39 = iVar39 + iVar3;
  if (iVar3 < iVar39) {
    unaff_s7 = &uStack_98;
    puVar34 = &uStack_96;
    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);
    do {
      iVar38 = 0;
      param_1 = (double *)0x0;
      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {
        while( true ) {
          param_2 = iVar3;
          param_3 = iVar38;
          param_4 = unaff_s7;
          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);
          iVar38 = iVar38 + 1;
          if ((iVar4 == 0) ||
             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,
             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;
          param_1 = (double *)
                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +
                    (int)param_1);
          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);
          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;
        }
      }
LAB_001a19d0:
      iVar3 = iVar3 + 1;
      iVar4 = iVar18;
      iVar21 = (**(code **)(puStack_a8 + -0x7978))();
      iVar21 = (int)unaff_s4 + iVar21;
      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);
      *(double **)(iStack_a0 + iVar21 * 4) = param_1;
    } while (iVar39 != iVar3);
  }
  if (iStack_94 == *piStack_9c) {
    return;
  }
  pcVar35 = *(code **)(puStack_a8 + -0x784c);
  pcVar36 = FUN_001a1a4c;
  (*pcVar35)();
  puVar2 = puStack_a8;
  piVar8 = *(int **)(pcVar35 + 0x2077e4);
  uStack_110 = 1;
  iStack_e4 = *piVar8;
  iStack_e0 = iVar38;
  iStack_dc = iVar18;
  iStack_d8 = iVar3;
  pdStack_d4 = param_1;
  puStack_d0 = unaff_s4;
  iStack_cc = iVar39;
  iStack_c8 = iVar30;
  puStack_c4 = unaff_s7;
  puStack_c0 = puVar34;
  pcStack_bc = pcVar36;
  puStack_ac = param_4;
  uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
  iVar3 = param_2;
  if (1 < uVar9) {
    do {
      param_2 = param_3;
      param_3 = iVar3;
      uVar9 = uStack_110 * 2;
      iStack_10c = 0;
      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);
      if (0 < iVar3) {
        do {
          if (0 < (int)uStack_110) {
            iStack_118 = iStack_10c + 1;
            iVar38 = iStack_10c + uStack_110;
            iVar3 = iStack_10c;
            uVar11 = 0;
            do {
              iVar18 = 0;
              iVar21 = iStack_118 + -1;
              uVar10 = uVar11 + 1;
              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
              if (0 < (int)(iVar7 + ~uVar11)) {
                do {
                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);
                  if ((iVar7 != 0) &&
                     (iVar7 = (**(code **)(pcVar35 + 0x207820))
                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {
                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);
                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);
                    if ((iVar7 != 0) &&
                       (iVar7 = (**(code **)(pcVar35 + 0x207820))
                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))
                    {
                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)
                      ;
                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);
                    }
                  }
                  iVar18 = iVar18 + 1;
                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
                } while (iVar18 < (int)(iVar7 + ~uVar11));
              }
              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
              if (iVar18 < (int)(iVar7 - uVar11)) {
                do {
                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);
                  if ((iVar7 != 0) &&
                     (iVar7 = (**(code **)(pcVar35 + 0x207820))
                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {
                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);
                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);
                    if (iVar7 != 0) {
                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);
                    }
                  }
                  iVar18 = iVar18 + 1;
                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
                } while (iVar18 < (int)(iVar7 - uVar11));
              }
              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
              if (iVar18 < iVar7) {
                do {
                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);
                  if ((iVar7 != 0) &&
                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),
                     iVar7 != 0)) {
                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);
                  }
                  iVar18 = iVar18 + 1;
                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
                } while (iVar18 < iVar7);
              }
              iVar3 = iVar3 + 1;
              iStack_118 = iStack_118 + 2;
              iVar38 = iVar38 + 1;
              uVar11 = uVar10;
            } while (uStack_110 != uVar10);
          }
          iStack_10c = iStack_10c + uVar9;
          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);
        } while (iStack_10c < iVar3);
      }
      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
      iVar3 = param_2;
      uStack_110 = uVar9;
    } while (uVar9 < uVar11);
  }
  iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);
  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&
     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||
      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {
    (**(code **)(pcVar35 + 0x2076f0))(7);
    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
    if (iVar3 < 0) {
      iVar3 = iVar3 + 0x3f;
    }
    if (extraout_v1 < iVar3 >> 6) {
      (**(code **)(pcVar35 + 0x2076f0))(7);
      bVar1 = extraout_v1_00 < 2;
    }
    else {
      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
      bVar1 = iVar3 < 0x80;
    }
    iVar3 = 1;
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcVar35 + 0x2076f0))(7);
      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
      if (iVar3 < 0) {
        iVar3 = iVar3 + 0x3f;
      }
      if (extraout_v1_01 < iVar3 >> 6) {
        (**(code **)(pcVar35 + 0x2076f0))(7);
        iVar3 = extraout_v1_02;
      }
      else {
        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
        if (iVar3 < 0) {
          iVar3 = iVar3 + 0x3f;
        }
        iVar3 = iVar3 >> 6;
      }
    }
    goto LAB_001a1e70;
  }
  uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);
  if ((int)((ulonglong)uVar40 >> 0x20) == 0) {
    pcVar36 = *(code **)(pcVar35 + 0x2076f0);
    if ((uint)uVar40 < 2) {
      uVar40 = (*pcVar36)(7);
      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;
      pcVar36 = *(code **)(pcVar35 + 0x2076f0);
      if ((uint)uVar40 < 2) {
        iVar3 = 1;
        goto LAB_001a1e70;
      }
    }
  }
  else {
LAB_001a1e58:
    pcVar36 = *(code **)(pcVar35 + 0x2076f0);
  }
  uVar40 = (*pcVar36)(7);
  if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {
    (**(code **)(pcVar35 + 0x2076f0))(7);
    iVar3 = extraout_v1_03;
  }
  else {
    iVar3 = 2;
  }
LAB_001a1e70:
  puStack_ec = puVar2;
  piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);
  puStack_f0 = puStack_ac;
  iStack_e8 = param_2;
  (**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);
  if (iStack_e4 == *piVar8) {
    return;
  }
  pcVar35 = *(code **)(pcVar35 + 0x207618);
  (*pcVar35)();
  iVar38 = *(int *)piVar17[7];
  iVar21 = piVar17[2];
  iVar3 = (**(code **)(pcVar35 + 0x2078b0))();
  iVar4 = (**(code **)(pcVar35 + 0x2074ac))();
  if (iVar38 == 0) {
    trap(7);
  }
  iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar18 = iVar7 / iVar3;
  iVar7 = iVar7 % iVar3;
  if (iVar4 < iVar7) {
    iVar18 = iVar18 + 1;
    iVar7 = 0;
  }
  iVar7 = iVar18 * iVar4 + iVar7;
  if (iVar7 < iVar18 + iVar7) {
    iVar28 = piVar17[6];
    iStack_188 = iVar38 * iVar7;
    iVar3 = piVar17[5];
    iVar4 = piVar17[4];
    iVar30 = *(int *)(pcVar35 + 0x206890);
    iVar39 = piVar17[3];
    do {
      if (piVar17[9] != 0) {
        iVar13 = *(int *)(iVar21 + 0x18);
        if (0 < iVar13) {
          iVar27 = 0;
          iVar25 = *(int *)piVar17[8];
          iVar26 = iVar25;
          do {
            if (iVar13 < iVar25) {
              iVar26 = iVar13 - iVar27;
            }
            iVar13 = *(int *)piVar17[7];
            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {
              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;
            }
            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)
            ;
            if (iVar25 == 0) {
              piVar17[9] = 0;
              break;
            }
            if (0 < iVar26) {
              iVar29 = iVar27;
              do {
                if (piVar17[9] != 0) {
                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))
                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,
                                      iVar13,1,iVar39);
                  if (iVar12 != 0) {
                    iVar31 = *(int *)(iVar21 + 0x2c0);
                    puVar23 = (undefined4 *)
                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);
                    if (0 < iVar13) {
                      iVar33 = *(int *)(iVar28 + 0x2c0);
                      iVar24 = 0;
                      do {
                        if (0 < iVar31) {
                          piVar20 = *(int **)(iVar21 + 0x2d0);
                          iVar22 = *(int *)(iVar28 + 0x2d0);
                          piVar8 = piVar20;
                          puVar19 = puVar23;
                          do {
                            iVar14 = iVar22 + *piVar8 * 0xc;
                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {
                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;
                            }
                            piVar8 = piVar8 + 3;
                            puVar19 = puVar19 + 1;
                          } while (piVar8 != piVar20 + iVar31 * 3);
                        }
                        iVar24 = iVar24 + 1;
                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);
                        iVar12 = iVar12 + iVar33 * 4;
                      } while (iVar24 != iVar13);
                    }
                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);
                    if (iVar12 != 0) goto LAB_001a2344;
                  }
                  piVar17[9] = 0;
                }
LAB_001a2344:
                iVar29 = iVar29 + 1;
              } while (iVar26 + iVar27 != iVar29);
            }
            iVar13 = *(int *)(iVar21 + 0x18);
            iVar26 = *(int *)piVar17[8];
            iVar27 = iVar27 + iVar26;
            iVar25 = iVar26 + iVar27;
          } while (iVar27 < iVar13);
        }
        if (*(int *)(iVar21 + 0x328) != 0) {
          uVar15 = *(undefined4 *)(iVar21 + 0x1c);
          uVar9 = *(uint *)piVar17[7];
          pcVar36 = *(code **)(pcVar35 + 0x206c58);
          uVar11 = uVar9 + piVar17[1];
          piVar17[1] = uVar11;
          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;
          *piVar17 = iVar13;
          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);
          if (iVar13 == 0) {
            piVar17[9] = 0;
          }
        }
      }
      iStack_188 = iStack_188 + iVar38;
    } while (iStack_188 < iVar38 * (iVar18 + iVar7));
  }
  return;
}


lui gp,0x21
addiu gp,gp,-0xcec
addu gp,gp,t9
addiu sp,sp,-0x68
lw t9,-0x6fa4(gp)
sdc1 f20,0x60(sp)
sw s1,0x3c(sp)
lw s1,-0x7680(gp)
sw gp,0x18(sp)
sw ra,0x5c(sp)
sw s8,0x58(sp)
sw s3,0x44(sp)
or s3,a0,zero
sw s2,0x40(sp)
sw s0,0x38(sp)
sw s7,0x54(sp)
sw s6,0x50(sp)
sw s5,0x4c(sp)
sw s4,0x48(sp)
lw v0,0x0(s1)
lw s8,0x8(a0)
sw v0,0x34(sp)
jalr t9
_nop
lw gp,0x18(sp)
lw t9,-0x73a8(gp)
jalr t9
_or s2,v0,zero
lw s0,0x1c(s8)
lw gp,0x18(sp)
teq s2,zero
div s0,s2
mfhi t0
slt v1,v0,t0
beq v1,zero,0x001a1634
_mflo s0
addiu s0,s0,0x1
or t0,zero,zero
mul v1,s0,v0
addu s2,v1,t0
addu s0,s0,s2
slt v0,s2,s0
beq v0,zero,0x001a17a4
_nop
lw v0,0x14(s3)
li s5,0x8
ldc1 f20,0x0(s3)
addiu s4,sp,0x32
sw v0,0x24(sp)
lw v0,0x10(s3)
sw v0,0x28(sp)
lw v0,0xc(s3)
sw v0,0x2c(sp)
lw v0,0x1c(s3)
beq v0,zero,0x001a1798
_lw v0,0x2c(sp)
or a1,zero,zero
lw a3,0x18(s8)
or a2,s2,zero
lw t9,-0x7254(gp)
lw a0,0x28(sp)
sw v0,0x14(sp)
li v0,0x1
jalr t9
_sw v0,0x10(sp)
lw gp,0x18(sp)
beq v0,zero,0x001a183c
_or s6,v0,zero
lw a1,0x18(s8)
addiu t1,a1,0x7
bgez t1,0x001a16c0
_nop
addiu t1,a1,0xe
blez a1,0x001a1798
_sra t1,t1,0x3
or s7,zero,zero
or a0,zero,zero
or v0,zero,zero
lw a2,0x2d0(s8)
lw v1,0x8(a2)
sll v1,v1,0x2
addu v1,s6,v1
lwc1 f0,0x0(v1)
cvt.d.S f0,f0
c.lt.D f0,f20
bc1t 0x001a17e4
_sll a0,a0,0x1
lw v1,0x14(a2)
sll v1,v1,0x2
addu v1,s6,v1
lwc1 f0,0x0(v1)
cvt.d.S f0,f0
c.lt.D f0,f20
bc1t 0x1,0x001a17e4
_nop
lw v1,0x20(a2)
sll v1,v1,0x2
addu v1,s6,v1
lwc1 f0,0x0(v1)
cvt.d.S f0,f0
c.lt.D f0,f20
bc1t 0x2,0x001a17e4
_nop
addiu v0,v0,0x1
beq v0,s5,0x001a17f0
_nop
lw v1,0x2c0(s8)
addiu s7,s7,0x1
slt a2,s7,a1
sll v1,v1,0x2
bne a2,zero,0x001a16d4
_addu s6,s6,v1
beq v0,zero,0x001a1798
_subu v0,s5,v0
lw v1,0x18(s3)
lw t9,-0x720c(gp)
addiu a1,t1,-0x1
sllv a0,a0,v0
or a3,s4,zero
sll a0,a0,0x1
or a2,s2,zero
addu v0,v1,a0
lw a0,0x24(sp)
lhu v0,0x0(v0)
jalr t9
_sh v0,0x32(sp)
lw gp,0x18(sp)
addiu s2,s2,0x1
bne s0,s2,0x001a1670
_nop
lw v1,0x34(sp)
lw v0,0x0(s1)
bne v1,v0,0x001a1850
_lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
ldc1 f20,0x60(sp)
jr ra
_addiu sp,sp,0x68
addiu v0,v0,0x1
bne v0,s5,0x001a1744
_ori a0,a0,0x1
lw v0,0x18(s3)
sll a0,a0,0x1
addiu t1,t1,-0x1
lw t9,-0x720c(gp)
or a3,s4,zero
addu a0,v0,a0
sw t1,0x20(sp)
or a1,t1,zero
or a2,s2,zero
lhu v0,0x0(a0)
lw a0,0x24(sp)
jalr t9
_sh v0,0x32(sp)
or a0,zero,zero
lw gp,0x18(sp)
or v0,zero,zero
lw a1,0x18(s8)
b 0x001a1744
_lw t1,0x20(sp)
addiu s2,s2,0x1
bne s0,s2,0x001a1670
_sw zero,0x1c(s3)
b 0x001a17a4
_nop
lw t9,-0x784c(gp)
jalr t9
_nop
(translation_unit "void FUN_001a159c(double *param_1,int param_2,int param_3,ushort *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  double *pdVar5;\n  double *pdVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  int *piVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  int iVar28;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar29;\n  int unaff_s6;\n  int iVar30;\n  ushort *unaff_s7;\n  int iVar31;\n  undefined *puVar32;\n  int iVar33;\n  ushort *puVar34;\n  code *pcVar35;\n  code *pcVar36;\n  double dVar37;\n  int iVar38;\n  int iVar39;\n  undefined8 uVar40;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  double *pdStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  double *pdStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  int local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar34 = *(ushort **)(param_1 + 1);\n  pdVar16 = param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar38 = *(int *)(puVar34 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar34 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar38 * iVar4 + iVar3;\n  iVar38 = iVar38 + iVar3;\n  if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar35 = FUN_001a185c;\n  puVar32 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar32 + 0x20f054;\n  piStack_9c = *(int **)(puVar32 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar18 = *(int *)(pdVar16 + 1);\n  iStack_a0 = *(int *)((int)pdVar16 + 4);\n  iVar30 = *(int *)pdVar16;\n  iVar4 = iVar18;\n  iStack_90 = iVar38;\n  iStack_88 = iVar3;\n  pdStack_84 = param_1;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar34;\n  pcStack_6c = pcVar35;\n  iVar3 = (**(code **)(puVar32 + 0x2076dc))();\n  iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar7 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar21 == 0) {\n    trap(7);\n  }\n  iVar39 = iVar3 / iVar21;\n  iVar3 = iVar3 % iVar21;\n  if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar39 * iVar7 + iVar3;\n  iVar39 = iVar39 + iVar3;\n  if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar35 = *(code **)(puStack_a8 + -0x784c);\n  pcVar36 = FUN_001a1a4c;\n  (*pcVar35)();\n  puVar2 = puStack_a8;\n  piVar8 = *(int **)(pcVar35 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar8;\n  iStack_e0 = iVar38;\n  iStack_dc = iVar18;\n  iStack_d8 = iVar3;\n  pdStack_d4 = param_1;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar39;\n  iStack_c8 = iVar30;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar34;\n  pcStack_bc = pcVar36;\n  puStack_ac = param_4;\n  uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n  iVar3 = param_2;\n  if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }\n  uVar40 = (*pcVar36)(7);\n  if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = param_2;\n  (**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar8) {\n    return;\n  }\n  pcVar35 = *(code **)(pcVar35 + 0x207618);\n  (*pcVar35)();\n  iVar38 = *(int *)piVar17[7];\n  iVar21 = piVar17[2];\n  iVar3 = (**(code **)(pcVar35 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar35 + 0x2074ac))();\n  if (iVar38 == 0) {\n    trap(7);\n  }\n  iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar18 = iVar7 / iVar3;\n  iVar7 = iVar7 % iVar3;\n  if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }\n  iVar7 = iVar18 * iVar4 + iVar7;\n  if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }\n  return;\n}\n\n" (function_definition "void FUN_001a159c(double *param_1,int param_2,int param_3,ushort *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  double *pdVar5;\n  double *pdVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  int *piVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  int iVar28;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar29;\n  int unaff_s6;\n  int iVar30;\n  ushort *unaff_s7;\n  int iVar31;\n  undefined *puVar32;\n  int iVar33;\n  ushort *puVar34;\n  code *pcVar35;\n  code *pcVar36;\n  double dVar37;\n  int iVar38;\n  int iVar39;\n  undefined8 uVar40;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  double *pdStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  double *pdStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  int local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar34 = *(ushort **)(param_1 + 1);\n  pdVar16 = param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar38 = *(int *)(puVar34 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar34 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar38 * iVar4 + iVar3;\n  iVar38 = iVar38 + iVar3;\n  if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar35 = FUN_001a185c;\n  puVar32 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar32 + 0x20f054;\n  piStack_9c = *(int **)(puVar32 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar18 = *(int *)(pdVar16 + 1);\n  iStack_a0 = *(int *)((int)pdVar16 + 4);\n  iVar30 = *(int *)pdVar16;\n  iVar4 = iVar18;\n  iStack_90 = iVar38;\n  iStack_88 = iVar3;\n  pdStack_84 = param_1;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar34;\n  pcStack_6c = pcVar35;\n  iVar3 = (**(code **)(puVar32 + 0x2076dc))();\n  iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar7 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar21 == 0) {\n    trap(7);\n  }\n  iVar39 = iVar3 / iVar21;\n  iVar3 = iVar3 % iVar21;\n  if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar39 * iVar7 + iVar3;\n  iVar39 = iVar39 + iVar3;\n  if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar35 = *(code **)(puStack_a8 + -0x784c);\n  pcVar36 = FUN_001a1a4c;\n  (*pcVar35)();\n  puVar2 = puStack_a8;\n  piVar8 = *(int **)(pcVar35 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar8;\n  iStack_e0 = iVar38;\n  iStack_dc = iVar18;\n  iStack_d8 = iVar3;\n  pdStack_d4 = param_1;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar39;\n  iStack_c8 = iVar30;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar34;\n  pcStack_bc = pcVar36;\n  puStack_ac = param_4;\n  uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n  iVar3 = param_2;\n  if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }\n  uVar40 = (*pcVar36)(7);\n  if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = param_2;\n  (**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar8) {\n    return;\n  }\n  pcVar35 = *(code **)(pcVar35 + 0x207618);\n  (*pcVar35)();\n  iVar38 = *(int *)piVar17[7];\n  iVar21 = piVar17[2];\n  iVar3 = (**(code **)(pcVar35 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar35 + 0x2074ac))();\n  if (iVar38 == 0) {\n    trap(7);\n  }\n  iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar18 = iVar7 / iVar3;\n  iVar7 = iVar7 % iVar3;\n  if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }\n  iVar7 = iVar18 * iVar4 + iVar7;\n  if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001a159c(double *param_1,int param_2,int param_3,ushort *param_4)" identifier (parameter_list "(double *param_1,int param_2,int param_3,ushort *param_4)" ( (parameter_declaration "double *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "ushort *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  double *pdVar5;\n  double *pdVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  int *piVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  int iVar28;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar29;\n  int unaff_s6;\n  int iVar30;\n  ushort *unaff_s7;\n  int iVar31;\n  undefined *puVar32;\n  int iVar33;\n  ushort *puVar34;\n  code *pcVar35;\n  code *pcVar36;\n  double dVar37;\n  int iVar38;\n  int iVar39;\n  undefined8 uVar40;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  double *pdStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  double *pdStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  int local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar34 = *(ushort **)(param_1 + 1);\n  pdVar16 = param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar38 = *(int *)(puVar34 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar34 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar38 * iVar4 + iVar3;\n  iVar38 = iVar38 + iVar3;\n  if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar35 = FUN_001a185c;\n  puVar32 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar32 + 0x20f054;\n  piStack_9c = *(int **)(puVar32 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar18 = *(int *)(pdVar16 + 1);\n  iStack_a0 = *(int *)((int)pdVar16 + 4);\n  iVar30 = *(int *)pdVar16;\n  iVar4 = iVar18;\n  iStack_90 = iVar38;\n  iStack_88 = iVar3;\n  pdStack_84 = param_1;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar34;\n  pcStack_6c = pcVar35;\n  iVar3 = (**(code **)(puVar32 + 0x2076dc))();\n  iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar7 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar21 == 0) {\n    trap(7);\n  }\n  iVar39 = iVar3 / iVar21;\n  iVar3 = iVar3 % iVar21;\n  if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar39 * iVar7 + iVar3;\n  iVar39 = iVar39 + iVar3;\n  if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar35 = *(code **)(puStack_a8 + -0x784c);\n  pcVar36 = FUN_001a1a4c;\n  (*pcVar35)();\n  puVar2 = puStack_a8;\n  piVar8 = *(int **)(pcVar35 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar8;\n  iStack_e0 = iVar38;\n  iStack_dc = iVar18;\n  iStack_d8 = iVar3;\n  pdStack_d4 = param_1;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar39;\n  iStack_c8 = iVar30;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar34;\n  pcStack_bc = pcVar36;\n  puStack_ac = param_4;\n  uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n  iVar3 = param_2;\n  if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }\n  uVar40 = (*pcVar36)(7);\n  if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = param_2;\n  (**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar8) {\n    return;\n  }\n  pcVar35 = *(code **)(pcVar35 + 0x207618);\n  (*pcVar35)();\n  iVar38 = *(int *)piVar17[7];\n  iVar21 = piVar17[2];\n  iVar3 = (**(code **)(pcVar35 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar35 + 0x2074ac))();\n  if (iVar38 == 0) {\n    trap(7);\n  }\n  iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar18 = iVar7 / iVar3;\n  iVar7 = iVar7 % iVar3;\n  if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }\n  iVar7 = iVar18 * iVar4 + iVar7;\n  if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "double *pdVar5;" primitive_type (pointer_declarator "*pdVar5" * identifier) ;) (declaration "double *pdVar6;" primitive_type (pointer_declarator "*pdVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "int extraout_v1_03;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "ushort *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "undefined4 unaff_s5;" type_identifier identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int unaff_s6;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "ushort *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "undefined *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "ushort *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "code *pcVar35;" type_identifier (pointer_declarator "*pcVar35" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "int iVar39;" primitive_type identifier ;) (declaration "undefined8 uVar40;" type_identifier identifier ;) (declaration "int iStack_188;" primitive_type identifier ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "uint uStack_110;" type_identifier identifier ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "short sStack_f2;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "undefined *puStack_ec;" type_identifier (pointer_declarator "*puStack_ec" * identifier) ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "double *pdStack_d4;" primitive_type (pointer_declarator "*pdStack_d4" * identifier) ;) (declaration "ushort *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "ushort *puStack_c4;" type_identifier (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "ushort *puStack_c0;" type_identifier (pointer_declarator "*puStack_c0" * identifier) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "ushort *puStack_ac;" type_identifier (pointer_declarator "*puStack_ac" * identifier) ;) (declaration "undefined *puStack_a8;" type_identifier (pointer_declarator "*puStack_a8" * identifier) ;) (declaration "int iStack_a0;" primitive_type identifier ;) (declaration "int *piStack_9c;" primitive_type (pointer_declarator "*piStack_9c" * identifier) ;) (declaration "ushort uStack_98;" type_identifier identifier ;) (declaration "ushort uStack_96;" type_identifier identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "undefined *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "int iStack_88;" primitive_type identifier ;) (declaration "double *pdStack_84;" primitive_type (pointer_declarator "*pdStack_84" * identifier) ;) (declaration "ushort *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "undefined4 uStack_7c;" type_identifier identifier ;) (declaration "int iStack_78;" primitive_type identifier ;) (declaration "ushort *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "ushort *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "ushort local_36;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_34 = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_34 = *(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 "puVar34 = *(ushort **)(param_1 + 1);" (assignment_expression "puVar34 = *(ushort **)(param_1 + 1)" identifier = (pointer_expression "*(ushort **)(param_1 + 1)" * (cast_expression "(ushort **)(param_1 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pdVar16 = param_1;" (assignment_expression "pdVar16 = param_1" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" * (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" * (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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 "iVar38 = *(int *)(puVar34 + 0xe) / iVar3;" (assignment_expression "iVar38 = *(int *)(puVar34 + 0xe) / iVar3" identifier = (binary_expression "*(int *)(puVar34 + 0xe) / iVar3" (pointer_expression "*(int *)(puVar34 + 0xe)" * (cast_expression "(int *)(puVar34 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xe)" ( (binary_expression "puVar34 + 0xe" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar3 = *(int *)(puVar34 + 0xe) % iVar3;" (assignment_expression "iVar3 = *(int *)(puVar34 + 0xe) % iVar3" identifier = (binary_expression "*(int *)(puVar34 + 0xe) % iVar3" (pointer_expression "*(int *)(puVar34 + 0xe)" * (cast_expression "(int *)(puVar34 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xe)" ( (binary_expression "puVar34 + 0xe" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar3)" ( (binary_expression "iVar4 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = iVar38 * iVar4 + iVar3;" (assignment_expression "iVar3 = iVar38 * iVar4 + iVar3" identifier = (binary_expression "iVar38 * iVar4 + iVar3" (binary_expression "iVar38 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar38 = iVar38 + iVar3;" (assignment_expression "iVar38 = iVar38 + iVar3" identifier = (binary_expression "iVar38 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar38)" ( (binary_expression "iVar3 < iVar38" identifier < identifier) )) (compound_statement "{\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }" { (expression_statement "pdVar5 = *(double **)((int)param_1 + 0x14);" (assignment_expression "pdVar5 = *(double **)((int)param_1 + 0x14)" identifier = (pointer_expression "*(double **)((int)param_1 + 0x14)" * (cast_expression "(double **)((int)param_1 + 0x14)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 0x14)" ( (binary_expression "(int)param_1 + 0x14" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s5 = 8;" (assignment_expression "unaff_s5 = 8" identifier = number_literal) ;) (expression_statement "dVar37 = *param_1;" (assignment_expression "dVar37 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "unaff_s4 = &local_36;" (assignment_expression "unaff_s4 = &local_36" identifier = (pointer_expression "&local_36" & identifier)) ;) (expression_statement "pdVar6 = *(double **)(param_1 + 2);" (assignment_expression "pdVar6 = *(double **)(param_1 + 2)" identifier = (pointer_expression "*(double **)(param_1 + 2)" * (cast_expression "(double **)(param_1 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)((int)param_1 + 0xc);" (assignment_expression "iVar4 = *(int *)((int)param_1 + 0xc)" identifier = (pointer_expression "*(int *)((int)param_1 + 0xc)" * (cast_expression "(int *)((int)param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xc)" ( (binary_expression "(int)param_1 + 0xc" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);" do (compound_statement "{\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    }" { (while_statement "while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }" while (parenthesized_expression "(*(int *)((int)param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)((int)param_1 + 0x1c) == 0" (pointer_expression "*(int *)((int)param_1 + 0x1c)" * (cast_expression "(int *)((int)param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x1c)" ( (binary_expression "(int)param_1 + 0x1c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }" { (labeled_statement "LAB_001a1798:\n        iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar38 == iVar3) goto LAB_001a17a4;" if (parenthesized_expression "(iVar38 == iVar3)" ( (binary_expression "iVar38 == iVar3" identifier == identifier) )) (goto_statement "goto LAB_001a17a4;" goto statement_identifier ;)) })) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" identifier = number_literal) ;) (expression_statement "param_4 = *(ushort **)(puVar34 + 0xc);" (assignment_expression "param_4 = *(ushort **)(puVar34 + 0xc)" identifier = (pointer_expression "*(ushort **)(puVar34 + 0xc)" * (cast_expression "(ushort **)(puVar34 + 0xc)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0xc)" ( (binary_expression "puVar34 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (expression_statement "pdVar16 = pdVar6;" (assignment_expression "pdVar16 = pdVar6" identifier = identifier) ;) (expression_statement "param_3 = iVar3;" (assignment_expression "param_3 = iVar3" identifier = identifier) ;) (expression_statement "local_54 = iVar4;" (assignment_expression "local_54 = iVar4" identifier = identifier) ;) (expression_statement "unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();" (assignment_expression "unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)()" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)()" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)" ( (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003a965c" * (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003a965c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }" if (parenthesized_expression "(unaff_s6 != 0)" ( (binary_expression "unaff_s6 != 0" identifier != number_literal) )) (compound_statement "{\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }" { (expression_statement "param_2 = *(int *)(puVar34 + 0xc);" (assignment_expression "param_2 = *(int *)(puVar34 + 0xc)" identifier = (pointer_expression "*(int *)(puVar34 + 0xc)" * (cast_expression "(int *)(puVar34 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xc)" ( (binary_expression "puVar34 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = param_2 + 7;" (assignment_expression "iVar21 = param_2 + 7" identifier = (binary_expression "param_2 + 7" identifier + number_literal)) ;) (if_statement "if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }" if (parenthesized_expression "(iVar21 < 0)" ( (binary_expression "iVar21 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar21 = param_2 + 0xe;\n        }" { (expression_statement "iVar21 = param_2 + 0xe;" (assignment_expression "iVar21 = param_2 + 0xe" identifier = (binary_expression "param_2 + 0xe" identifier + number_literal)) ;) })) (expression_statement "iVar21 = iVar21 >> 3;" (assignment_expression "iVar21 = iVar21 >> 3" identifier = (binary_expression "iVar21 >> 3" identifier >> number_literal)) ;) (if_statement "if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }" { (expression_statement "unaff_s7 = (ushort *)0x0;" (assignment_expression "unaff_s7 = (ushort *)0x0" identifier = (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);" do (compound_statement "{\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          }" { (expression_statement "iVar18 = *(int *)(puVar34 + 0x168);" (assignment_expression "iVar18 = *(int *)(puVar34 + 0x168)" identifier = (pointer_expression "*(int *)(puVar34 + 0x168)" * (cast_expression "(int *)(puVar34 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x168)" ( (binary_expression "puVar34 + 0x168" identifier + number_literal) ))))) ;) (expression_statement "pdVar16 = (double *)((int)pdVar16 << 1);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 << 1)" identifier = (cast_expression "(double *)((int)pdVar16 << 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 << 1)" ( (binary_expression "(int)pdVar16 << 1" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }" if (parenthesized_expression "((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37))" ( (binary_expression "(((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)" (parenthesized_expression "(((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37))" ( (binary_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)" (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37)" ( (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4)" * (cast_expression "(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + *(int *)(iVar18 + 8) * 4)" ( (binary_expression "unaff_s6 + *(int *)(iVar18 + 8) * 4" identifier + (binary_expression "*(int *)(iVar18 + 8) * 4" (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) * number_literal)) ))))) < identifier) )) || (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)" ( (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" * (cast_expression "(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" ( (binary_expression "unaff_s6 + *(int *)(iVar18 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar18 + 0x14) * 4" (pointer_expression "*(int *)(iVar18 + 0x14)" * (cast_expression "(int *)(iVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) < identifier) ))) )) || (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)" ( (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" * (cast_expression "(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" ( (binary_expression "unaff_s6 + *(int *)(iVar18 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar18 + 0x20) * 4" (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) < identifier) ))) )) (compound_statement "{\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }" { (expression_statement "pdVar16 = (double *)((uint)pdVar16 | 1);" (assignment_expression "pdVar16 = (double *)((uint)pdVar16 | 1)" identifier = (cast_expression "(double *)((uint)pdVar16 | 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pdVar16 | 1)" ( (binary_expression "(uint)pdVar16 | 1" (cast_expression "(uint)pdVar16" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) )))) ;) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }" if (parenthesized_expression "(iVar7 == 8)" ( (binary_expression "iVar7 == 8" identifier == number_literal) )) (compound_statement "{\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }" { (expression_statement "iVar21 = iVar21 + -1;" (assignment_expression "iVar21 = iVar21 + -1" identifier = (binary_expression "iVar21 + -1" identifier + number_literal)) ;) (expression_statement "local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);" (assignment_expression "local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" identifier = (pointer_expression "*(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" * (cast_expression "(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" ( (binary_expression "*(int *)(param_1 + 3) + (int)pdVar16 * 2" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) + (binary_expression "(int)pdVar16 * 2" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "param_4 = unaff_s4;" (assignment_expression "param_4 = unaff_s4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);" (call_expression "(*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3)" (parenthesized_expression "(*(code *)PTR_SetMatrixElement_003a96a4)" ( (pointer_expression "*(code *)PTR_SetMatrixElement_003a96a4" * (cast_expression "(code *)PTR_SetMatrixElement_003a96a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pdVar5,iVar21,iVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "param_2 = *(int *)(puVar34 + 0xc);" (assignment_expression "param_2 = *(int *)(puVar34 + 0xc)" identifier = (pointer_expression "*(int *)(puVar34 + 0xc)" * (cast_expression "(int *)(puVar34 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xc)" ( (binary_expression "puVar34 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "unaff_s7 = (ushort *)((int)unaff_s7 + 1);" (assignment_expression "unaff_s7 = (ushort *)((int)unaff_s7 + 1)" identifier = (cast_expression "(ushort *)((int)unaff_s7 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7 + 1)" ( (binary_expression "(int)unaff_s7 + 1" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;" (assignment_expression "unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4" identifier = (binary_expression "unaff_s6 + *(int *)(puVar34 + 0x160) * 4" identifier + (binary_expression "*(int *)(puVar34 + 0x160) * 4" (pointer_expression "*(int *)(puVar34 + 0x160)" * (cast_expression "(int *)(puVar34 + 0x160)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x160)" ( (binary_expression "puVar34 + 0x160" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "((int)unaff_s7 < param_2)" ( (binary_expression "(int)unaff_s7 < param_2" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }" { (expression_statement "param_2 = iVar21 + -1;" (assignment_expression "param_2 = iVar21 + -1" identifier = (binary_expression "iVar21 + -1" identifier + number_literal)) ;) (expression_statement "local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);" (assignment_expression "local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" identifier = (pointer_expression "*(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" * (cast_expression "(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" ( (binary_expression "*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) + (binary_expression "((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2" (parenthesized_expression "((int)pdVar16 << (8U - iVar7 & 0x1f))" ( (binary_expression "(int)pdVar16 << (8U - iVar7 & 0x1f)" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) << (parenthesized_expression "(8U - iVar7 & 0x1f)" ( (binary_expression "8U - iVar7 & 0x1f" (binary_expression "8U - iVar7" number_literal - identifier) & number_literal) ))) )) * number_literal)) ))))) ;) (expression_statement "pdVar16 = pdVar5;" (assignment_expression "pdVar16 = pdVar5" identifier = identifier) ;) (expression_statement "param_3 = iVar3;" (assignment_expression "param_3 = iVar3" identifier = identifier) ;) (expression_statement "param_4 = unaff_s4;" (assignment_expression "param_4 = unaff_s4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetMatrixElement_003a96a4)();" (call_expression "(*(code *)PTR_SetMatrixElement_003a96a4)()" (parenthesized_expression "(*(code *)PTR_SetMatrixElement_003a96a4)" ( (pointer_expression "*(code *)PTR_SetMatrixElement_003a96a4" * (cast_expression "(code *)PTR_SetMatrixElement_003a96a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) })) (goto_statement "goto LAB_001a1798;" goto statement_identifier ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)((int)param_1 + 0x1c) = 0;" (assignment_expression "*(int *)((int)param_1 + 0x1c) = 0" (pointer_expression "*(int *)((int)param_1 + 0x1c)" * (cast_expression "(int *)((int)param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x1c)" ( (binary_expression "(int)param_1 + 0x1c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) while (parenthesized_expression "(iVar38 != iVar3)" ( (binary_expression "iVar38 != iVar3" identifier != identifier) )) ;) })) (labeled_statement "LAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }" statement_identifier : (if_statement "if (local_34 == *(int *)puVar2) {\n    return;\n  }" if (parenthesized_expression "(local_34 == *(int *)puVar2)" ( (binary_expression "local_34 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar35 = FUN_001a185c;" (assignment_expression "pcVar35 = FUN_001a185c" identifier = identifier) ;) (expression_statement "puVar32 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar32 = PTR___stack_chk_fail_003a9064" identifier = 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 "puStack_a8 = puVar32 + 0x20f054;" (assignment_expression "puStack_a8 = puVar32 + 0x20f054" identifier = (binary_expression "puVar32 + 0x20f054" identifier + number_literal)) ;) (expression_statement "piStack_9c = *(int **)(puVar32 + 0x2079d4);" (assignment_expression "piStack_9c = *(int **)(puVar32 + 0x2079d4)" identifier = (pointer_expression "*(int **)(puVar32 + 0x2079d4)" * (cast_expression "(int **)(puVar32 + 0x2079d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x2079d4)" ( (binary_expression "puVar32 + 0x2079d4" identifier + number_literal) ))))) ;) (expression_statement "puStack_8c = puVar2;" (assignment_expression "puStack_8c = puVar2" identifier = identifier) ;) (expression_statement "iStack_94 = *piStack_9c;" (assignment_expression "iStack_94 = *piStack_9c" identifier = (pointer_expression "*piStack_9c" * identifier)) ;) (expression_statement "iVar18 = *(int *)(pdVar16 + 1);" (assignment_expression "iVar18 = *(int *)(pdVar16 + 1)" identifier = (pointer_expression "*(int *)(pdVar16 + 1)" * (cast_expression "(int *)(pdVar16 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 1)" ( (binary_expression "pdVar16 + 1" identifier + number_literal) ))))) ;) (expression_statement "iStack_a0 = *(int *)((int)pdVar16 + 4);" (assignment_expression "iStack_a0 = *(int *)((int)pdVar16 + 4)" identifier = (pointer_expression "*(int *)((int)pdVar16 + 4)" * (cast_expression "(int *)((int)pdVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 4)" ( (binary_expression "(int)pdVar16 + 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar30 = *(int *)pdVar16;" (assignment_expression "iVar30 = *(int *)pdVar16" identifier = (pointer_expression "*(int *)pdVar16" * (cast_expression "(int *)pdVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = iVar18;" (assignment_expression "iVar4 = iVar18" identifier = identifier) ;) (expression_statement "iStack_90 = iVar38;" (assignment_expression "iStack_90 = iVar38" identifier = identifier) ;) (expression_statement "iStack_88 = iVar3;" (assignment_expression "iStack_88 = iVar3" identifier = identifier) ;) (expression_statement "pdStack_84 = param_1;" (assignment_expression "pdStack_84 = param_1" identifier = identifier) ;) (expression_statement "puStack_80 = unaff_s4;" (assignment_expression "puStack_80 = unaff_s4" identifier = identifier) ;) (expression_statement "uStack_7c = unaff_s5;" (assignment_expression "uStack_7c = unaff_s5" identifier = identifier) ;) (expression_statement "iStack_78 = unaff_s6;" (assignment_expression "iStack_78 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_74 = unaff_s7;" (assignment_expression "puStack_74 = unaff_s7" identifier = identifier) ;) (expression_statement "puStack_70 = puVar34;" (assignment_expression "puStack_70 = puVar34" identifier = identifier) ;) (expression_statement "pcStack_6c = pcVar35;" (assignment_expression "pcStack_6c = pcVar35" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(puVar32 + 0x2076dc))();" (assignment_expression "iVar3 = (**(code **)(puVar32 + 0x2076dc))()" identifier = (call_expression "(**(code **)(puVar32 + 0x2076dc))()" (parenthesized_expression "(**(code **)(puVar32 + 0x2076dc))" ( (pointer_expression "**(code **)(puVar32 + 0x2076dc)" * (pointer_expression "*(code **)(puVar32 + 0x2076dc)" * (cast_expression "(code **)(puVar32 + 0x2076dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x2076dc)" ( (binary_expression "puVar32 + 0x2076dc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();" (assignment_expression "iVar21 = (**(code **)(puStack_a8 + -0x6fa4))()" identifier = (call_expression "(**(code **)(puStack_a8 + -0x6fa4))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x6fa4))" ( (pointer_expression "**(code **)(puStack_a8 + -0x6fa4)" * (pointer_expression "*(code **)(puStack_a8 + -0x6fa4)" * (cast_expression "(code **)(puStack_a8 + -0x6fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x6fa4)" ( (binary_expression "puStack_a8 + -0x6fa4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = (**(code **)(puStack_a8 + -0x73a8))();" (assignment_expression "iVar7 = (**(code **)(puStack_a8 + -0x73a8))()" identifier = (call_expression "(**(code **)(puStack_a8 + -0x73a8))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x73a8))" ( (pointer_expression "**(code **)(puStack_a8 + -0x73a8)" * (pointer_expression "*(code **)(puStack_a8 + -0x73a8)" * (cast_expression "(code **)(puStack_a8 + -0x73a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x73a8)" ( (binary_expression "puStack_a8 + -0x73a8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar21 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 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 "iVar39 = iVar3 / iVar21;" (assignment_expression "iVar39 = iVar3 / iVar21" identifier = (binary_expression "iVar3 / iVar21" identifier / identifier)) ;) (expression_statement "iVar3 = iVar3 % iVar21;" (assignment_expression "iVar3 = iVar3 % iVar21" identifier = (binary_expression "iVar3 % iVar21" identifier % identifier)) ;) (if_statement "if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar7 < iVar3)" ( (binary_expression "iVar7 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar39 = iVar39 + 1;" (assignment_expression "iVar39 = iVar39 + 1" identifier = (binary_expression "iVar39 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = iVar39 * iVar7 + iVar3;" (assignment_expression "iVar3 = iVar39 * iVar7 + iVar3" identifier = (binary_expression "iVar39 * iVar7 + iVar3" (binary_expression "iVar39 * iVar7" identifier * identifier) + identifier)) ;) (expression_statement "iVar39 = iVar39 + iVar3;" (assignment_expression "iVar39 = iVar39 + iVar3" identifier = (binary_expression "iVar39 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar39)" ( (binary_expression "iVar3 < iVar39" identifier < identifier) )) (compound_statement "{\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }" { (expression_statement "unaff_s7 = &uStack_98;" (assignment_expression "unaff_s7 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (expression_statement "puVar34 = &uStack_96;" (assignment_expression "puVar34 = &uStack_96" identifier = (pointer_expression "&uStack_96" & identifier)) ;) (expression_statement "unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);" (assignment_expression "unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff)" identifier = (cast_expression "(ushort *)(iVar30 * iVar3 + 0x3fffffff)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 * iVar3 + 0x3fffffff)" ( (binary_expression "iVar30 * iVar3 + 0x3fffffff" (binary_expression "iVar30 * iVar3" identifier * identifier) + number_literal) )))) ;) (do_statement "do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);" do (compound_statement "{\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "param_1 = (double *)0x0;" (assignment_expression "param_1 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }" while (parenthesized_expression "(iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1)" ( (comma_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7288))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7288))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7288)" * (pointer_expression "*(code **)(puStack_a8 + -0x7288)" * (cast_expression "(code **)(puStack_a8 + -0x7288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7288)" ( (binary_expression "puStack_a8 + -0x7288" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier )))) , (binary_expression "iVar38 < iVar4 + -1" identifier < (binary_expression "iVar4 + -1" identifier + number_literal))) )) (compound_statement "{\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }" { (while_statement "while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }" { (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" identifier = identifier) ;) (expression_statement "param_3 = iVar38;" (assignment_expression "param_3 = iVar38" identifier = identifier) ;) (expression_statement "param_4 = unaff_s7;" (assignment_expression "param_4 = unaff_s7" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7644))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7644))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7644)" * (pointer_expression "*(code **)(puStack_a8 + -0x7644)" * (cast_expression "(code **)(puStack_a8 + -0x7644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7644)" ( (binary_expression "puStack_a8 + -0x7644" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier )))) ;) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (if_statement "if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;" if (parenthesized_expression "((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)" ( (comma_expression "param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "param_2 = iVar3" identifier = identifier) , (comma_expression "param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "param_3 = iVar38" identifier = identifier) , (comma_expression "param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "param_4 = puVar34" identifier = identifier) , (comma_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7644))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7644))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7644)" * (pointer_expression "*(code **)(puStack_a8 + -0x7644)" * (cast_expression "(code **)(puStack_a8 + -0x7644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7644)" ( (binary_expression "puStack_a8 + -0x7644" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal))))) ))) )) (break_statement "break;" break ;)) (expression_statement "param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);" (assignment_expression "param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1)" identifier = (cast_expression "(double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1)" ( (binary_expression "((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1" (binary_expression "((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)" (parenthesized_expression "((uint)uStack_98 - (uint)uStack_96)" ( (binary_expression "(uint)uStack_98 - (uint)uStack_96" (cast_expression "(uint)uStack_98" ( (type_descriptor "uint" type_identifier) ) identifier) - (cast_expression "(uint)uStack_96" ( (type_descriptor "uint" type_identifier) ) identifier)) )) * (parenthesized_expression "((uint)uStack_98 - (uint)uStack_96)" ( (binary_expression "(uint)uStack_98 - (uint)uStack_96" (cast_expression "(uint)uStack_98" ( (type_descriptor "uint" type_identifier) ) identifier) - (cast_expression "(uint)uStack_96" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) + (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7288))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7288))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7288)" * (pointer_expression "*(code **)(puStack_a8 + -0x7288)" * (cast_expression "(code **)(puStack_a8 + -0x7288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7288)" ( (binary_expression "puStack_a8 + -0x7288" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier )))) ;) (if_statement "if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;" if (parenthesized_expression "(iVar4 + -1 <= iVar38)" ( (binary_expression "iVar4 + -1 <= iVar38" (binary_expression "iVar4 + -1" identifier + number_literal) <= identifier) )) (goto_statement "goto LAB_001a19d0;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_001a19d0:\n      iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) (expression_statement "iVar4 = iVar18;" (assignment_expression "iVar4 = iVar18" identifier = identifier) ;) (expression_statement "iVar21 = (**(code **)(puStack_a8 + -0x7978))();" (assignment_expression "iVar21 = (**(code **)(puStack_a8 + -0x7978))()" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7978))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7978))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7978)" * (pointer_expression "*(code **)(puStack_a8 + -0x7978)" * (cast_expression "(code **)(puStack_a8 + -0x7978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7978)" ( (binary_expression "puStack_a8 + -0x7978" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar21 = (int)unaff_s4 + iVar21;" (assignment_expression "iVar21 = (int)unaff_s4 + iVar21" identifier = (binary_expression "(int)unaff_s4 + iVar21" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);" (assignment_expression "unaff_s4 = (ushort *)((int)unaff_s4 + iVar30)" identifier = (cast_expression "(ushort *)((int)unaff_s4 + iVar30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + iVar30)" ( (binary_expression "(int)unaff_s4 + iVar30" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*(double **)(iStack_a0 + iVar21 * 4) = param_1;" (assignment_expression "*(double **)(iStack_a0 + iVar21 * 4) = param_1" (pointer_expression "*(double **)(iStack_a0 + iVar21 * 4)" * (cast_expression "(double **)(iStack_a0 + iVar21 * 4)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_a0 + iVar21 * 4)" ( (binary_expression "iStack_a0 + iVar21 * 4" identifier + (binary_expression "iVar21 * 4" identifier * number_literal)) )))) = identifier) ;) }) while (parenthesized_expression "(iVar39 != iVar3)" ( (binary_expression "iVar39 != iVar3" identifier != identifier) )) ;) })) (if_statement "if (iStack_94 == *piStack_9c) {\n    return;\n  }" if (parenthesized_expression "(iStack_94 == *piStack_9c)" ( (binary_expression "iStack_94 == *piStack_9c" identifier == (pointer_expression "*piStack_9c" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(puStack_a8 + -0x784c);" (assignment_expression "pcVar35 = *(code **)(puStack_a8 + -0x784c)" identifier = (pointer_expression "*(code **)(puStack_a8 + -0x784c)" * (cast_expression "(code **)(puStack_a8 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x784c)" ( (binary_expression "puStack_a8 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = FUN_001a1a4c;" (assignment_expression "pcVar36 = FUN_001a1a4c" identifier = identifier) ;) (expression_statement "(*pcVar35)();" (call_expression "(*pcVar35)()" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = puStack_a8;" (assignment_expression "puVar2 = puStack_a8" identifier = identifier) ;) (expression_statement "piVar8 = *(int **)(pcVar35 + 0x2077e4);" (assignment_expression "piVar8 = *(int **)(pcVar35 + 0x2077e4)" identifier = (pointer_expression "*(int **)(pcVar35 + 0x2077e4)" * (cast_expression "(int **)(pcVar35 + 0x2077e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2077e4)" ( (binary_expression "pcVar35 + 0x2077e4" identifier + number_literal) ))))) ;) (expression_statement "uStack_110 = 1;" (assignment_expression "uStack_110 = 1" identifier = number_literal) ;) (expression_statement "iStack_e4 = *piVar8;" (assignment_expression "iStack_e4 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "iStack_e0 = iVar38;" (assignment_expression "iStack_e0 = iVar38" identifier = identifier) ;) (expression_statement "iStack_dc = iVar18;" (assignment_expression "iStack_dc = iVar18" identifier = identifier) ;) (expression_statement "iStack_d8 = iVar3;" (assignment_expression "iStack_d8 = iVar3" identifier = identifier) ;) (expression_statement "pdStack_d4 = param_1;" (assignment_expression "pdStack_d4 = param_1" identifier = identifier) ;) (expression_statement "puStack_d0 = unaff_s4;" (assignment_expression "puStack_d0 = unaff_s4" identifier = identifier) ;) (expression_statement "iStack_cc = iVar39;" (assignment_expression "iStack_cc = iVar39" identifier = identifier) ;) (expression_statement "iStack_c8 = iVar30;" (assignment_expression "iStack_c8 = iVar30" identifier = identifier) ;) (expression_statement "puStack_c4 = unaff_s7;" (assignment_expression "puStack_c4 = unaff_s7" identifier = identifier) ;) (expression_statement "puStack_c0 = puVar34;" (assignment_expression "puStack_c0 = puVar34" identifier = identifier) ;) (expression_statement "pcStack_bc = pcVar36;" (assignment_expression "pcStack_bc = pcVar36" identifier = identifier) ;) (expression_statement "puStack_ac = param_4;" (assignment_expression "puStack_ac = param_4" identifier = identifier) ;) (expression_statement "uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" identifier = identifier) ;) (if_statement "if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }" if (parenthesized_expression "(1 < uVar9)" ( (binary_expression "1 < uVar9" number_literal < identifier) )) (compound_statement "{\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }" { (do_statement "do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);" do (compound_statement "{\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    }" { (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (expression_statement "param_3 = iVar3;" (assignment_expression "param_3 = iVar3" identifier = identifier) ;) (expression_statement "uVar9 = uStack_110 * 2;" (assignment_expression "uVar9 = uStack_110 * 2" identifier = (binary_expression "uStack_110 * 2" identifier * number_literal)) ;) (expression_statement "iStack_10c = 0;" (assignment_expression "iStack_10c = 0" identifier = number_literal) ;) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }" { (do_statement "do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);" do (compound_statement "{\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        }" { (if_statement "if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }" if (parenthesized_expression "(0 < (int)uStack_110)" ( (binary_expression "0 < (int)uStack_110" number_literal < (cast_expression "(int)uStack_110" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }" { (expression_statement "iStack_118 = iStack_10c + 1;" (assignment_expression "iStack_118 = iStack_10c + 1" identifier = (binary_expression "iStack_10c + 1" identifier + number_literal)) ;) (expression_statement "iVar38 = iStack_10c + uStack_110;" (assignment_expression "iVar38 = iStack_10c + uStack_110" identifier = (binary_expression "iStack_10c + uStack_110" identifier + identifier)) ;) (expression_statement "iVar3 = iStack_10c;" (assignment_expression "iVar3 = iStack_10c" identifier = identifier) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);" do (compound_statement "{\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "iVar21 = iStack_118 + -1;" (assignment_expression "iVar21 = iStack_118 + -1" identifier = (binary_expression "iStack_118 + -1" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }" if (parenthesized_expression "(0 < (int)(iVar7 + ~uVar11))" ( (binary_expression "0 < (int)(iVar7 + ~uVar11)" number_literal < (cast_expression "(int)(iVar7 + ~uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 + ~uVar11)" ( (binary_expression "iVar7 + ~uVar11" identifier + (unary_expression "~uVar11" ~ identifier)) )))) )) (compound_statement "{\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }" { (do_statement "do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));" do (compound_statement "{\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                }" { (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar3,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) ;) (if_statement "if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }" if (parenthesized_expression "((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar38,uVar11 + iVar18,&puStack_f0)" ( identifier , identifier , (binary_expression "uVar11 + iVar18" identifier + identifier) , (pointer_expression "&puStack_f0" & identifier) )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }" { (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier = (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" identifier . field_identifier) + identifier) , (field_expression "puStack_f0._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iVar21,iVar18,&puStack_f0)" ( identifier , identifier , identifier , (pointer_expression "&puStack_f0" & identifier) )))) ;) (if_statement "if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }" if (parenthesized_expression "((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar38,uVar10 + iVar18,&puStack_f0)" ( identifier , identifier , (binary_expression "uVar10 + iVar18" identifier + identifier) , (pointer_expression "&puStack_f0" & identifier) )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }" { (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier = (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" identifier . field_identifier) + identifier) , (field_expression "puStack_f0._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);" (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iStack_118,iVar18,&puStack_f0)" ( identifier , identifier , identifier , (pointer_expression "&puStack_f0" & identifier) ))) ;) })) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar18 < (int)(iVar7 + ~uVar11))" ( (binary_expression "iVar18 < (int)(iVar7 + ~uVar11)" identifier < (cast_expression "(int)(iVar7 + ~uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 + ~uVar11)" ( (binary_expression "iVar7 + ~uVar11" identifier + (unary_expression "~uVar11" ~ identifier)) )))) )) ;) })) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }" if (parenthesized_expression "(iVar18 < (int)(iVar7 - uVar11))" ( (binary_expression "iVar18 < (int)(iVar7 - uVar11)" identifier < (cast_expression "(int)(iVar7 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 - uVar11)" ( (binary_expression "iVar7 - uVar11" identifier - identifier) )))) )) (compound_statement "{\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }" { (do_statement "do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));" do (compound_statement "{\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                }" { (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar3,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) ;) (if_statement "if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }" if (parenthesized_expression "((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar38,iVar18 + uVar11,&puStack_f0)" ( identifier , identifier , (binary_expression "iVar18 + uVar11" identifier + identifier) , (pointer_expression "&puStack_f0" & identifier) )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }" { (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier = (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" identifier . field_identifier) + identifier) , (field_expression "puStack_f0._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iVar21,iVar18,&puStack_f0)" ( identifier , identifier , identifier , (pointer_expression "&puStack_f0" & identifier) )))) ;) (if_statement "if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }" { (expression_statement "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);" (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iStack_118,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) ))) ;) })) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar18 < (int)(iVar7 - uVar11))" ( (binary_expression "iVar18 < (int)(iVar7 - uVar11)" identifier < (cast_expression "(int)(iVar7 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 - uVar11)" ( (binary_expression "iVar7 - uVar11" identifier - identifier) )))) )) ;) })) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }" if (parenthesized_expression "(iVar18 < iVar7)" ( (binary_expression "iVar18 < iVar7" identifier < identifier) )) (compound_statement "{\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }" { (do_statement "do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);" do (compound_statement "{\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                }" { (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar3,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) ;) (if_statement "if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }" if (parenthesized_expression "((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0))" ( (binary_expression "(iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iVar21,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }" { (expression_statement "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);" (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iStack_118,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) ))) ;) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar18 < iVar7)" ( (binary_expression "iVar18 < iVar7" identifier < identifier) )) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "iStack_118 = iStack_118 + 2;" (assignment_expression "iStack_118 = iStack_118 + 2" identifier = (binary_expression "iStack_118 + 2" identifier + number_literal)) ;) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) }) while (parenthesized_expression "(uStack_110 != uVar10)" ( (binary_expression "uStack_110 != uVar10" identifier != identifier) )) ;) })) (expression_statement "iStack_10c = iStack_10c + uVar9;" (assignment_expression "iStack_10c = iStack_10c + uVar9" identifier = (binary_expression "iStack_10c + uVar9" identifier + identifier)) ;) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) }) while (parenthesized_expression "(iStack_10c < iVar3)" ( (binary_expression "iStack_10c < iVar3" identifier < identifier) )) ;) })) (expression_statement "uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" identifier = identifier) ;) (expression_statement "uStack_110 = uVar9;" (assignment_expression "uStack_110 = uVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 < uVar11)" ( (binary_expression "uVar9 < uVar11" identifier < identifier) )) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar35 + 0x207a68)" * (pointer_expression "*(code **)(pcVar35 + 0x207a68)" * (cast_expression "(code **)(pcVar35 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207a68)" ( (binary_expression "pcVar35 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }" if (parenthesized_expression "(((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3))))" ( (binary_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar35 + 0x207a68)" * (pointer_expression "*(code **)(pcVar35 + 0x207a68)" * (cast_expression "(code **)(pcVar35 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207a68)" ( (binary_expression "pcVar35 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))" ( (parenthesized_expression "(iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3))" ( (comma_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar35 + 0x207a68)" * (pointer_expression "*(code **)(pcVar35 + 0x207a68)" * (cast_expression "(code **)(pcVar35 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207a68)" ( (binary_expression "pcVar35 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) , (binary_expression "iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (binary_expression "iVar3 == 4" identifier == number_literal) || (parenthesized_expression "(iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar35 + 0x207a68)" * (pointer_expression "*(code **)(pcVar35 + 0x207a68)" * (cast_expression "(code **)(pcVar35 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207a68)" ( (binary_expression "pcVar35 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }" { (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar3 = iVar3 + 0x3f;\n    }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (if_statement "if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1 < iVar3 >> 6)" ( (binary_expression "extraout_v1 < iVar3 >> 6" identifier < (binary_expression "iVar3 >> 6" identifier >> number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }" { (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_00 < 2;" (assignment_expression "bVar1 = extraout_v1_00 < 2" identifier = (binary_expression "extraout_v1_00 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }" { (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "bVar1 = iVar3 < 0x80;" (assignment_expression "bVar1 = iVar3 < 0x80" identifier = (binary_expression "iVar3 < 0x80" identifier < number_literal)) ;) }))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }" { (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar3 = iVar3 + 0x3f;\n      }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (if_statement "if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" if (parenthesized_expression "(extraout_v1_01 < iVar3 >> 6)" ( (binary_expression "extraout_v1_01 < iVar3 >> 6" identifier < (binary_expression "iVar3 >> 6" identifier >> number_literal)) )) (compound_statement "{\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }" { (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = extraout_v1_02;" (assignment_expression "iVar3 = extraout_v1_02" identifier = identifier) ;) }) (else_clause "else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" { (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar3 = iVar3 + 0x3f;\n        }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar3 = iVar3 >> 6;" (assignment_expression "iVar3 = iVar3 >> 6" identifier = (binary_expression "iVar3 >> 6" identifier >> number_literal)) ;) }))) })) (goto_statement "goto LAB_001a1e70;" goto statement_identifier ;) })) (expression_statement "uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);" (assignment_expression "uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }" if (parenthesized_expression "((int)((ulonglong)uVar40 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar40 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar40 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar40 >> 0x20)" ( (binary_expression "(ulonglong)uVar40 >> 0x20" (cast_expression "(ulonglong)uVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }" { (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x2076f0);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x2076f0)" identifier = (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }" if (parenthesized_expression "((uint)uVar40 < 2)" ( (binary_expression "(uint)uVar40 < 2" (cast_expression "(uint)uVar40" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }" { (expression_statement "uVar40 = (*pcVar36)(7);" (assignment_expression "uVar40 = (*pcVar36)(7)" identifier = (call_expression "(*pcVar36)(7)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;" if (parenthesized_expression "((int)((ulonglong)uVar40 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar40 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar40 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar40 >> 0x20)" ( (binary_expression "(ulonglong)uVar40 >> 0x20" (cast_expression "(ulonglong)uVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_001a1e58;" goto statement_identifier ;)) (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x2076f0);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x2076f0)" identifier = (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }" if (parenthesized_expression "((uint)uVar40 < 2)" ( (binary_expression "(uint)uVar40 < 2" (cast_expression "(uint)uVar40" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_001a1e70;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }" else (compound_statement "{\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }" { (labeled_statement "LAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);" statement_identifier : (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x2076f0);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x2076f0)" identifier = (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar40 = (*pcVar36)(7);" (assignment_expression "uVar40 = (*pcVar36)(7)" identifier = (call_expression "(*pcVar36)(7)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }" if (parenthesized_expression "(((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2))" ( (binary_expression "((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)" (parenthesized_expression "((int)((ulonglong)uVar40 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar40 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar40 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar40 >> 0x20)" ( (binary_expression "(ulonglong)uVar40 >> 0x20" (cast_expression "(ulonglong)uVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar40 < 2)" ( (binary_expression "(uint)uVar40 < 2" (cast_expression "(uint)uVar40" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }" { (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = extraout_v1_03;" (assignment_expression "iVar3 = extraout_v1_03" identifier = identifier) ;) }) (else_clause "else {\n    iVar3 = 2;\n  }" else (compound_statement "{\n    iVar3 = 2;\n  }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) }))) (labeled_statement "LAB_001a1e70:\n  puStack_ec = puVar2;" statement_identifier : (expression_statement "puStack_ec = puVar2;" (assignment_expression "puStack_ec = puVar2" identifier = identifier) ;)) (expression_statement "piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);" (assignment_expression "piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c)" identifier = (cast_expression "(int *)(*(int *)(pcVar35 + 0x207140) + 0x185c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar35 + 0x207140) + 0x185c)" ( (binary_expression "*(int *)(pcVar35 + 0x207140) + 0x185c" (pointer_expression "*(int *)(pcVar35 + 0x207140)" * (cast_expression "(int *)(pcVar35 + 0x207140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + 0x207140)" ( (binary_expression "pcVar35 + 0x207140" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puStack_f0 = puStack_ac;" (assignment_expression "puStack_f0 = puStack_ac" identifier = identifier) ;) (expression_statement "iStack_e8 = param_2;" (assignment_expression "iStack_e8 = param_2" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);" (call_expression "(**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x20774c))" ( (pointer_expression "**(code **)(pcVar35 + 0x20774c)" * (pointer_expression "*(code **)(pcVar35 + 0x20774c)" * (cast_expression "(code **)(pcVar35 + 0x20774c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x20774c)" ( (binary_expression "pcVar35 + 0x20774c" identifier + number_literal) ))))) )) (argument_list "(piVar17,&puStack_f0,iVar3,0)" ( identifier , (pointer_expression "&puStack_f0" & identifier) , identifier , number_literal ))) ;) (if_statement "if (iStack_e4 == *piVar8) {\n    return;\n  }" if (parenthesized_expression "(iStack_e4 == *piVar8)" ( (binary_expression "iStack_e4 == *piVar8" identifier == (pointer_expression "*piVar8" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcVar35 + 0x207618);" (assignment_expression "pcVar35 = *(code **)(pcVar35 + 0x207618)" identifier = (pointer_expression "*(code **)(pcVar35 + 0x207618)" * (cast_expression "(code **)(pcVar35 + 0x207618)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207618)" ( (binary_expression "pcVar35 + 0x207618" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar35)();" (call_expression "(*pcVar35)()" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar38 = *(int *)piVar17[7];" (assignment_expression "iVar38 = *(int *)piVar17[7]" identifier = (pointer_expression "*(int *)piVar17[7]" * (cast_expression "(int *)piVar17[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[7]" identifier [ number_literal ])))) ;) (expression_statement "iVar21 = piVar17[2];" (assignment_expression "iVar21 = piVar17[2]" identifier = (subscript_expression "piVar17[2]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2078b0))();" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2078b0))()" identifier = (call_expression "(**(code **)(pcVar35 + 0x2078b0))()" (parenthesized_expression "(**(code **)(pcVar35 + 0x2078b0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2078b0)" * (pointer_expression "*(code **)(pcVar35 + 0x2078b0)" * (cast_expression "(code **)(pcVar35 + 0x2078b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2078b0)" ( (binary_expression "pcVar35 + 0x2078b0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (**(code **)(pcVar35 + 0x2074ac))();" (assignment_expression "iVar4 = (**(code **)(pcVar35 + 0x2074ac))()" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ac))()" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ac))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ac)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ac)" * (cast_expression "(code **)(pcVar35 + 0x2074ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ac)" ( (binary_expression "pcVar35 + 0x2074ac" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar38 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 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 "iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;" (assignment_expression "iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38" identifier = (binary_expression "(iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38" (parenthesized_expression "(iVar38 + -1 + *(int *)(iVar21 + 0x1c))" ( (binary_expression "iVar38 + -1 + *(int *)(iVar21 + 0x1c)" (binary_expression "iVar38 + -1" identifier + number_literal) + (pointer_expression "*(int *)(iVar21 + 0x1c)" * (cast_expression "(int *)(iVar21 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) ))))) )) / identifier)) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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 "iVar18 = iVar7 / iVar3;" (assignment_expression "iVar18 = iVar7 / iVar3" identifier = (binary_expression "iVar7 / iVar3" identifier / identifier)) ;) (expression_statement "iVar7 = iVar7 % iVar3;" (assignment_expression "iVar7 = iVar7 % iVar3" identifier = (binary_expression "iVar7 % iVar3" identifier % identifier)) ;) (if_statement "if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar7)" ( (binary_expression "iVar4 < iVar7" identifier < identifier) )) (compound_statement "{\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }" { (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "iVar7 = iVar18 * iVar4 + iVar7;" (assignment_expression "iVar7 = iVar18 * iVar4 + iVar7" identifier = (binary_expression "iVar18 * iVar4 + iVar7" (binary_expression "iVar18 * iVar4" identifier * identifier) + identifier)) ;) (if_statement "if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }" if (parenthesized_expression "(iVar7 < iVar18 + iVar7)" ( (binary_expression "iVar7 < iVar18 + iVar7" identifier < (binary_expression "iVar18 + iVar7" identifier + identifier)) )) (compound_statement "{\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }" { (expression_statement "iVar28 = piVar17[6];" (assignment_expression "iVar28 = piVar17[6]" identifier = (subscript_expression "piVar17[6]" identifier [ number_literal ])) ;) (expression_statement "iStack_188 = iVar38 * iVar7;" (assignment_expression "iStack_188 = iVar38 * iVar7" identifier = (binary_expression "iVar38 * iVar7" identifier * identifier)) ;) (expression_statement "iVar3 = piVar17[5];" (assignment_expression "iVar3 = piVar17[5]" identifier = (subscript_expression "piVar17[5]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar17[4];" (assignment_expression "iVar4 = piVar17[4]" identifier = (subscript_expression "piVar17[4]" identifier [ number_literal ])) ;) (expression_statement "iVar30 = *(int *)(pcVar35 + 0x206890);" (assignment_expression "iVar30 = *(int *)(pcVar35 + 0x206890)" identifier = (pointer_expression "*(int *)(pcVar35 + 0x206890)" * (cast_expression "(int *)(pcVar35 + 0x206890)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + 0x206890)" ( (binary_expression "pcVar35 + 0x206890" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = piVar17[3];" (assignment_expression "iVar39 = piVar17[3]" identifier = (subscript_expression "piVar17[3]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));" do (compound_statement "{\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    }" { (if_statement "if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }" if (parenthesized_expression "(piVar17[9] != 0)" ( (binary_expression "piVar17[9] != 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }" { (expression_statement "iVar13 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar21 + 0x18)" identifier = (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }" { (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (expression_statement "iVar25 = *(int *)piVar17[8];" (assignment_expression "iVar25 = *(int *)piVar17[8]" identifier = (pointer_expression "*(int *)piVar17[8]" * (cast_expression "(int *)piVar17[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[8]" identifier [ number_literal ])))) ;) (expression_statement "iVar26 = iVar25;" (assignment_expression "iVar26 = iVar25" identifier = identifier) ;) (do_statement "do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);" do (compound_statement "{\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          }" { (if_statement "if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }" if (parenthesized_expression "(iVar13 < iVar25)" ( (binary_expression "iVar13 < iVar25" identifier < identifier) )) (compound_statement "{\n              iVar26 = iVar13 - iVar27;\n            }" { (expression_statement "iVar26 = iVar13 - iVar27;" (assignment_expression "iVar26 = iVar13 - iVar27" identifier = (binary_expression "iVar13 - iVar27" identifier - identifier)) ;) })) (expression_statement "iVar13 = *(int *)piVar17[7];" (assignment_expression "iVar13 = *(int *)piVar17[7]" identifier = (pointer_expression "*(int *)piVar17[7]" * (cast_expression "(int *)piVar17[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[7]" identifier [ number_literal ])))) ;) (if_statement "if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }" if (parenthesized_expression "(*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188)" ( (binary_expression "*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188" (pointer_expression "*(int *)(iVar21 + 0x1c)" * (cast_expression "(int *)(iVar21 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) )))) < (binary_expression "iVar13 + iStack_188" identifier + identifier)) )) (compound_statement "{\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }" { (expression_statement "iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;" (assignment_expression "iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188" identifier = (binary_expression "*(int *)(iVar21 + 0x1c) - iStack_188" (pointer_expression "*(int *)(iVar21 + 0x1c)" * (cast_expression "(int *)(iVar21 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) )))) - identifier)) ;) })) (expression_statement "iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;" (assignment_expression "iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207600))" ( (pointer_expression "**(code **)(pcVar35 + 0x207600)" * (pointer_expression "*(code **)(pcVar35 + 0x207600)" * (cast_expression "(code **)(pcVar35 + 0x207600)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207600)" ( (binary_expression "pcVar35 + 0x207600" identifier + number_literal) ))))) )) (argument_list "(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar17[9] = 0;\n              break;\n            }" { (expression_statement "piVar17[9] = 0;" (assignment_expression "piVar17[9] = 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }" if (parenthesized_expression "(0 < iVar26)" ( (binary_expression "0 < iVar26" number_literal < identifier) )) (compound_statement "{\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }" { (expression_statement "iVar29 = iVar27;" (assignment_expression "iVar29 = iVar27" identifier = identifier) ;) (do_statement "do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);" do (compound_statement "{\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              }" { (if_statement "if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }" if (parenthesized_expression "(piVar17[9] != 0)" ( (binary_expression "piVar17[9] != 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }" { (expression_statement "iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);" (assignment_expression "iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39)" identifier = (call_expression "(**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39)" (parenthesized_expression "(**(code **)(pcVar35 + 0x206bf4))" ( (pointer_expression "**(code **)(pcVar35 + 0x206bf4)" * (pointer_expression "*(code **)(pcVar35 + 0x206bf4)" * (cast_expression "(code **)(pcVar35 + 0x206bf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x206bf4)" ( (binary_expression "pcVar35 + 0x206bf4" identifier + number_literal) ))))) )) (argument_list "(iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39)" ( identifier , (binary_expression "(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13" (parenthesized_expression "(*(int *)(iVar28 + 0x18) - iStack_188)" ( (binary_expression "*(int *)(iVar28 + 0x18) - iStack_188" (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) , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }" { (expression_statement "iVar31 = *(int *)(iVar21 + 0x2c0);" (assignment_expression "iVar31 = *(int *)(iVar21 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar21 + 0x2c0)" * (cast_expression "(int *)(iVar21 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x2c0)" ( (binary_expression "iVar21 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);" (assignment_expression "puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25)" identifier = (cast_expression "(undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25)" ( (binary_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25" (binary_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4" (binary_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31" (parenthesized_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29)" ( (binary_expression "((iVar13 + -1) * iVar26 - iVar27) + iVar29" (parenthesized_expression "((iVar13 + -1) * iVar26 - iVar27)" ( (binary_expression "(iVar13 + -1) * iVar26 - iVar27" (binary_expression "(iVar13 + -1) * iVar26" (parenthesized_expression "(iVar13 + -1)" ( (binary_expression "iVar13 + -1" identifier + number_literal) )) * identifier) - identifier) )) + identifier) )) * identifier) * number_literal) + identifier) )))) ;) (if_statement "if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }" { (expression_statement "iVar33 = *(int *)(iVar28 + 0x2c0);" (assignment_expression "iVar33 = *(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) ))))) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);" do (compound_statement "{\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      }" { (if_statement "if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }" if (parenthesized_expression "(0 < iVar31)" ( (binary_expression "0 < iVar31" number_literal < identifier) )) (compound_statement "{\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }" { (expression_statement "piVar20 = *(int **)(iVar21 + 0x2d0);" (assignment_expression "piVar20 = *(int **)(iVar21 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar21 + 0x2d0)" * (cast_expression "(int **)(iVar21 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x2d0)" ( (binary_expression "iVar21 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)(iVar28 + 0x2d0);" (assignment_expression "iVar22 = *(int *)(iVar28 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar28 + 0x2d0)" * (cast_expression "(int *)(iVar28 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x2d0)" ( (binary_expression "iVar28 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = piVar20;" (assignment_expression "piVar8 = piVar20" identifier = identifier) ;) (expression_statement "puVar19 = puVar23;" (assignment_expression "puVar19 = puVar23" identifier = identifier) ;) (do_statement "do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);" do (compound_statement "{\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          }" { (expression_statement "iVar14 = iVar22 + *piVar8 * 0xc;" (assignment_expression "iVar14 = iVar22 + *piVar8 * 0xc" identifier = (binary_expression "iVar22 + *piVar8 * 0xc" identifier + (binary_expression "*piVar8 * 0xc" (pointer_expression "*piVar8" * identifier) * number_literal))) ;) (if_statement "if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }" if (parenthesized_expression "((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0))" ( (binary_expression "(piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)" (parenthesized_expression "(piVar20[*piVar8 * 3 + 1] != 0)" ( (binary_expression "piVar20[*piVar8 * 3 + 1] != 0" (subscript_expression "piVar20[*piVar8 * 3 + 1]" identifier [ (binary_expression "*piVar8 * 3 + 1" (binary_expression "*piVar8 * 3" (pointer_expression "*piVar8" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar14 + 4) != 0)" ( (binary_expression "*(int *)(iVar14 + 4) != 0" (pointer_expression "*(int *)(iVar14 + 4)" * (cast_expression "(int *)(iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }" { (expression_statement "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;" (assignment_expression "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19" (pointer_expression "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar14 + 8) * 4)" ( (binary_expression "iVar12 + *(int *)(iVar14 + 8) * 4" identifier + (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*puVar19" * identifier)) ;) })) (expression_statement "piVar8 = piVar8 + 3;" (assignment_expression "piVar8 = piVar8 + 3" identifier = (binary_expression "piVar8 + 3" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != piVar20 + iVar31 * 3)" ( (binary_expression "piVar8 != piVar20 + iVar31 * 3" identifier != (binary_expression "piVar20 + iVar31 * 3" identifier + (binary_expression "iVar31 * 3" identifier * number_literal))) )) ;) })) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);" (assignment_expression "puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4)" identifier = (cast_expression "(undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 - iVar26 * iVar31 * 4)" ( (binary_expression "(int)puVar23 - iVar26 * iVar31 * 4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (binary_expression "iVar26 * iVar31 * 4" (binary_expression "iVar26 * iVar31" identifier * identifier) * number_literal)) )))) ;) (expression_statement "iVar12 = iVar12 + iVar33 * 4;" (assignment_expression "iVar12 = iVar12 + iVar33 * 4" identifier = (binary_expression "iVar12 + iVar33 * 4" identifier + (binary_expression "iVar33 * 4" identifier * number_literal))) ;) }) while (parenthesized_expression "(iVar24 != iVar13)" ( (binary_expression "iVar24 != iVar13" identifier != identifier) )) ;) })) (expression_statement "iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);" (assignment_expression "iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39)" identifier = (call_expression "(**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39)" (parenthesized_expression "(**(code **)(pcVar35 + 0x20749c))" ( (pointer_expression "**(code **)(pcVar35 + 0x20749c)" * (pointer_expression "*(code **)(pcVar35 + 0x20749c)" * (cast_expression "(code **)(pcVar35 + 0x20749c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x20749c)" ( (binary_expression "pcVar35 + 0x20749c" identifier + number_literal) ))))) )) (argument_list "(iVar3,iVar39)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 != 0) goto LAB_001a2344;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001a2344;" goto statement_identifier ;)) })) (expression_statement "piVar17[9] = 0;" (assignment_expression "piVar17[9] = 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) = number_literal) ;) })) (labeled_statement "LAB_001a2344:\n                iVar29 = iVar29 + 1;" statement_identifier : (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar26 + iVar27 != iVar29)" ( (binary_expression "iVar26 + iVar27 != iVar29" (binary_expression "iVar26 + iVar27" identifier + identifier) != identifier) )) ;) })) (expression_statement "iVar13 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar21 + 0x18)" identifier = (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)piVar17[8];" (assignment_expression "iVar26 = *(int *)piVar17[8]" identifier = (pointer_expression "*(int *)piVar17[8]" * (cast_expression "(int *)piVar17[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[8]" identifier [ number_literal ])))) ;) (expression_statement "iVar27 = iVar27 + iVar26;" (assignment_expression "iVar27 = iVar27 + iVar26" identifier = (binary_expression "iVar27 + iVar26" identifier + identifier)) ;) (expression_statement "iVar25 = iVar26 + iVar27;" (assignment_expression "iVar25 = iVar26 + iVar27" identifier = (binary_expression "iVar26 + iVar27" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar27 < iVar13)" ( (binary_expression "iVar27 < iVar13" identifier < identifier) )) ;) })) (if_statement "if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar21 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar21 + 0x328) != 0" (pointer_expression "*(int *)(iVar21 + 0x328)" * (cast_expression "(int *)(iVar21 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x328)" ( (binary_expression "iVar21 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }" { (expression_statement "uVar15 = *(undefined4 *)(iVar21 + 0x1c);" (assignment_expression "uVar15 = *(undefined4 *)(iVar21 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar21 + 0x1c)" * (cast_expression "(undefined4 *)(iVar21 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)piVar17[7];" (assignment_expression "uVar9 = *(uint *)piVar17[7]" identifier = (pointer_expression "*(uint *)piVar17[7]" * (cast_expression "(uint *)piVar17[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[7]" identifier [ number_literal ])))) ;) (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x206c58);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x206c58)" identifier = (pointer_expression "*(code **)(pcVar35 + 0x206c58)" * (cast_expression "(code **)(pcVar35 + 0x206c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x206c58)" ( (binary_expression "pcVar35 + 0x206c58" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar9 + piVar17[1];" (assignment_expression "uVar11 = uVar9 + piVar17[1]" identifier = (binary_expression "uVar9 + piVar17[1]" identifier + (subscript_expression "piVar17[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar17[1] = uVar11;" (assignment_expression "piVar17[1] = uVar11" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar13 = (uint)(uVar11 < uVar9) + *piVar17;" (assignment_expression "iVar13 = (uint)(uVar11 < uVar9) + *piVar17" identifier = (binary_expression "(uint)(uVar11 < uVar9) + *piVar17" (call_expression "(uint)(uVar11 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar9)" ( (binary_expression "uVar11 < uVar9" identifier < identifier) ))) + (pointer_expression "*piVar17" * identifier))) ;) (expression_statement "*piVar17 = iVar13;" (assignment_expression "*piVar17 = iVar13" (pointer_expression "*piVar17" * identifier) = identifier) ;) (expression_statement "iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);" (assignment_expression "iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15)" identifier = (call_expression "(*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15)" ( identifier , (binary_expression "iVar30 + -0x4820" identifier + number_literal) , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            piVar17[9] = 0;\n          }" { (expression_statement "piVar17[9] = 0;" (assignment_expression "piVar17[9] = 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) = number_literal) ;) })) })) })) (expression_statement "iStack_188 = iStack_188 + iVar38;" (assignment_expression "iStack_188 = iStack_188 + iVar38" identifier = (binary_expression "iStack_188 + iVar38" identifier + identifier)) ;) }) while (parenthesized_expression "(iStack_188 < iVar38 * (iVar18 + iVar7))" ( (binary_expression "iStack_188 < iVar38 * (iVar18 + iVar7)" identifier < (binary_expression "iVar38 * (iVar18 + iVar7)" identifier * (parenthesized_expression "(iVar18 + iVar7)" ( (binary_expression "iVar18 + iVar7" identifier + identifier) )))) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n/* DWARF original prototype: void RadonTransform._omp_fn.0(anon_struct_32_7_acf8c8cc * param_0) */\n\nvoid __thiscall RadonTransform__omp_fn_0(void *this)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  int *piVar15;\n  int in_a1;\n  int in_a2;\n  int iVar16;\n  undefined4 *puVar17;\n  ushort *in_a3;\n  int iVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar26;\n  int unaff_s6;\n  int iVar27;\n  ushort *unaff_s7;\n  int iVar28;\n  undefined *puVar29;\n  int iVar30;\n  ushort *puVar31;\n  code *pcVar32;\n  code *pcVar33;\n  double dVar34;\n  int iVar35;\n  int iVar36;\n  undefined8 uVar37;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  void *pvStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  void *pvStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  undefined4 local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar31 = *(ushort **)((int)this + 8);\n  piVar15 = (int *)this;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar35 = *(int *)(puVar31 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar31 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar35 = iVar35 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar35 * iVar4 + iVar3;\n  iVar35 = iVar35 + iVar3;\n  if (iVar3 < iVar35) {\n    piVar5 = *(int **)((int)this + 0x14);\n    unaff_s5 = 8;\n                    /* WARNING: Load size is inaccurate */\n    dVar34 = *this;\n    unaff_s4 = &local_36;\n    piVar6 = *(int **)((int)this + 0x10);\n    uVar7 = *(undefined4 *)((int)this + 0xc);\n    do {\n      while (*(int *)((int)this + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar35 == iVar3) goto LAB_001a17a4;\n      }\n      in_a1 = 0;\n      in_a3 = *(ushort **)(puVar31 + 0xc);\n      local_58 = 1;\n      piVar15 = piVar6;\n      in_a2 = iVar3;\n      local_54 = uVar7;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        in_a1 = *(int *)(puVar31 + 0xc);\n        iVar4 = in_a1 + 7;\n        if (iVar4 < 0) {\n          iVar4 = in_a1 + 0xe;\n        }\n        iVar4 = iVar4 >> 3;\n        if (0 < in_a1) {\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(undefined4 *)((int)this + 0x1c) = 0;\n    } while (iVar35 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar32 = RadonProjection__omp_fn_2;\n  puVar29 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar29 + 0x20f054;\n  piStack_9c = *(int **)(puVar29 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar23 = piVar15[2];\n  iStack_a0 = piVar15[1];\n  iVar27 = *piVar15;\n  iVar4 = iVar23;\n  iStack_90 = iVar35;\n  iStack_88 = iVar3;\n  pvStack_84 = this;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar31;\n  pcStack_6c = pcVar32;\n  iVar3 = (**(code **)(puVar29 + 0x2076dc))();\n  iVar8 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar16 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar8 == 0) {\n    trap(7);\n  }\n  iVar36 = iVar3 / iVar8;\n  iVar3 = iVar3 % iVar8;\n  if (iVar16 < iVar3) {\n    iVar36 = iVar36 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar36 * iVar16 + iVar3;\n  iVar36 = iVar36 + iVar3;\n  if (iVar3 < iVar36) {\n    unaff_s7 = &uStack_98;\n    puVar31 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar27 * iVar3 + 0x3fffffff);\n    do {\n      iVar35 = 0;\n      this = (void *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1) {\n        while( true ) {\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar23;\n      iVar8 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar8 = (int)unaff_s4 + iVar8;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar27);\n      *(void **)(iStack_a0 + iVar8 * 4) = this;\n    } while (iVar36 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar32 = *(code **)(puStack_a8 + -0x784c);\n  pcVar33 = RadonProjection;\n  (*pcVar32)();\n  puVar2 = puStack_a8;\n  piVar15 = *(int **)(pcVar32 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar15;\n  iStack_e0 = iVar35;\n  iStack_dc = iVar23;\n  iStack_d8 = iVar3;\n  pvStack_d4 = this;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar36;\n  iStack_c8 = iVar27;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar31;\n  pcStack_bc = pcVar33;\n  puStack_ac = in_a3;\n  uVar9 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n  iVar3 = in_a1;\n  if (1 < uVar9) {\n    do {\n      in_a1 = in_a2;\n      in_a2 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      iVar3 = in_a1;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar32 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar32 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar37 = (**(code **)(pcVar32 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar37 >> 0x20) == 0) {\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n    if ((uint)uVar37 < 2) {\n      uVar37 = (*pcVar33)(7);\n      if ((int)((ulonglong)uVar37 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n      if ((uint)uVar37 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n  }\n  uVar37 = (*pcVar33)(7);\n  if (((int)((ulonglong)uVar37 >> 0x20) == 0) && ((uint)uVar37 < 2)) {\n    (**(code **)(pcVar32 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar5 = (int *)(*(int *)(pcVar32 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = in_a1;\n  (**(code **)(pcVar32 + 0x20774c))(piVar5,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar15) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x207618);\n  (*pcVar32)();\n  iVar35 = *(int *)piVar5[7];\n  iVar8 = piVar5[2];\n  iVar3 = (**(code **)(pcVar32 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar32 + 0x2074ac))();\n  if (iVar35 == 0) {\n    trap(7);\n  }\n  iVar16 = (iVar35 + -1 + *(int *)(iVar8 + 0x1c)) / iVar35;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar23 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar23 = iVar23 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar23 * iVar4 + iVar16;\n  if (iVar16 < iVar23 + iVar16) {\n    iVar25 = piVar5[6];\n    iStack_188 = iVar35 * iVar16;\n    iVar3 = piVar5[5];\n    iVar4 = piVar5[4];\n    iVar27 = *(int *)(pcVar32 + 0x206890);\n    iVar36 = piVar5[3];\n    do {\n      if (piVar5[9] != 0) {\n        iVar13 = *(int *)(iVar8 + 0x18);\n        if (0 < iVar13) {\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }\n        if (*(int *)(iVar8 + 0x328) != 0) {\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar35;\n    } while (iStack_188 < iVar35 * (iVar23 + iVar16));\n  }\n  return;\n}\n\n" comment comment comment comment comment (function_definition "void __thiscall RadonTransform__omp_fn_0(void *this)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  int *piVar15;\n  int in_a1;\n  int in_a2;\n  int iVar16;\n  undefined4 *puVar17;\n  ushort *in_a3;\n  int iVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar26;\n  int unaff_s6;\n  int iVar27;\n  ushort *unaff_s7;\n  int iVar28;\n  undefined *puVar29;\n  int iVar30;\n  ushort *puVar31;\n  code *pcVar32;\n  code *pcVar33;\n  double dVar34;\n  int iVar35;\n  int iVar36;\n  undefined8 uVar37;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  void *pvStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  void *pvStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  undefined4 local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar31 = *(ushort **)((int)this + 8);\n  piVar15 = (int *)this;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar35 = *(int *)(puVar31 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar31 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar35 = iVar35 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar35 * iVar4 + iVar3;\n  iVar35 = iVar35 + iVar3;\n  if (iVar3 < iVar35) {\n    piVar5 = *(int **)((int)this + 0x14);\n    unaff_s5 = 8;\n                    /* WARNING: Load size is inaccurate */\n    dVar34 = *this;\n    unaff_s4 = &local_36;\n    piVar6 = *(int **)((int)this + 0x10);\n    uVar7 = *(undefined4 *)((int)this + 0xc);\n    do {\n      while (*(int *)((int)this + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar35 == iVar3) goto LAB_001a17a4;\n      }\n      in_a1 = 0;\n      in_a3 = *(ushort **)(puVar31 + 0xc);\n      local_58 = 1;\n      piVar15 = piVar6;\n      in_a2 = iVar3;\n      local_54 = uVar7;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        in_a1 = *(int *)(puVar31 + 0xc);\n        iVar4 = in_a1 + 7;\n        if (iVar4 < 0) {\n          iVar4 = in_a1 + 0xe;\n        }\n        iVar4 = iVar4 >> 3;\n        if (0 < in_a1) {\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(undefined4 *)((int)this + 0x1c) = 0;\n    } while (iVar35 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar32 = RadonProjection__omp_fn_2;\n  puVar29 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar29 + 0x20f054;\n  piStack_9c = *(int **)(puVar29 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar23 = piVar15[2];\n  iStack_a0 = piVar15[1];\n  iVar27 = *piVar15;\n  iVar4 = iVar23;\n  iStack_90 = iVar35;\n  iStack_88 = iVar3;\n  pvStack_84 = this;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar31;\n  pcStack_6c = pcVar32;\n  iVar3 = (**(code **)(puVar29 + 0x2076dc))();\n  iVar8 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar16 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar8 == 0) {\n    trap(7);\n  }\n  iVar36 = iVar3 / iVar8;\n  iVar3 = iVar3 % iVar8;\n  if (iVar16 < iVar3) {\n    iVar36 = iVar36 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar36 * iVar16 + iVar3;\n  iVar36 = iVar36 + iVar3;\n  if (iVar3 < iVar36) {\n    unaff_s7 = &uStack_98;\n    puVar31 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar27 * iVar3 + 0x3fffffff);\n    do {\n      iVar35 = 0;\n      this = (void *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1) {\n        while( true ) {\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar23;\n      iVar8 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar8 = (int)unaff_s4 + iVar8;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar27);\n      *(void **)(iStack_a0 + iVar8 * 4) = this;\n    } while (iVar36 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar32 = *(code **)(puStack_a8 + -0x784c);\n  pcVar33 = RadonProjection;\n  (*pcVar32)();\n  puVar2 = puStack_a8;\n  piVar15 = *(int **)(pcVar32 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar15;\n  iStack_e0 = iVar35;\n  iStack_dc = iVar23;\n  iStack_d8 = iVar3;\n  pvStack_d4 = this;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar36;\n  iStack_c8 = iVar27;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar31;\n  pcStack_bc = pcVar33;\n  puStack_ac = in_a3;\n  uVar9 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n  iVar3 = in_a1;\n  if (1 < uVar9) {\n    do {\n      in_a1 = in_a2;\n      in_a2 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      iVar3 = in_a1;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar32 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar32 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar37 = (**(code **)(pcVar32 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar37 >> 0x20) == 0) {\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n    if ((uint)uVar37 < 2) {\n      uVar37 = (*pcVar33)(7);\n      if ((int)((ulonglong)uVar37 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n      if ((uint)uVar37 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n  }\n  uVar37 = (*pcVar33)(7);\n  if (((int)((ulonglong)uVar37 >> 0x20) == 0) && ((uint)uVar37 < 2)) {\n    (**(code **)(pcVar32 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar5 = (int *)(*(int *)(pcVar32 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = in_a1;\n  (**(code **)(pcVar32 + 0x20774c))(piVar5,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar15) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x207618);\n  (*pcVar32)();\n  iVar35 = *(int *)piVar5[7];\n  iVar8 = piVar5[2];\n  iVar3 = (**(code **)(pcVar32 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar32 + 0x2074ac))();\n  if (iVar35 == 0) {\n    trap(7);\n  }\n  iVar16 = (iVar35 + -1 + *(int *)(iVar8 + 0x1c)) / iVar35;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar23 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar23 = iVar23 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar23 * iVar4 + iVar16;\n  if (iVar16 < iVar23 + iVar16) {\n    iVar25 = piVar5[6];\n    iStack_188 = iVar35 * iVar16;\n    iVar3 = piVar5[5];\n    iVar4 = piVar5[4];\n    iVar27 = *(int *)(pcVar32 + 0x206890);\n    iVar36 = piVar5[3];\n    do {\n      if (piVar5[9] != 0) {\n        iVar13 = *(int *)(iVar8 + 0x18);\n        if (0 < iVar13) {\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }\n        if (*(int *)(iVar8 + 0x328) != 0) {\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar35;\n    } while (iStack_188 < iVar35 * (iVar23 + iVar16));\n  }\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (function_declarator "RadonTransform__omp_fn_0(void *this)" identifier (parameter_list "(void *this)" ( (parameter_declaration "void *this" primitive_type (pointer_declarator "*this" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  int *piVar5;\n  int *piVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  int *piVar15;\n  int in_a1;\n  int in_a2;\n  int iVar16;\n  undefined4 *puVar17;\n  ushort *in_a3;\n  int iVar18;\n  undefined4 *puVar19;\n  int iVar20;\n  int iVar21;\n  int iVar22;\n  int iVar23;\n  int iVar24;\n  int iVar25;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar26;\n  int unaff_s6;\n  int iVar27;\n  ushort *unaff_s7;\n  int iVar28;\n  undefined *puVar29;\n  int iVar30;\n  ushort *puVar31;\n  code *pcVar32;\n  code *pcVar33;\n  double dVar34;\n  int iVar35;\n  int iVar36;\n  undefined8 uVar37;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  void *pvStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  void *pvStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  undefined4 local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar31 = *(ushort **)((int)this + 8);\n  piVar15 = (int *)this;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar35 = *(int *)(puVar31 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar31 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar35 = iVar35 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar35 * iVar4 + iVar3;\n  iVar35 = iVar35 + iVar3;\n  if (iVar3 < iVar35) {\n    piVar5 = *(int **)((int)this + 0x14);\n    unaff_s5 = 8;\n                    /* WARNING: Load size is inaccurate */\n    dVar34 = *this;\n    unaff_s4 = &local_36;\n    piVar6 = *(int **)((int)this + 0x10);\n    uVar7 = *(undefined4 *)((int)this + 0xc);\n    do {\n      while (*(int *)((int)this + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar35 == iVar3) goto LAB_001a17a4;\n      }\n      in_a1 = 0;\n      in_a3 = *(ushort **)(puVar31 + 0xc);\n      local_58 = 1;\n      piVar15 = piVar6;\n      in_a2 = iVar3;\n      local_54 = uVar7;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        in_a1 = *(int *)(puVar31 + 0xc);\n        iVar4 = in_a1 + 7;\n        if (iVar4 < 0) {\n          iVar4 = in_a1 + 0xe;\n        }\n        iVar4 = iVar4 >> 3;\n        if (0 < in_a1) {\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(undefined4 *)((int)this + 0x1c) = 0;\n    } while (iVar35 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar32 = RadonProjection__omp_fn_2;\n  puVar29 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar29 + 0x20f054;\n  piStack_9c = *(int **)(puVar29 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar23 = piVar15[2];\n  iStack_a0 = piVar15[1];\n  iVar27 = *piVar15;\n  iVar4 = iVar23;\n  iStack_90 = iVar35;\n  iStack_88 = iVar3;\n  pvStack_84 = this;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar31;\n  pcStack_6c = pcVar32;\n  iVar3 = (**(code **)(puVar29 + 0x2076dc))();\n  iVar8 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar16 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar8 == 0) {\n    trap(7);\n  }\n  iVar36 = iVar3 / iVar8;\n  iVar3 = iVar3 % iVar8;\n  if (iVar16 < iVar3) {\n    iVar36 = iVar36 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar36 * iVar16 + iVar3;\n  iVar36 = iVar36 + iVar3;\n  if (iVar3 < iVar36) {\n    unaff_s7 = &uStack_98;\n    puVar31 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar27 * iVar3 + 0x3fffffff);\n    do {\n      iVar35 = 0;\n      this = (void *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1) {\n        while( true ) {\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar23;\n      iVar8 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar8 = (int)unaff_s4 + iVar8;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar27);\n      *(void **)(iStack_a0 + iVar8 * 4) = this;\n    } while (iVar36 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar32 = *(code **)(puStack_a8 + -0x784c);\n  pcVar33 = RadonProjection;\n  (*pcVar32)();\n  puVar2 = puStack_a8;\n  piVar15 = *(int **)(pcVar32 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar15;\n  iStack_e0 = iVar35;\n  iStack_dc = iVar23;\n  iStack_d8 = iVar3;\n  pvStack_d4 = this;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar36;\n  iStack_c8 = iVar27;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar31;\n  pcStack_bc = pcVar33;\n  puStack_ac = in_a3;\n  uVar9 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n  iVar3 = in_a1;\n  if (1 < uVar9) {\n    do {\n      in_a1 = in_a2;\n      in_a2 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      iVar3 = in_a1;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar32 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar32 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar37 = (**(code **)(pcVar32 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar37 >> 0x20) == 0) {\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n    if ((uint)uVar37 < 2) {\n      uVar37 = (*pcVar33)(7);\n      if ((int)((ulonglong)uVar37 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n      if ((uint)uVar37 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n  }\n  uVar37 = (*pcVar33)(7);\n  if (((int)((ulonglong)uVar37 >> 0x20) == 0) && ((uint)uVar37 < 2)) {\n    (**(code **)(pcVar32 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar5 = (int *)(*(int *)(pcVar32 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = in_a1;\n  (**(code **)(pcVar32 + 0x20774c))(piVar5,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar15) {\n    return;\n  }\n  pcVar32 = *(code **)(pcVar32 + 0x207618);\n  (*pcVar32)();\n  iVar35 = *(int *)piVar5[7];\n  iVar8 = piVar5[2];\n  iVar3 = (**(code **)(pcVar32 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar32 + 0x2074ac))();\n  if (iVar35 == 0) {\n    trap(7);\n  }\n  iVar16 = (iVar35 + -1 + *(int *)(iVar8 + 0x1c)) / iVar35;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar23 = iVar16 / iVar3;\n  iVar16 = iVar16 % iVar3;\n  if (iVar4 < iVar16) {\n    iVar23 = iVar23 + 1;\n    iVar16 = 0;\n  }\n  iVar16 = iVar23 * iVar4 + iVar16;\n  if (iVar16 < iVar23 + iVar16) {\n    iVar25 = piVar5[6];\n    iStack_188 = iVar35 * iVar16;\n    iVar3 = piVar5[5];\n    iVar4 = piVar5[4];\n    iVar27 = *(int *)(pcVar32 + 0x206890);\n    iVar36 = piVar5[3];\n    do {\n      if (piVar5[9] != 0) {\n        iVar13 = *(int *)(iVar8 + 0x18);\n        if (0 < iVar13) {\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }\n        if (*(int *)(iVar8 + 0x328) != 0) {\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar35;\n    } while (iStack_188 < iVar35 * (iVar23 + iVar16));\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "int extraout_v1_03;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int in_a1;" primitive_type identifier ;) (declaration "int in_a2;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "ushort *in_a3;" type_identifier (pointer_declarator "*in_a3" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "ushort *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "undefined4 unaff_s5;" type_identifier identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int unaff_s6;" primitive_type identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "ushort *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "undefined *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "ushort *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "code *pcVar33;" type_identifier (pointer_declarator "*pcVar33" * identifier) ;) (declaration "double dVar34;" primitive_type identifier ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "undefined8 uVar37;" type_identifier identifier ;) (declaration "int iStack_188;" primitive_type identifier ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "uint uStack_110;" type_identifier identifier ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "short sStack_f2;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "undefined *puStack_ec;" type_identifier (pointer_declarator "*puStack_ec" * identifier) ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "void *pvStack_d4;" primitive_type (pointer_declarator "*pvStack_d4" * identifier) ;) (declaration "ushort *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "ushort *puStack_c4;" type_identifier (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "ushort *puStack_c0;" type_identifier (pointer_declarator "*puStack_c0" * identifier) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "ushort *puStack_ac;" type_identifier (pointer_declarator "*puStack_ac" * identifier) ;) (declaration "undefined *puStack_a8;" type_identifier (pointer_declarator "*puStack_a8" * identifier) ;) (declaration "int iStack_a0;" primitive_type identifier ;) (declaration "int *piStack_9c;" primitive_type (pointer_declarator "*piStack_9c" * identifier) ;) (declaration "ushort uStack_98;" type_identifier identifier ;) (declaration "ushort uStack_96;" type_identifier identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "undefined *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "int iStack_88;" primitive_type identifier ;) (declaration "void *pvStack_84;" primitive_type (pointer_declarator "*pvStack_84" * identifier) ;) (declaration "ushort *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "undefined4 uStack_7c;" type_identifier identifier ;) (declaration "int iStack_78;" primitive_type identifier ;) (declaration "ushort *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "ushort *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "ushort local_36;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_34 = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_34 = *(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 "puVar31 = *(ushort **)((int)this + 8);" (assignment_expression "puVar31 = *(ushort **)((int)this + 8)" identifier = (pointer_expression "*(ushort **)((int)this + 8)" * (cast_expression "(ushort **)((int)this + 8)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 8)" ( (binary_expression "(int)this + 8" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar15 = (int *)this;" (assignment_expression "piVar15 = (int *)this" identifier = (cast_expression "(int *)this" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" * (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" * (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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 "iVar35 = *(int *)(puVar31 + 0xe) / iVar3;" (assignment_expression "iVar35 = *(int *)(puVar31 + 0xe) / iVar3" identifier = (binary_expression "*(int *)(puVar31 + 0xe) / iVar3" (pointer_expression "*(int *)(puVar31 + 0xe)" * (cast_expression "(int *)(puVar31 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar31 + 0xe)" ( (binary_expression "puVar31 + 0xe" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar3 = *(int *)(puVar31 + 0xe) % iVar3;" (assignment_expression "iVar3 = *(int *)(puVar31 + 0xe) % iVar3" identifier = (binary_expression "*(int *)(puVar31 + 0xe) % iVar3" (pointer_expression "*(int *)(puVar31 + 0xe)" * (cast_expression "(int *)(puVar31 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar31 + 0xe)" ( (binary_expression "puVar31 + 0xe" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar4 < iVar3) {\n    iVar35 = iVar35 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar3)" ( (binary_expression "iVar4 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar35 = iVar35 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = iVar35 * iVar4 + iVar3;" (assignment_expression "iVar3 = iVar35 * iVar4 + iVar3" identifier = (binary_expression "iVar35 * iVar4 + iVar3" (binary_expression "iVar35 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar35 = iVar35 + iVar3;" (assignment_expression "iVar35 = iVar35 + iVar3" identifier = (binary_expression "iVar35 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar35) {\n    piVar5 = *(int **)((int)this + 0x14);\n    unaff_s5 = 8;\n                    /* WARNING: Load size is inaccurate */\n    dVar34 = *this;\n    unaff_s4 = &local_36;\n    piVar6 = *(int **)((int)this + 0x10);\n    uVar7 = *(undefined4 *)((int)this + 0xc);\n    do {\n      while (*(int *)((int)this + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar35 == iVar3) goto LAB_001a17a4;\n      }\n      in_a1 = 0;\n      in_a3 = *(ushort **)(puVar31 + 0xc);\n      local_58 = 1;\n      piVar15 = piVar6;\n      in_a2 = iVar3;\n      local_54 = uVar7;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        in_a1 = *(int *)(puVar31 + 0xc);\n        iVar4 = in_a1 + 7;\n        if (iVar4 < 0) {\n          iVar4 = in_a1 + 0xe;\n        }\n        iVar4 = iVar4 >> 3;\n        if (0 < in_a1) {\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(undefined4 *)((int)this + 0x1c) = 0;\n    } while (iVar35 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar35)" ( (binary_expression "iVar3 < iVar35" identifier < identifier) )) (compound_statement "{\n    piVar5 = *(int **)((int)this + 0x14);\n    unaff_s5 = 8;\n                    /* WARNING: Load size is inaccurate */\n    dVar34 = *this;\n    unaff_s4 = &local_36;\n    piVar6 = *(int **)((int)this + 0x10);\n    uVar7 = *(undefined4 *)((int)this + 0xc);\n    do {\n      while (*(int *)((int)this + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar35 == iVar3) goto LAB_001a17a4;\n      }\n      in_a1 = 0;\n      in_a3 = *(ushort **)(puVar31 + 0xc);\n      local_58 = 1;\n      piVar15 = piVar6;\n      in_a2 = iVar3;\n      local_54 = uVar7;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        in_a1 = *(int *)(puVar31 + 0xc);\n        iVar4 = in_a1 + 7;\n        if (iVar4 < 0) {\n          iVar4 = in_a1 + 0xe;\n        }\n        iVar4 = iVar4 >> 3;\n        if (0 < in_a1) {\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(undefined4 *)((int)this + 0x1c) = 0;\n    } while (iVar35 != iVar3);\n  }" { (expression_statement "piVar5 = *(int **)((int)this + 0x14);" (assignment_expression "piVar5 = *(int **)((int)this + 0x14)" identifier = (pointer_expression "*(int **)((int)this + 0x14)" * (cast_expression "(int **)((int)this + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x14)" ( (binary_expression "(int)this + 0x14" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s5 = 8;" (assignment_expression "unaff_s5 = 8" identifier = number_literal) ;) comment (expression_statement "dVar34 = *this;" (assignment_expression "dVar34 = *this" identifier = (pointer_expression "*this" * identifier)) ;) (expression_statement "unaff_s4 = &local_36;" (assignment_expression "unaff_s4 = &local_36" identifier = (pointer_expression "&local_36" & identifier)) ;) (expression_statement "piVar6 = *(int **)((int)this + 0x10);" (assignment_expression "piVar6 = *(int **)((int)this + 0x10)" identifier = (pointer_expression "*(int **)((int)this + 0x10)" * (cast_expression "(int **)((int)this + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)this + 0x10)" ( (binary_expression "(int)this + 0x10" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)((int)this + 0xc);" (assignment_expression "uVar7 = *(undefined4 *)((int)this + 0xc)" identifier = (pointer_expression "*(undefined4 *)((int)this + 0xc)" * (cast_expression "(undefined4 *)((int)this + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0xc)" ( (binary_expression "(int)this + 0xc" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n      while (*(int *)((int)this + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar35 == iVar3) goto LAB_001a17a4;\n      }\n      in_a1 = 0;\n      in_a3 = *(ushort **)(puVar31 + 0xc);\n      local_58 = 1;\n      piVar15 = piVar6;\n      in_a2 = iVar3;\n      local_54 = uVar7;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        in_a1 = *(int *)(puVar31 + 0xc);\n        iVar4 = in_a1 + 7;\n        if (iVar4 < 0) {\n          iVar4 = in_a1 + 0xe;\n        }\n        iVar4 = iVar4 >> 3;\n        if (0 < in_a1) {\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(undefined4 *)((int)this + 0x1c) = 0;\n    } while (iVar35 != iVar3);" do (compound_statement "{\n      while (*(int *)((int)this + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar35 == iVar3) goto LAB_001a17a4;\n      }\n      in_a1 = 0;\n      in_a3 = *(ushort **)(puVar31 + 0xc);\n      local_58 = 1;\n      piVar15 = piVar6;\n      in_a2 = iVar3;\n      local_54 = uVar7;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        in_a1 = *(int *)(puVar31 + 0xc);\n        iVar4 = in_a1 + 7;\n        if (iVar4 < 0) {\n          iVar4 = in_a1 + 0xe;\n        }\n        iVar4 = iVar4 >> 3;\n        if (0 < in_a1) {\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(undefined4 *)((int)this + 0x1c) = 0;\n    }" { (while_statement "while (*(int *)((int)this + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar35 == iVar3) goto LAB_001a17a4;\n      }" while (parenthesized_expression "(*(int *)((int)this + 0x1c) == 0)" ( (binary_expression "*(int *)((int)this + 0x1c) == 0" (pointer_expression "*(int *)((int)this + 0x1c)" * (cast_expression "(int *)((int)this + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x1c)" ( (binary_expression "(int)this + 0x1c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar35 == iVar3) goto LAB_001a17a4;\n      }" { (labeled_statement "LAB_001a1798:\n        iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar35 == iVar3) goto LAB_001a17a4;" if (parenthesized_expression "(iVar35 == iVar3)" ( (binary_expression "iVar35 == iVar3" identifier == identifier) )) (goto_statement "goto LAB_001a17a4;" goto statement_identifier ;)) })) (expression_statement "in_a1 = 0;" (assignment_expression "in_a1 = 0" identifier = number_literal) ;) (expression_statement "in_a3 = *(ushort **)(puVar31 + 0xc);" (assignment_expression "in_a3 = *(ushort **)(puVar31 + 0xc)" identifier = (pointer_expression "*(ushort **)(puVar31 + 0xc)" * (cast_expression "(ushort **)(puVar31 + 0xc)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar31 + 0xc)" ( (binary_expression "puVar31 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (expression_statement "piVar15 = piVar6;" (assignment_expression "piVar15 = piVar6" identifier = identifier) ;) (expression_statement "in_a2 = iVar3;" (assignment_expression "in_a2 = iVar3" identifier = identifier) ;) (expression_statement "local_54 = uVar7;" (assignment_expression "local_54 = uVar7" identifier = identifier) ;) (expression_statement "unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();" (assignment_expression "unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)()" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)()" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)" ( (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003a965c" * (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003a965c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (unaff_s6 != 0) {\n        in_a1 = *(int *)(puVar31 + 0xc);\n        iVar4 = in_a1 + 7;\n        if (iVar4 < 0) {\n          iVar4 = in_a1 + 0xe;\n        }\n        iVar4 = iVar4 >> 3;\n        if (0 < in_a1) {\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }" if (parenthesized_expression "(unaff_s6 != 0)" ( (binary_expression "unaff_s6 != 0" identifier != number_literal) )) (compound_statement "{\n        in_a1 = *(int *)(puVar31 + 0xc);\n        iVar4 = in_a1 + 7;\n        if (iVar4 < 0) {\n          iVar4 = in_a1 + 0xe;\n        }\n        iVar4 = iVar4 >> 3;\n        if (0 < in_a1) {\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }" { (expression_statement "in_a1 = *(int *)(puVar31 + 0xc);" (assignment_expression "in_a1 = *(int *)(puVar31 + 0xc)" identifier = (pointer_expression "*(int *)(puVar31 + 0xc)" * (cast_expression "(int *)(puVar31 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar31 + 0xc)" ( (binary_expression "puVar31 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = in_a1 + 7;" (assignment_expression "iVar4 = in_a1 + 7" identifier = (binary_expression "in_a1 + 7" identifier + number_literal)) ;) (if_statement "if (iVar4 < 0) {\n          iVar4 = in_a1 + 0xe;\n        }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar4 = in_a1 + 0xe;\n        }" { (expression_statement "iVar4 = in_a1 + 0xe;" (assignment_expression "iVar4 = in_a1 + 0xe" identifier = (binary_expression "in_a1 + 0xe" identifier + number_literal)) ;) })) (expression_statement "iVar4 = iVar4 >> 3;" (assignment_expression "iVar4 = iVar4 >> 3" identifier = (binary_expression "iVar4 >> 3" identifier >> number_literal)) ;) (if_statement "if (0 < in_a1) {\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }" if (parenthesized_expression "(0 < in_a1)" ( (binary_expression "0 < in_a1" number_literal < identifier) )) (compound_statement "{\n          unaff_s7 = (ushort *)0x0;\n          piVar15 = (int *)0x0;\n          iVar8 = 0;\n          do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);\n          in_a2 = 0;\n          if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }" { (expression_statement "unaff_s7 = (ushort *)0x0;" (assignment_expression "unaff_s7 = (ushort *)0x0" identifier = (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar15 = (int *)0x0;" (assignment_expression "piVar15 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          } while ((int)unaff_s7 < in_a1);" do (compound_statement "{\n            iVar16 = *(int *)(puVar31 + 0x168);\n            piVar15 = (int *)((int)piVar15 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }\n            iVar8 = iVar8 + 1;\n            if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;\n          }" { (expression_statement "iVar16 = *(int *)(puVar31 + 0x168);" (assignment_expression "iVar16 = *(int *)(puVar31 + 0x168)" identifier = (pointer_expression "*(int *)(puVar31 + 0x168)" * (cast_expression "(int *)(puVar31 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar31 + 0x168)" ( (binary_expression "puVar31 + 0x168" identifier + number_literal) ))))) ;) (expression_statement "piVar15 = (int *)((int)piVar15 << 1);" (assignment_expression "piVar15 = (int *)((int)piVar15 << 1)" identifier = (cast_expression "(int *)((int)piVar15 << 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar15 << 1)" ( (binary_expression "(int)piVar15 << 1" (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if ((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)) {\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }" if (parenthesized_expression "((((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34))" ( (binary_expression "(((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)" (parenthesized_expression "(((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34))" ( (binary_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)" (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34)" ( (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4) < dVar34" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4)" * (cast_expression "(float *)(unaff_s6 + *(int *)(iVar16 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + *(int *)(iVar16 + 8) * 4)" ( (binary_expression "unaff_s6 + *(int *)(iVar16 + 8) * 4" identifier + (binary_expression "*(int *)(iVar16 + 8) * 4" (pointer_expression "*(int *)(iVar16 + 8)" * (cast_expression "(int *)(iVar16 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 8)" ( (binary_expression "iVar16 + 8" identifier + number_literal) )))) * number_literal)) ))))) < identifier) )) || (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34)" ( (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4) < dVar34" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4)" * (cast_expression "(float *)(unaff_s6 + *(int *)(iVar16 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + *(int *)(iVar16 + 0x14) * 4)" ( (binary_expression "unaff_s6 + *(int *)(iVar16 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar16 + 0x14) * 4" (pointer_expression "*(int *)(iVar16 + 0x14)" * (cast_expression "(int *)(iVar16 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x14)" ( (binary_expression "iVar16 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) < identifier) ))) )) || (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34)" ( (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4) < dVar34" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4)" * (cast_expression "(float *)(unaff_s6 + *(int *)(iVar16 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + *(int *)(iVar16 + 0x20) * 4)" ( (binary_expression "unaff_s6 + *(int *)(iVar16 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar16 + 0x20) * 4" (pointer_expression "*(int *)(iVar16 + 0x20)" * (cast_expression "(int *)(iVar16 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 + 0x20)" ( (binary_expression "iVar16 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) < identifier) ))) )) (compound_statement "{\n              piVar15 = (int *)((uint)piVar15 | 1);\n            }" { (expression_statement "piVar15 = (int *)((uint)piVar15 | 1);" (assignment_expression "piVar15 = (int *)((uint)piVar15 | 1)" identifier = (cast_expression "(int *)((uint)piVar15 | 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)piVar15 | 1)" ( (binary_expression "(uint)piVar15 | 1" (cast_expression "(uint)piVar15" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) )))) ;) })) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (iVar8 == 8) {\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }" if (parenthesized_expression "(iVar8 == 8)" ( (binary_expression "iVar8 == 8" identifier == number_literal) )) (compound_statement "{\n              iVar4 = iVar4 + -1;\n              local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);\n              in_a3 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);\n              piVar15 = (int *)0x0;\n              iVar8 = 0;\n              in_a1 = *(int *)(puVar31 + 0xc);\n            }" { (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2);" (assignment_expression "local_36 = *(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2)" identifier = (pointer_expression "*(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2)" * (cast_expression "(ushort *)(*(int *)((int)this + 0x18) + (int)piVar15 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)this + 0x18) + (int)piVar15 * 2)" ( (binary_expression "*(int *)((int)this + 0x18) + (int)piVar15 * 2" (pointer_expression "*(int *)((int)this + 0x18)" * (cast_expression "(int *)((int)this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x18)" ( (binary_expression "(int)this + 0x18" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (binary_expression "(int)piVar15 * 2" (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "in_a3 = unaff_s4;" (assignment_expression "in_a3 = unaff_s4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3);" (call_expression "(*(code *)PTR_SetMatrixElement_003a96a4)(piVar5,iVar4,iVar3)" (parenthesized_expression "(*(code *)PTR_SetMatrixElement_003a96a4)" ( (pointer_expression "*(code *)PTR_SetMatrixElement_003a96a4" * (cast_expression "(code *)PTR_SetMatrixElement_003a96a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar5,iVar4,iVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar15 = (int *)0x0;" (assignment_expression "piVar15 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "in_a1 = *(int *)(puVar31 + 0xc);" (assignment_expression "in_a1 = *(int *)(puVar31 + 0xc)" identifier = (pointer_expression "*(int *)(puVar31 + 0xc)" * (cast_expression "(int *)(puVar31 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar31 + 0xc)" ( (binary_expression "puVar31 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "unaff_s7 = (ushort *)((int)unaff_s7 + 1);" (assignment_expression "unaff_s7 = (ushort *)((int)unaff_s7 + 1)" identifier = (cast_expression "(ushort *)((int)unaff_s7 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7 + 1)" ( (binary_expression "(int)unaff_s7 + 1" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4;" (assignment_expression "unaff_s6 = unaff_s6 + *(int *)(puVar31 + 0x160) * 4" identifier = (binary_expression "unaff_s6 + *(int *)(puVar31 + 0x160) * 4" identifier + (binary_expression "*(int *)(puVar31 + 0x160) * 4" (pointer_expression "*(int *)(puVar31 + 0x160)" * (cast_expression "(int *)(puVar31 + 0x160)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar31 + 0x160)" ( (binary_expression "puVar31 + 0x160" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "((int)unaff_s7 < in_a1)" ( (binary_expression "(int)unaff_s7 < in_a1" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) (expression_statement "in_a2 = 0;" (assignment_expression "in_a2 = 0" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) {\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            in_a1 = iVar4 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);\n            piVar15 = piVar5;\n            in_a2 = iVar3;\n            in_a3 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }" { (expression_statement "in_a1 = iVar4 + -1;" (assignment_expression "in_a1 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2);" (assignment_expression "local_36 = *(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2)" identifier = (pointer_expression "*(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2)" * (cast_expression "(ushort *)\n                        (*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2)" ( (binary_expression "*(int *)((int)this + 0x18) + ((int)piVar15 << (8U - iVar8 & 0x1f)) * 2" (pointer_expression "*(int *)((int)this + 0x18)" * (cast_expression "(int *)((int)this + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x18)" ( (binary_expression "(int)this + 0x18" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (binary_expression "((int)piVar15 << (8U - iVar8 & 0x1f)) * 2" (parenthesized_expression "((int)piVar15 << (8U - iVar8 & 0x1f))" ( (binary_expression "(int)piVar15 << (8U - iVar8 & 0x1f)" (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier) << (parenthesized_expression "(8U - iVar8 & 0x1f)" ( (binary_expression "8U - iVar8 & 0x1f" (binary_expression "8U - iVar8" number_literal - identifier) & number_literal) ))) )) * number_literal)) ))))) ;) (expression_statement "piVar15 = piVar5;" (assignment_expression "piVar15 = piVar5" identifier = identifier) ;) (expression_statement "in_a2 = iVar3;" (assignment_expression "in_a2 = iVar3" identifier = identifier) ;) (expression_statement "in_a3 = unaff_s4;" (assignment_expression "in_a3 = unaff_s4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetMatrixElement_003a96a4)();" (call_expression "(*(code *)PTR_SetMatrixElement_003a96a4)()" (parenthesized_expression "(*(code *)PTR_SetMatrixElement_003a96a4)" ( (pointer_expression "*(code *)PTR_SetMatrixElement_003a96a4" * (cast_expression "(code *)PTR_SetMatrixElement_003a96a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) })) (goto_statement "goto LAB_001a1798;" goto statement_identifier ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)this + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)this + 0x1c) = 0" (pointer_expression "*(undefined4 *)((int)this + 0x1c)" * (cast_expression "(undefined4 *)((int)this + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)this + 0x1c)" ( (binary_expression "(int)this + 0x1c" (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) while (parenthesized_expression "(iVar35 != iVar3)" ( (binary_expression "iVar35 != iVar3" identifier != identifier) )) ;) })) (labeled_statement "LAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }" statement_identifier : (if_statement "if (local_34 == *(int *)puVar2) {\n    return;\n  }" if (parenthesized_expression "(local_34 == *(int *)puVar2)" ( (binary_expression "local_34 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar32 = RadonProjection__omp_fn_2;" (assignment_expression "pcVar32 = RadonProjection__omp_fn_2" identifier = identifier) ;) (expression_statement "puVar29 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar29 = PTR___stack_chk_fail_003a9064" identifier = 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 "puStack_a8 = puVar29 + 0x20f054;" (assignment_expression "puStack_a8 = puVar29 + 0x20f054" identifier = (binary_expression "puVar29 + 0x20f054" identifier + number_literal)) ;) (expression_statement "piStack_9c = *(int **)(puVar29 + 0x2079d4);" (assignment_expression "piStack_9c = *(int **)(puVar29 + 0x2079d4)" identifier = (pointer_expression "*(int **)(puVar29 + 0x2079d4)" * (cast_expression "(int **)(puVar29 + 0x2079d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x2079d4)" ( (binary_expression "puVar29 + 0x2079d4" identifier + number_literal) ))))) ;) (expression_statement "puStack_8c = puVar2;" (assignment_expression "puStack_8c = puVar2" identifier = identifier) ;) (expression_statement "iStack_94 = *piStack_9c;" (assignment_expression "iStack_94 = *piStack_9c" identifier = (pointer_expression "*piStack_9c" * identifier)) ;) (expression_statement "iVar23 = piVar15[2];" (assignment_expression "iVar23 = piVar15[2]" identifier = (subscript_expression "piVar15[2]" identifier [ number_literal ])) ;) (expression_statement "iStack_a0 = piVar15[1];" (assignment_expression "iStack_a0 = piVar15[1]" identifier = (subscript_expression "piVar15[1]" identifier [ number_literal ])) ;) (expression_statement "iVar27 = *piVar15;" (assignment_expression "iVar27 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "iVar4 = iVar23;" (assignment_expression "iVar4 = iVar23" identifier = identifier) ;) (expression_statement "iStack_90 = iVar35;" (assignment_expression "iStack_90 = iVar35" identifier = identifier) ;) (expression_statement "iStack_88 = iVar3;" (assignment_expression "iStack_88 = iVar3" identifier = identifier) ;) (expression_statement "pvStack_84 = this;" (assignment_expression "pvStack_84 = this" identifier = identifier) ;) (expression_statement "puStack_80 = unaff_s4;" (assignment_expression "puStack_80 = unaff_s4" identifier = identifier) ;) (expression_statement "uStack_7c = unaff_s5;" (assignment_expression "uStack_7c = unaff_s5" identifier = identifier) ;) (expression_statement "iStack_78 = unaff_s6;" (assignment_expression "iStack_78 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_74 = unaff_s7;" (assignment_expression "puStack_74 = unaff_s7" identifier = identifier) ;) (expression_statement "puStack_70 = puVar31;" (assignment_expression "puStack_70 = puVar31" identifier = identifier) ;) (expression_statement "pcStack_6c = pcVar32;" (assignment_expression "pcStack_6c = pcVar32" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(puVar29 + 0x2076dc))();" (assignment_expression "iVar3 = (**(code **)(puVar29 + 0x2076dc))()" identifier = (call_expression "(**(code **)(puVar29 + 0x2076dc))()" (parenthesized_expression "(**(code **)(puVar29 + 0x2076dc))" ( (pointer_expression "**(code **)(puVar29 + 0x2076dc)" * (pointer_expression "*(code **)(puVar29 + 0x2076dc)" * (cast_expression "(code **)(puVar29 + 0x2076dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar29 + 0x2076dc)" ( (binary_expression "puVar29 + 0x2076dc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar8 = (**(code **)(puStack_a8 + -0x6fa4))();" (assignment_expression "iVar8 = (**(code **)(puStack_a8 + -0x6fa4))()" identifier = (call_expression "(**(code **)(puStack_a8 + -0x6fa4))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x6fa4))" ( (pointer_expression "**(code **)(puStack_a8 + -0x6fa4)" * (pointer_expression "*(code **)(puStack_a8 + -0x6fa4)" * (cast_expression "(code **)(puStack_a8 + -0x6fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x6fa4)" ( (binary_expression "puStack_a8 + -0x6fa4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar16 = (**(code **)(puStack_a8 + -0x73a8))();" (assignment_expression "iVar16 = (**(code **)(puStack_a8 + -0x73a8))()" identifier = (call_expression "(**(code **)(puStack_a8 + -0x73a8))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x73a8))" ( (pointer_expression "**(code **)(puStack_a8 + -0x73a8)" * (pointer_expression "*(code **)(puStack_a8 + -0x73a8)" * (cast_expression "(code **)(puStack_a8 + -0x73a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x73a8)" ( (binary_expression "puStack_a8 + -0x73a8" 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 "iVar36 = iVar3 / iVar8;" (assignment_expression "iVar36 = iVar3 / iVar8" identifier = (binary_expression "iVar3 / iVar8" identifier / identifier)) ;) (expression_statement "iVar3 = iVar3 % iVar8;" (assignment_expression "iVar3 = iVar3 % iVar8" identifier = (binary_expression "iVar3 % iVar8" identifier % identifier)) ;) (if_statement "if (iVar16 < iVar3) {\n    iVar36 = iVar36 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar16 < iVar3)" ( (binary_expression "iVar16 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar36 = iVar36 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar36 = iVar36 + 1;" (assignment_expression "iVar36 = iVar36 + 1" identifier = (binary_expression "iVar36 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = iVar36 * iVar16 + iVar3;" (assignment_expression "iVar3 = iVar36 * iVar16 + iVar3" identifier = (binary_expression "iVar36 * iVar16 + iVar3" (binary_expression "iVar36 * iVar16" identifier * identifier) + identifier)) ;) (expression_statement "iVar36 = iVar36 + iVar3;" (assignment_expression "iVar36 = iVar36 + iVar3" identifier = (binary_expression "iVar36 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar36) {\n    unaff_s7 = &uStack_98;\n    puVar31 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar27 * iVar3 + 0x3fffffff);\n    do {\n      iVar35 = 0;\n      this = (void *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1) {\n        while( true ) {\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar23;\n      iVar8 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar8 = (int)unaff_s4 + iVar8;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar27);\n      *(void **)(iStack_a0 + iVar8 * 4) = this;\n    } while (iVar36 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar36)" ( (binary_expression "iVar3 < iVar36" identifier < identifier) )) (compound_statement "{\n    unaff_s7 = &uStack_98;\n    puVar31 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar27 * iVar3 + 0x3fffffff);\n    do {\n      iVar35 = 0;\n      this = (void *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1) {\n        while( true ) {\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar23;\n      iVar8 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar8 = (int)unaff_s4 + iVar8;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar27);\n      *(void **)(iStack_a0 + iVar8 * 4) = this;\n    } while (iVar36 != iVar3);\n  }" { (expression_statement "unaff_s7 = &uStack_98;" (assignment_expression "unaff_s7 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (expression_statement "puVar31 = &uStack_96;" (assignment_expression "puVar31 = &uStack_96" identifier = (pointer_expression "&uStack_96" & identifier)) ;) (expression_statement "unaff_s4 = (ushort *)(iVar27 * iVar3 + 0x3fffffff);" (assignment_expression "unaff_s4 = (ushort *)(iVar27 * iVar3 + 0x3fffffff)" identifier = (cast_expression "(ushort *)(iVar27 * iVar3 + 0x3fffffff)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 * iVar3 + 0x3fffffff)" ( (binary_expression "iVar27 * iVar3 + 0x3fffffff" (binary_expression "iVar27 * iVar3" identifier * identifier) + number_literal) )))) ;) (do_statement "do {\n      iVar35 = 0;\n      this = (void *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1) {\n        while( true ) {\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar23;\n      iVar8 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar8 = (int)unaff_s4 + iVar8;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar27);\n      *(void **)(iStack_a0 + iVar8 * 4) = this;\n    } while (iVar36 != iVar3);" do (compound_statement "{\n      iVar35 = 0;\n      this = (void *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1) {\n        while( true ) {\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar23;\n      iVar8 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar8 = (int)unaff_s4 + iVar8;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar27);\n      *(void **)(iStack_a0 + iVar8 * 4) = this;\n    }" { (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "this = (void *)0x0;" (assignment_expression "this = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1) {\n        while( true ) {\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }\n      }" while (parenthesized_expression "(iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1)" ( (comma_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23), iVar35 < iVar4 + -1" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7288))(iVar23)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7288))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7288)" * (pointer_expression "*(code **)(puStack_a8 + -0x7288)" * (cast_expression "(code **)(puStack_a8 + -0x7288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7288)" ( (binary_expression "puStack_a8 + -0x7288" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) , (binary_expression "iVar35 < iVar4 + -1" identifier < (binary_expression "iVar4 + -1" identifier + number_literal))) )) (compound_statement "{\n        while( true ) {\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }\n      }" { (while_statement "while( true ) {\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          in_a1 = iVar3;\n          in_a2 = iVar35;\n          in_a3 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);\n          iVar35 = iVar35 + 1;\n          if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;\n          this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);\n          if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;\n        }" { (expression_statement "in_a1 = iVar3;" (assignment_expression "in_a1 = iVar3" identifier = identifier) ;) (expression_statement "in_a2 = iVar35;" (assignment_expression "in_a2 = iVar35" identifier = identifier) ;) (expression_statement "in_a3 = unaff_s7;" (assignment_expression "in_a3 = unaff_s7" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23);" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7644))(iVar23)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7644))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7644)" * (pointer_expression "*(code **)(puStack_a8 + -0x7644)" * (cast_expression "(code **)(puStack_a8 + -0x7644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7644)" ( (binary_expression "puStack_a8 + -0x7644" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) ;) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (if_statement "if ((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)) break;" if (parenthesized_expression "((iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) ||\n             (in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0)" ( (comma_expression "in_a1 = iVar3, in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0" (assignment_expression "in_a1 = iVar3" identifier = identifier) , (comma_expression "in_a2 = iVar35, in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0" (assignment_expression "in_a2 = iVar35" identifier = identifier) , (comma_expression "in_a3 = puVar31,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0" (assignment_expression "in_a3 = puVar31" identifier = identifier) , (comma_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar23)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7644))(iVar23)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7644))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7644)" * (pointer_expression "*(code **)(puStack_a8 + -0x7644)" * (cast_expression "(code **)(puStack_a8 + -0x7644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7644)" ( (binary_expression "puStack_a8 + -0x7644" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal))))) ))) )) (break_statement "break;" break ;)) (expression_statement "this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this);" (assignment_expression "this = (void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this)" identifier = (cast_expression "(void *)(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this)" ( (binary_expression "((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)\n                         + (int)this" (binary_expression "((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)" (parenthesized_expression "((uint)uStack_98 - (uint)uStack_96)" ( (binary_expression "(uint)uStack_98 - (uint)uStack_96" (cast_expression "(uint)uStack_98" ( (type_descriptor "uint" type_identifier) ) identifier) - (cast_expression "(uint)uStack_96" ( (type_descriptor "uint" type_identifier) ) identifier)) )) * (parenthesized_expression "((uint)uStack_98 - (uint)uStack_96)" ( (binary_expression "(uint)uStack_98 - (uint)uStack_96" (cast_expression "(uint)uStack_98" ( (type_descriptor "uint" type_identifier) ) identifier) - (cast_expression "(uint)uStack_96" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) + (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23);" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar23)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7288))(iVar23)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7288))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7288)" * (pointer_expression "*(code **)(puStack_a8 + -0x7288)" * (cast_expression "(code **)(puStack_a8 + -0x7288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7288)" ( (binary_expression "puStack_a8 + -0x7288" identifier + number_literal) ))))) )) (argument_list "(iVar23)" ( identifier )))) ;) (if_statement "if (iVar4 + -1 <= iVar35) goto LAB_001a19d0;" if (parenthesized_expression "(iVar4 + -1 <= iVar35)" ( (binary_expression "iVar4 + -1 <= iVar35" (binary_expression "iVar4 + -1" identifier + number_literal) <= identifier) )) (goto_statement "goto LAB_001a19d0;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_001a19d0:\n      iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) (expression_statement "iVar4 = iVar23;" (assignment_expression "iVar4 = iVar23" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(puStack_a8 + -0x7978))();" (assignment_expression "iVar8 = (**(code **)(puStack_a8 + -0x7978))()" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7978))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7978))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7978)" * (pointer_expression "*(code **)(puStack_a8 + -0x7978)" * (cast_expression "(code **)(puStack_a8 + -0x7978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7978)" ( (binary_expression "puStack_a8 + -0x7978" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar8 = (int)unaff_s4 + iVar8;" (assignment_expression "iVar8 = (int)unaff_s4 + iVar8" identifier = (binary_expression "(int)unaff_s4 + iVar8" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "unaff_s4 = (ushort *)((int)unaff_s4 + iVar27);" (assignment_expression "unaff_s4 = (ushort *)((int)unaff_s4 + iVar27)" identifier = (cast_expression "(ushort *)((int)unaff_s4 + iVar27)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + iVar27)" ( (binary_expression "(int)unaff_s4 + iVar27" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*(void **)(iStack_a0 + iVar8 * 4) = this;" (assignment_expression "*(void **)(iStack_a0 + iVar8 * 4) = this" (pointer_expression "*(void **)(iStack_a0 + iVar8 * 4)" * (cast_expression "(void **)(iStack_a0 + iVar8 * 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_a0 + iVar8 * 4)" ( (binary_expression "iStack_a0 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) = identifier) ;) }) while (parenthesized_expression "(iVar36 != iVar3)" ( (binary_expression "iVar36 != iVar3" identifier != identifier) )) ;) })) (if_statement "if (iStack_94 == *piStack_9c) {\n    return;\n  }" if (parenthesized_expression "(iStack_94 == *piStack_9c)" ( (binary_expression "iStack_94 == *piStack_9c" identifier == (pointer_expression "*piStack_9c" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar32 = *(code **)(puStack_a8 + -0x784c);" (assignment_expression "pcVar32 = *(code **)(puStack_a8 + -0x784c)" identifier = (pointer_expression "*(code **)(puStack_a8 + -0x784c)" * (cast_expression "(code **)(puStack_a8 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x784c)" ( (binary_expression "puStack_a8 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar33 = RadonProjection;" (assignment_expression "pcVar33 = RadonProjection" identifier = identifier) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = puStack_a8;" (assignment_expression "puVar2 = puStack_a8" identifier = identifier) ;) (expression_statement "piVar15 = *(int **)(pcVar32 + 0x2077e4);" (assignment_expression "piVar15 = *(int **)(pcVar32 + 0x2077e4)" identifier = (pointer_expression "*(int **)(pcVar32 + 0x2077e4)" * (cast_expression "(int **)(pcVar32 + 0x2077e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2077e4)" ( (binary_expression "pcVar32 + 0x2077e4" identifier + number_literal) ))))) ;) (expression_statement "uStack_110 = 1;" (assignment_expression "uStack_110 = 1" identifier = number_literal) ;) (expression_statement "iStack_e4 = *piVar15;" (assignment_expression "iStack_e4 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "iStack_e0 = iVar35;" (assignment_expression "iStack_e0 = iVar35" identifier = identifier) ;) (expression_statement "iStack_dc = iVar23;" (assignment_expression "iStack_dc = iVar23" identifier = identifier) ;) (expression_statement "iStack_d8 = iVar3;" (assignment_expression "iStack_d8 = iVar3" identifier = identifier) ;) (expression_statement "pvStack_d4 = this;" (assignment_expression "pvStack_d4 = this" identifier = identifier) ;) (expression_statement "puStack_d0 = unaff_s4;" (assignment_expression "puStack_d0 = unaff_s4" identifier = identifier) ;) (expression_statement "iStack_cc = iVar36;" (assignment_expression "iStack_cc = iVar36" identifier = identifier) ;) (expression_statement "iStack_c8 = iVar27;" (assignment_expression "iStack_c8 = iVar27" identifier = identifier) ;) (expression_statement "puStack_c4 = unaff_s7;" (assignment_expression "puStack_c4 = unaff_s7" identifier = identifier) ;) (expression_statement "puStack_c0 = puVar31;" (assignment_expression "puStack_c0 = puVar31" identifier = identifier) ;) (expression_statement "pcStack_bc = pcVar33;" (assignment_expression "pcStack_bc = pcVar33" identifier = identifier) ;) (expression_statement "puStack_ac = in_a3;" (assignment_expression "puStack_ac = in_a3" identifier = identifier) ;) (expression_statement "uVar9 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);" (assignment_expression "uVar9 = (**(code **)(pcVar32 + 0x2074ec))(in_a1)" identifier = (call_expression "(**(code **)(pcVar32 + 0x2074ec))(in_a1)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar32 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar32 + 0x2074ec)" * (cast_expression "(code **)(pcVar32 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2074ec)" ( (binary_expression "pcVar32 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(in_a1)" ( identifier )))) ;) (expression_statement "iVar3 = in_a1;" (assignment_expression "iVar3 = in_a1" identifier = identifier) ;) (if_statement "if (1 < uVar9) {\n    do {\n      in_a1 = in_a2;\n      in_a2 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      iVar3 = in_a1;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }" if (parenthesized_expression "(1 < uVar9)" ( (binary_expression "1 < uVar9" number_literal < identifier) )) (compound_statement "{\n    do {\n      in_a1 = in_a2;\n      in_a2 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      iVar3 = in_a1;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }" { (do_statement "do {\n      in_a1 = in_a2;\n      in_a2 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      iVar3 = in_a1;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);" do (compound_statement "{\n      in_a1 = in_a2;\n      in_a2 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      iVar3 = in_a1;\n      uStack_110 = uVar9;\n    }" { (expression_statement "in_a1 = in_a2;" (assignment_expression "in_a1 = in_a2" identifier = identifier) ;) (expression_statement "in_a2 = iVar3;" (assignment_expression "in_a2 = iVar3" identifier = identifier) ;) (expression_statement "uVar9 = uStack_110 * 2;" (assignment_expression "uVar9 = uStack_110 * 2" identifier = (binary_expression "uStack_110 * 2" identifier * number_literal)) ;) (expression_statement "iStack_10c = 0;" (assignment_expression "iStack_10c = 0" identifier = number_literal) ;) (expression_statement "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x2074ec))(in_a2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar32 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar32 + 0x2074ec)" * (cast_expression "(code **)(pcVar32 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2074ec)" ( (binary_expression "pcVar32 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(in_a2)" ( identifier )))) ;) (if_statement "if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        } while (iStack_10c < iVar3);\n      }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        } while (iStack_10c < iVar3);\n      }" { (do_statement "do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        } while (iStack_10c < iVar3);" do (compound_statement "{\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);\n        }" { (if_statement "if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }" if (parenthesized_expression "(0 < (int)uStack_110)" ( (binary_expression "0 < (int)uStack_110" number_literal < (cast_expression "(int)uStack_110" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iStack_118 = iStack_10c + 1;\n            iVar35 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }" { (expression_statement "iStack_118 = iStack_10c + 1;" (assignment_expression "iStack_118 = iStack_10c + 1" identifier = (binary_expression "iStack_10c + 1" identifier + number_literal)) ;) (expression_statement "iVar35 = iStack_10c + uStack_110;" (assignment_expression "iVar35 = iStack_10c + uStack_110" identifier = (binary_expression "iStack_10c + uStack_110" identifier + identifier)) ;) (expression_statement "iVar3 = iStack_10c;" (assignment_expression "iVar3 = iStack_10c" identifier = identifier) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);" do (compound_statement "{\n              iVar23 = 0;\n              iVar8 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }\n              iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n              if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar35 = iVar35 + 1;\n              uVar11 = uVar10;\n            }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = iStack_118 + -1;" (assignment_expression "iVar8 = iStack_118 + -1" identifier = (binary_expression "iStack_118 + -1" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207bdc))(in_a2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar32 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar32 + 0x207bdc)" * (cast_expression "(code **)(pcVar32 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207bdc)" ( (binary_expression "pcVar32 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(in_a2)" ( identifier )))) ;) (if_statement "if (0 < (int)(iVar16 + ~uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }" if (parenthesized_expression "(0 < (int)(iVar16 + ~uVar11))" ( (binary_expression "0 < (int)(iVar16 + ~uVar11)" number_literal < (cast_expression "(int)(iVar16 + ~uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar16 + ~uVar11)" ( (binary_expression "iVar16 + ~uVar11" identifier + (unary_expression "~uVar11" ~ identifier)) )))) )) (compound_statement "{\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));\n              }" { (do_statement "do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 + ~uVar11));" do (compound_statement "{\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                }" { (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207820))" ( (pointer_expression "**(code **)(pcVar32 + 0x207820)" * (pointer_expression "*(code **)(pcVar32 + 0x207820)" * (cast_expression "(code **)(pcVar32 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207820)" ( (binary_expression "pcVar32 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(in_a2,iVar3,iVar23,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) ;) (if_statement "if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }" if (parenthesized_expression "((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0))" ( (binary_expression "(iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)" (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0)" ( (comma_expression "iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0), iVar16 != 0" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,uVar11 + iVar23,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207820))" ( (pointer_expression "**(code **)(pcVar32 + 0x207820)" * (pointer_expression "*(code **)(pcVar32 + 0x207820)" * (cast_expression "(code **)(pcVar32 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207820)" ( (binary_expression "pcVar32 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(in_a2,iVar35,uVar11 + iVar23,&puStack_f0)" ( identifier , identifier , (binary_expression "uVar11 + iVar23" identifier + identifier) , (pointer_expression "&puStack_f0" & identifier) )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }\n                  }" { (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier = (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" identifier . field_identifier) + identifier) , (field_expression "puStack_f0._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar32 + 0x207c58)" * (pointer_expression "*(code **)(pcVar32 + 0x207c58)" * (cast_expression "(code **)(pcVar32 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207c58)" ( (binary_expression "pcVar32 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(in_a1,iVar8,iVar23,&puStack_f0)" ( identifier , identifier , identifier , (pointer_expression "&puStack_f0" & identifier) )))) ;) (if_statement "if ((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }" if (parenthesized_expression "((iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0))" ( (binary_expression "(iVar16 != 0) &&\n                       (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0)" (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0)" ( (comma_expression "iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0), iVar16 != 0" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207820))\n                                           (in_a2,iVar35,uVar10 + iVar23,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207820))" ( (pointer_expression "**(code **)(pcVar32 + 0x207820)" * (pointer_expression "*(code **)(pcVar32 + 0x207820)" * (cast_expression "(code **)(pcVar32 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207820)" ( (binary_expression "pcVar32 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(in_a2,iVar35,uVar10 + iVar23,&puStack_f0)" ( identifier , identifier , (binary_expression "uVar10 + iVar23" identifier + identifier) , (pointer_expression "&puStack_f0" & identifier) )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);\n                    }" { (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier = (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" identifier . field_identifier) + identifier) , (field_expression "puStack_f0._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "(**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0);" (call_expression "(**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar32 + 0x207c58)" * (pointer_expression "*(code **)(pcVar32 + 0x207c58)" * (cast_expression "(code **)(pcVar32 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207c58)" ( (binary_expression "pcVar32 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(in_a1,iStack_118,iVar23,&puStack_f0)" ( identifier , identifier , identifier , (pointer_expression "&puStack_f0" & identifier) ))) ;) })) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207bdc))(in_a2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar32 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar32 + 0x207bdc)" * (cast_expression "(code **)(pcVar32 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207bdc)" ( (binary_expression "pcVar32 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(in_a2)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar23 < (int)(iVar16 + ~uVar11))" ( (binary_expression "iVar23 < (int)(iVar16 + ~uVar11)" identifier < (cast_expression "(int)(iVar16 + ~uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar16 + ~uVar11)" ( (binary_expression "iVar16 + ~uVar11" identifier + (unary_expression "~uVar11" ~ identifier)) )))) )) ;) })) (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207bdc))(in_a2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar32 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar32 + 0x207bdc)" * (cast_expression "(code **)(pcVar32 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207bdc)" ( (binary_expression "pcVar32 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(in_a2)" ( identifier )))) ;) (if_statement "if (iVar23 < (int)(iVar16 - uVar11)) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }" if (parenthesized_expression "(iVar23 < (int)(iVar16 - uVar11))" ( (binary_expression "iVar23 < (int)(iVar16 - uVar11)" identifier < (cast_expression "(int)(iVar16 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar16 - uVar11)" ( (binary_expression "iVar16 - uVar11" identifier - identifier) )))) )) (compound_statement "{\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));\n              }" { (do_statement "do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < (int)(iVar16 - uVar11));" do (compound_statement "{\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                }" { (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207820))" ( (pointer_expression "**(code **)(pcVar32 + 0x207820)" * (pointer_expression "*(code **)(pcVar32 + 0x207820)" * (cast_expression "(code **)(pcVar32 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207820)" ( (binary_expression "pcVar32 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(in_a2,iVar3,iVar23,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) ;) (if_statement "if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }" if (parenthesized_expression "((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0))" ( (binary_expression "(iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)" (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0)" ( (comma_expression "iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0), iVar16 != 0" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207820))\n                                         (in_a2,iVar35,iVar23 + uVar11,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207820))" ( (pointer_expression "**(code **)(pcVar32 + 0x207820)" * (pointer_expression "*(code **)(pcVar32 + 0x207820)" * (cast_expression "(code **)(pcVar32 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207820)" ( (binary_expression "pcVar32 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(in_a2,iVar35,iVar23 + uVar11,&puStack_f0)" ( identifier , identifier , (binary_expression "iVar23 + uVar11" identifier + identifier) , (pointer_expression "&puStack_f0" & identifier) )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);\n                    if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }\n                  }" { (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier = (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" identifier . field_identifier) + identifier) , (field_expression "puStack_f0._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar32 + 0x207c58)" * (pointer_expression "*(code **)(pcVar32 + 0x207c58)" * (cast_expression "(code **)(pcVar32 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207c58)" ( (binary_expression "pcVar32 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(in_a1,iVar8,iVar23,&puStack_f0)" ( identifier , identifier , identifier , (pointer_expression "&puStack_f0" & identifier) )))) ;) (if_statement "if (iVar16 != 0) {\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n                      (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                    }" { (expression_statement "(**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);" (call_expression "(**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar32 + 0x207c58)" * (pointer_expression "*(code **)(pcVar32 + 0x207c58)" * (cast_expression "(code **)(pcVar32 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207c58)" ( (binary_expression "pcVar32 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(in_a1,iStack_118,iVar23,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) ))) ;) })) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207bdc))(in_a2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar32 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar32 + 0x207bdc)" * (cast_expression "(code **)(pcVar32 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207bdc)" ( (binary_expression "pcVar32 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(in_a2)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar23 < (int)(iVar16 - uVar11))" ( (binary_expression "iVar23 < (int)(iVar16 - uVar11)" identifier < (cast_expression "(int)(iVar16 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar16 - uVar11)" ( (binary_expression "iVar16 - uVar11" identifier - identifier) )))) )) ;) })) (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207bdc))(in_a2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar32 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar32 + 0x207bdc)" * (cast_expression "(code **)(pcVar32 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207bdc)" ( (binary_expression "pcVar32 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(in_a2)" ( identifier )))) ;) (if_statement "if (iVar23 < iVar16) {\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }" if (parenthesized_expression "(iVar23 < iVar16)" ( (binary_expression "iVar23 < iVar16" identifier < identifier) )) (compound_statement "{\n                do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);\n              }" { (do_statement "do {\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                } while (iVar23 < iVar16);" do (compound_statement "{\n                  iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);\n                  if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }\n                  iVar23 = iVar23 + 1;\n                  iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);\n                }" { (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207820))(in_a2,iVar3,iVar23,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207820))" ( (pointer_expression "**(code **)(pcVar32 + 0x207820)" * (pointer_expression "*(code **)(pcVar32 + 0x207820)" * (cast_expression "(code **)(pcVar32 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207820)" ( (binary_expression "pcVar32 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(in_a2,iVar3,iVar23,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) ;) (if_statement "if ((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)) {\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }" if (parenthesized_expression "((iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0))" ( (binary_expression "(iVar16 != 0) &&\n                     (iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)" (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0)" ( (comma_expression "iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2),\n                     iVar16 != 0" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207c58))(in_a1,iVar8,iVar23,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar32 + 0x207c58)" * (pointer_expression "*(code **)(pcVar32 + 0x207c58)" * (cast_expression "(code **)(pcVar32 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207c58)" ( (binary_expression "pcVar32 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(in_a1,iVar8,iVar23,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) , (binary_expression "iVar16 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    (**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);\n                  }" { (expression_statement "(**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2);" (call_expression "(**(code **)(pcVar32 + 0x207c58))(in_a1,iStack_118,iVar23,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar32 + 0x207c58)" * (pointer_expression "*(code **)(pcVar32 + 0x207c58)" * (cast_expression "(code **)(pcVar32 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207c58)" ( (binary_expression "pcVar32 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(in_a1,iStack_118,iVar23,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) ))) ;) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2);" (assignment_expression "iVar16 = (**(code **)(pcVar32 + 0x207bdc))(in_a2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207bdc))(in_a2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar32 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar32 + 0x207bdc)" * (cast_expression "(code **)(pcVar32 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207bdc)" ( (binary_expression "pcVar32 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(in_a2)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar23 < iVar16)" ( (binary_expression "iVar23 < iVar16" identifier < identifier) )) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "iStack_118 = iStack_118 + 2;" (assignment_expression "iStack_118 = iStack_118 + 2" identifier = (binary_expression "iStack_118 + 2" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) }) while (parenthesized_expression "(uStack_110 != uVar10)" ( (binary_expression "uStack_110 != uVar10" identifier != identifier) )) ;) })) (expression_statement "iStack_10c = iStack_10c + uVar9;" (assignment_expression "iStack_10c = iStack_10c + uVar9" identifier = (binary_expression "iStack_10c + uVar9" identifier + identifier)) ;) (expression_statement "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2);" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a2)" identifier = (call_expression "(**(code **)(pcVar32 + 0x2074ec))(in_a2)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar32 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar32 + 0x2074ec)" * (cast_expression "(code **)(pcVar32 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2074ec)" ( (binary_expression "pcVar32 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(in_a2)" ( identifier )))) ;) }) while (parenthesized_expression "(iStack_10c < iVar3)" ( (binary_expression "iStack_10c < iVar3" identifier < identifier) )) ;) })) (expression_statement "uVar11 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);" (assignment_expression "uVar11 = (**(code **)(pcVar32 + 0x2074ec))(in_a1)" identifier = (call_expression "(**(code **)(pcVar32 + 0x2074ec))(in_a1)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar32 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar32 + 0x2074ec)" * (cast_expression "(code **)(pcVar32 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2074ec)" ( (binary_expression "pcVar32 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(in_a1)" ( identifier )))) ;) (expression_statement "iVar3 = in_a1;" (assignment_expression "iVar3 = in_a1" identifier = identifier) ;) (expression_statement "uStack_110 = uVar9;" (assignment_expression "uStack_110 = uVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 < uVar11)" ( (binary_expression "uVar9 < uVar11" identifier < identifier) )) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4);" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar32 + 0x207a68)" * (pointer_expression "*(code **)(pcVar32 + 0x207a68)" * (cast_expression "(code **)(pcVar32 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207a68)" ( (binary_expression "pcVar32 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar32 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar32 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }" if (parenthesized_expression "(((iVar3 == 4) || (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3))))" ( (binary_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar32 + 0x207a68)" * (pointer_expression "*(code **)(pcVar32 + 0x207a68)" * (cast_expression "(code **)(pcVar32 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207a68)" ( (binary_expression "pcVar32 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)))" ( (parenthesized_expression "(iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3))" ( (comma_expression "iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar32 + 0x207a68)" * (pointer_expression "*(code **)(pcVar32 + 0x207a68)" * (cast_expression "(code **)(pcVar32 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207a68)" ( (binary_expression "pcVar32 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) , (binary_expression "iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)" (binary_expression "iVar3 == 4" identifier == number_literal) || (parenthesized_expression "(iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar32 + 0x207a68)" * (pointer_expression "*(code **)(pcVar32 + 0x207a68)" * (cast_expression "(code **)(pcVar32 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207a68)" ( (binary_expression "pcVar32 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcVar32 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar32 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }" { (expression_statement "(**(code **)(pcVar32 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar32 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar32 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar32 + 0x2076f0)" * (cast_expression "(code **)(pcVar32 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2076f0)" ( (binary_expression "pcVar32 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1)" identifier = (call_expression "(**(code **)(pcVar32 + 0x2074ec))(in_a1)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar32 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar32 + 0x2074ec)" * (cast_expression "(code **)(pcVar32 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2074ec)" ( (binary_expression "pcVar32 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(in_a1)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar3 = iVar3 + 0x3f;\n    }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (if_statement "if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      bVar1 = iVar3 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1 < iVar3 >> 6)" ( (binary_expression "extraout_v1 < iVar3 >> 6" identifier < (binary_expression "iVar3 >> 6" identifier >> number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }" { (expression_statement "(**(code **)(pcVar32 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar32 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar32 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar32 + 0x2076f0)" * (cast_expression "(code **)(pcVar32 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2076f0)" ( (binary_expression "pcVar32 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_00 < 2;" (assignment_expression "bVar1 = extraout_v1_00 < 2" identifier = (binary_expression "extraout_v1_00 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      bVar1 = iVar3 < 0x80;\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      bVar1 = iVar3 < 0x80;\n    }" { (expression_statement "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1)" identifier = (call_expression "(**(code **)(pcVar32 + 0x2074ec))(in_a1)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar32 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar32 + 0x2074ec)" * (cast_expression "(code **)(pcVar32 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2074ec)" ( (binary_expression "pcVar32 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(in_a1)" ( identifier )))) ;) (expression_statement "bVar1 = iVar3 < 0x80;" (assignment_expression "bVar1 = iVar3 < 0x80" identifier = (binary_expression "iVar3 < 0x80" identifier < number_literal)) ;) }))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar32 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcVar32 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar32 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }" { (expression_statement "(**(code **)(pcVar32 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar32 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar32 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar32 + 0x2076f0)" * (cast_expression "(code **)(pcVar32 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2076f0)" ( (binary_expression "pcVar32 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1)" identifier = (call_expression "(**(code **)(pcVar32 + 0x2074ec))(in_a1)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar32 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar32 + 0x2074ec)" * (cast_expression "(code **)(pcVar32 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2074ec)" ( (binary_expression "pcVar32 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(in_a1)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar3 = iVar3 + 0x3f;\n      }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (if_statement "if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar32 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" if (parenthesized_expression "(extraout_v1_01 < iVar3 >> 6)" ( (binary_expression "extraout_v1_01 < iVar3 >> 6" identifier < (binary_expression "iVar3 >> 6" identifier >> number_literal)) )) (compound_statement "{\n        (**(code **)(pcVar32 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }" { (expression_statement "(**(code **)(pcVar32 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar32 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar32 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar32 + 0x2076f0)" * (cast_expression "(code **)(pcVar32 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2076f0)" ( (binary_expression "pcVar32 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = extraout_v1_02;" (assignment_expression "iVar3 = extraout_v1_02" identifier = identifier) ;) }) (else_clause "else {\n        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" { (expression_statement "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1);" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x2074ec))(in_a1)" identifier = (call_expression "(**(code **)(pcVar32 + 0x2074ec))(in_a1)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar32 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar32 + 0x2074ec)" * (cast_expression "(code **)(pcVar32 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2074ec)" ( (binary_expression "pcVar32 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(in_a1)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar3 = iVar3 + 0x3f;\n        }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar3 = iVar3 >> 6;" (assignment_expression "iVar3 = iVar3 >> 6" identifier = (binary_expression "iVar3 >> 6" identifier >> number_literal)) ;) }))) })) (goto_statement "goto LAB_001a1e70;" goto statement_identifier ;) })) (expression_statement "uVar37 = (**(code **)(pcVar32 + 0x2076f0))(7);" (assignment_expression "uVar37 = (**(code **)(pcVar32 + 0x2076f0))(7)" identifier = (call_expression "(**(code **)(pcVar32 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar32 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar32 + 0x2076f0)" * (cast_expression "(code **)(pcVar32 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2076f0)" ( (binary_expression "pcVar32 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar37 >> 0x20) == 0) {\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n    if ((uint)uVar37 < 2) {\n      uVar37 = (*pcVar33)(7);\n      if ((int)((ulonglong)uVar37 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n      if ((uint)uVar37 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n  }" if (parenthesized_expression "((int)((ulonglong)uVar37 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar37 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar37 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar37 >> 0x20)" ( (binary_expression "(ulonglong)uVar37 >> 0x20" (cast_expression "(ulonglong)uVar37" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n    if ((uint)uVar37 < 2) {\n      uVar37 = (*pcVar33)(7);\n      if ((int)((ulonglong)uVar37 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n      if ((uint)uVar37 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }" { (expression_statement "pcVar33 = *(code **)(pcVar32 + 0x2076f0);" (assignment_expression "pcVar33 = *(code **)(pcVar32 + 0x2076f0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x2076f0)" * (cast_expression "(code **)(pcVar32 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2076f0)" ( (binary_expression "pcVar32 + 0x2076f0" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar37 < 2) {\n      uVar37 = (*pcVar33)(7);\n      if ((int)((ulonglong)uVar37 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n      if ((uint)uVar37 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }" if (parenthesized_expression "((uint)uVar37 < 2)" ( (binary_expression "(uint)uVar37 < 2" (cast_expression "(uint)uVar37" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      uVar37 = (*pcVar33)(7);\n      if ((int)((ulonglong)uVar37 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n      if ((uint)uVar37 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }" { (expression_statement "uVar37 = (*pcVar33)(7);" (assignment_expression "uVar37 = (*pcVar33)(7)" identifier = (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar37 >> 0x20) != 0) goto LAB_001a1e58;" if (parenthesized_expression "((int)((ulonglong)uVar37 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar37 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar37 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar37 >> 0x20)" ( (binary_expression "(ulonglong)uVar37 >> 0x20" (cast_expression "(ulonglong)uVar37" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_001a1e58;" goto statement_identifier ;)) (expression_statement "pcVar33 = *(code **)(pcVar32 + 0x2076f0);" (assignment_expression "pcVar33 = *(code **)(pcVar32 + 0x2076f0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x2076f0)" * (cast_expression "(code **)(pcVar32 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2076f0)" ( (binary_expression "pcVar32 + 0x2076f0" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar37 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }" if (parenthesized_expression "((uint)uVar37 < 2)" ( (binary_expression "(uint)uVar37 < 2" (cast_expression "(uint)uVar37" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_001a1e70;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_001a1e58:\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n  }" else (compound_statement "{\nLAB_001a1e58:\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);\n  }" { (labeled_statement "LAB_001a1e58:\n    pcVar33 = *(code **)(pcVar32 + 0x2076f0);" statement_identifier : (expression_statement "pcVar33 = *(code **)(pcVar32 + 0x2076f0);" (assignment_expression "pcVar33 = *(code **)(pcVar32 + 0x2076f0)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x2076f0)" * (cast_expression "(code **)(pcVar32 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2076f0)" ( (binary_expression "pcVar32 + 0x2076f0" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar37 = (*pcVar33)(7);" (assignment_expression "uVar37 = (*pcVar33)(7)" identifier = (call_expression "(*pcVar33)(7)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar37 >> 0x20) == 0) && ((uint)uVar37 < 2)) {\n    (**(code **)(pcVar32 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }" if (parenthesized_expression "(((int)((ulonglong)uVar37 >> 0x20) == 0) && ((uint)uVar37 < 2))" ( (binary_expression "((int)((ulonglong)uVar37 >> 0x20) == 0) && ((uint)uVar37 < 2)" (parenthesized_expression "((int)((ulonglong)uVar37 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar37 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar37 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar37 >> 0x20)" ( (binary_expression "(ulonglong)uVar37 >> 0x20" (cast_expression "(ulonglong)uVar37" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar37 < 2)" ( (binary_expression "(uint)uVar37 < 2" (cast_expression "(uint)uVar37" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n    (**(code **)(pcVar32 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }" { (expression_statement "(**(code **)(pcVar32 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar32 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar32 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar32 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar32 + 0x2076f0)" * (cast_expression "(code **)(pcVar32 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2076f0)" ( (binary_expression "pcVar32 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = extraout_v1_03;" (assignment_expression "iVar3 = extraout_v1_03" identifier = identifier) ;) }) (else_clause "else {\n    iVar3 = 2;\n  }" else (compound_statement "{\n    iVar3 = 2;\n  }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) }))) (labeled_statement "LAB_001a1e70:\n  puStack_ec = puVar2;" statement_identifier : (expression_statement "puStack_ec = puVar2;" (assignment_expression "puStack_ec = puVar2" identifier = identifier) ;)) (expression_statement "piVar5 = (int *)(*(int *)(pcVar32 + 0x207140) + 0x185c);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar32 + 0x207140) + 0x185c)" identifier = (cast_expression "(int *)(*(int *)(pcVar32 + 0x207140) + 0x185c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar32 + 0x207140) + 0x185c)" ( (binary_expression "*(int *)(pcVar32 + 0x207140) + 0x185c" (pointer_expression "*(int *)(pcVar32 + 0x207140)" * (cast_expression "(int *)(pcVar32 + 0x207140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x207140)" ( (binary_expression "pcVar32 + 0x207140" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puStack_f0 = puStack_ac;" (assignment_expression "puStack_f0 = puStack_ac" identifier = identifier) ;) (expression_statement "iStack_e8 = in_a1;" (assignment_expression "iStack_e8 = in_a1" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar32 + 0x20774c))(piVar5,&puStack_f0,iVar3,0);" (call_expression "(**(code **)(pcVar32 + 0x20774c))(piVar5,&puStack_f0,iVar3,0)" (parenthesized_expression "(**(code **)(pcVar32 + 0x20774c))" ( (pointer_expression "**(code **)(pcVar32 + 0x20774c)" * (pointer_expression "*(code **)(pcVar32 + 0x20774c)" * (cast_expression "(code **)(pcVar32 + 0x20774c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x20774c)" ( (binary_expression "pcVar32 + 0x20774c" identifier + number_literal) ))))) )) (argument_list "(piVar5,&puStack_f0,iVar3,0)" ( identifier , (pointer_expression "&puStack_f0" & identifier) , identifier , number_literal ))) ;) (if_statement "if (iStack_e4 == *piVar15) {\n    return;\n  }" if (parenthesized_expression "(iStack_e4 == *piVar15)" ( (binary_expression "iStack_e4 == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar32 = *(code **)(pcVar32 + 0x207618);" (assignment_expression "pcVar32 = *(code **)(pcVar32 + 0x207618)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x207618)" * (cast_expression "(code **)(pcVar32 + 0x207618)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207618)" ( (binary_expression "pcVar32 + 0x207618" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar32)();" (call_expression "(*pcVar32)()" (parenthesized_expression "(*pcVar32)" ( (pointer_expression "*pcVar32" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar35 = *(int *)piVar5[7];" (assignment_expression "iVar35 = *(int *)piVar5[7]" identifier = (pointer_expression "*(int *)piVar5[7]" * (cast_expression "(int *)piVar5[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[7]" identifier [ number_literal ])))) ;) (expression_statement "iVar8 = piVar5[2];" (assignment_expression "iVar8 = piVar5[2]" identifier = (subscript_expression "piVar5[2]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = (**(code **)(pcVar32 + 0x2078b0))();" (assignment_expression "iVar3 = (**(code **)(pcVar32 + 0x2078b0))()" identifier = (call_expression "(**(code **)(pcVar32 + 0x2078b0))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x2078b0))" ( (pointer_expression "**(code **)(pcVar32 + 0x2078b0)" * (pointer_expression "*(code **)(pcVar32 + 0x2078b0)" * (cast_expression "(code **)(pcVar32 + 0x2078b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2078b0)" ( (binary_expression "pcVar32 + 0x2078b0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (**(code **)(pcVar32 + 0x2074ac))();" (assignment_expression "iVar4 = (**(code **)(pcVar32 + 0x2074ac))()" identifier = (call_expression "(**(code **)(pcVar32 + 0x2074ac))()" (parenthesized_expression "(**(code **)(pcVar32 + 0x2074ac))" ( (pointer_expression "**(code **)(pcVar32 + 0x2074ac)" * (pointer_expression "*(code **)(pcVar32 + 0x2074ac)" * (cast_expression "(code **)(pcVar32 + 0x2074ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x2074ac)" ( (binary_expression "pcVar32 + 0x2074ac" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar35 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar35 == 0)" ( (binary_expression "iVar35 == 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 "iVar16 = (iVar35 + -1 + *(int *)(iVar8 + 0x1c)) / iVar35;" (assignment_expression "iVar16 = (iVar35 + -1 + *(int *)(iVar8 + 0x1c)) / iVar35" identifier = (binary_expression "(iVar35 + -1 + *(int *)(iVar8 + 0x1c)) / iVar35" (parenthesized_expression "(iVar35 + -1 + *(int *)(iVar8 + 0x1c))" ( (binary_expression "iVar35 + -1 + *(int *)(iVar8 + 0x1c)" (binary_expression "iVar35 + -1" identifier + number_literal) + (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) )) / identifier)) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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 "iVar23 = iVar16 / iVar3;" (assignment_expression "iVar23 = iVar16 / iVar3" identifier = (binary_expression "iVar16 / iVar3" identifier / identifier)) ;) (expression_statement "iVar16 = iVar16 % iVar3;" (assignment_expression "iVar16 = iVar16 % iVar3" identifier = (binary_expression "iVar16 % iVar3" identifier % identifier)) ;) (if_statement "if (iVar4 < iVar16) {\n    iVar23 = iVar23 + 1;\n    iVar16 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar16)" ( (binary_expression "iVar4 < iVar16" identifier < identifier) )) (compound_statement "{\n    iVar23 = iVar23 + 1;\n    iVar16 = 0;\n  }" { (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) })) (expression_statement "iVar16 = iVar23 * iVar4 + iVar16;" (assignment_expression "iVar16 = iVar23 * iVar4 + iVar16" identifier = (binary_expression "iVar23 * iVar4 + iVar16" (binary_expression "iVar23 * iVar4" identifier * identifier) + identifier)) ;) (if_statement "if (iVar16 < iVar23 + iVar16) {\n    iVar25 = piVar5[6];\n    iStack_188 = iVar35 * iVar16;\n    iVar3 = piVar5[5];\n    iVar4 = piVar5[4];\n    iVar27 = *(int *)(pcVar32 + 0x206890);\n    iVar36 = piVar5[3];\n    do {\n      if (piVar5[9] != 0) {\n        iVar13 = *(int *)(iVar8 + 0x18);\n        if (0 < iVar13) {\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }\n        if (*(int *)(iVar8 + 0x328) != 0) {\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar35;\n    } while (iStack_188 < iVar35 * (iVar23 + iVar16));\n  }" if (parenthesized_expression "(iVar16 < iVar23 + iVar16)" ( (binary_expression "iVar16 < iVar23 + iVar16" identifier < (binary_expression "iVar23 + iVar16" identifier + identifier)) )) (compound_statement "{\n    iVar25 = piVar5[6];\n    iStack_188 = iVar35 * iVar16;\n    iVar3 = piVar5[5];\n    iVar4 = piVar5[4];\n    iVar27 = *(int *)(pcVar32 + 0x206890);\n    iVar36 = piVar5[3];\n    do {\n      if (piVar5[9] != 0) {\n        iVar13 = *(int *)(iVar8 + 0x18);\n        if (0 < iVar13) {\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }\n        if (*(int *)(iVar8 + 0x328) != 0) {\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar35;\n    } while (iStack_188 < iVar35 * (iVar23 + iVar16));\n  }" { (expression_statement "iVar25 = piVar5[6];" (assignment_expression "iVar25 = piVar5[6]" identifier = (subscript_expression "piVar5[6]" identifier [ number_literal ])) ;) (expression_statement "iStack_188 = iVar35 * iVar16;" (assignment_expression "iStack_188 = iVar35 * iVar16" identifier = (binary_expression "iVar35 * iVar16" identifier * identifier)) ;) (expression_statement "iVar3 = piVar5[5];" (assignment_expression "iVar3 = piVar5[5]" identifier = (subscript_expression "piVar5[5]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar5[4];" (assignment_expression "iVar4 = piVar5[4]" identifier = (subscript_expression "piVar5[4]" identifier [ number_literal ])) ;) (expression_statement "iVar27 = *(int *)(pcVar32 + 0x206890);" (assignment_expression "iVar27 = *(int *)(pcVar32 + 0x206890)" identifier = (pointer_expression "*(int *)(pcVar32 + 0x206890)" * (cast_expression "(int *)(pcVar32 + 0x206890)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x206890)" ( (binary_expression "pcVar32 + 0x206890" identifier + number_literal) ))))) ;) (expression_statement "iVar36 = piVar5[3];" (assignment_expression "iVar36 = piVar5[3]" identifier = (subscript_expression "piVar5[3]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (piVar5[9] != 0) {\n        iVar13 = *(int *)(iVar8 + 0x18);\n        if (0 < iVar13) {\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }\n        if (*(int *)(iVar8 + 0x328) != 0) {\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar35;\n    } while (iStack_188 < iVar35 * (iVar23 + iVar16));" do (compound_statement "{\n      if (piVar5[9] != 0) {\n        iVar13 = *(int *)(iVar8 + 0x18);\n        if (0 < iVar13) {\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }\n        if (*(int *)(iVar8 + 0x328) != 0) {\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar35;\n    }" { (if_statement "if (piVar5[9] != 0) {\n        iVar13 = *(int *)(iVar8 + 0x18);\n        if (0 < iVar13) {\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }\n        if (*(int *)(iVar8 + 0x328) != 0) {\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }\n      }" if (parenthesized_expression "(piVar5[9] != 0)" ( (binary_expression "piVar5[9] != 0" (subscript_expression "piVar5[9]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar13 = *(int *)(iVar8 + 0x18);\n        if (0 < iVar13) {\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }\n        if (*(int *)(iVar8 + 0x328) != 0) {\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }\n      }" { (expression_statement "iVar13 = *(int *)(iVar8 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar8 + 0x18)" identifier = (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar13) {\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n          iVar24 = 0;\n          iVar21 = *(int *)piVar5[8];\n          iVar22 = iVar21;\n          do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);\n        }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "iVar21 = *(int *)piVar5[8];" (assignment_expression "iVar21 = *(int *)piVar5[8]" identifier = (pointer_expression "*(int *)piVar5[8]" * (cast_expression "(int *)piVar5[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[8]" identifier [ number_literal ])))) ;) (expression_statement "iVar22 = iVar21;" (assignment_expression "iVar22 = iVar21" identifier = identifier) ;) (do_statement "do {\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          } while (iVar24 < iVar13);" do (compound_statement "{\n            if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }\n            iVar13 = *(int *)piVar5[7];\n            if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }\n            iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;\n            if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }\n            if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }\n            iVar13 = *(int *)(iVar8 + 0x18);\n            iVar22 = *(int *)piVar5[8];\n            iVar24 = iVar24 + iVar22;\n            iVar21 = iVar22 + iVar24;\n          }" { (if_statement "if (iVar13 < iVar21) {\n              iVar22 = iVar13 - iVar24;\n            }" if (parenthesized_expression "(iVar13 < iVar21)" ( (binary_expression "iVar13 < iVar21" identifier < identifier) )) (compound_statement "{\n              iVar22 = iVar13 - iVar24;\n            }" { (expression_statement "iVar22 = iVar13 - iVar24;" (assignment_expression "iVar22 = iVar13 - iVar24" identifier = (binary_expression "iVar13 - iVar24" identifier - identifier)) ;) })) (expression_statement "iVar13 = *(int *)piVar5[7];" (assignment_expression "iVar13 = *(int *)piVar5[7]" identifier = (pointer_expression "*(int *)piVar5[7]" * (cast_expression "(int *)piVar5[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[7]" identifier [ number_literal ])))) ;) (if_statement "if (*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }" if (parenthesized_expression "(*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188)" ( (binary_expression "*(int *)(iVar8 + 0x1c) < iVar13 + iStack_188" (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) < (binary_expression "iVar13 + iStack_188" identifier + identifier)) )) (compound_statement "{\n              iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;\n            }" { (expression_statement "iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188;" (assignment_expression "iVar13 = *(int *)(iVar8 + 0x1c) - iStack_188" identifier = (binary_expression "*(int *)(iVar8 + 0x1c) - iStack_188" (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) )))) - identifier)) ;) })) (expression_statement "iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)\n            ;" (assignment_expression "iVar21 = (**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)" identifier = (call_expression "(**(code **)(pcVar32 + 0x207600))(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)" (parenthesized_expression "(**(code **)(pcVar32 + 0x207600))" ( (pointer_expression "**(code **)(pcVar32 + 0x207600)" * (pointer_expression "*(code **)(pcVar32 + 0x207600)" * (cast_expression "(code **)(pcVar32 + 0x207600)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x207600)" ( (binary_expression "pcVar32 + 0x207600" identifier + number_literal) ))))) )) (argument_list "(iVar4,iVar24,iStack_188,iVar22,iVar13,iVar36)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar21 == 0) {\n              piVar5[9] = 0;\n              break;\n            }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar5[9] = 0;\n              break;\n            }" { (expression_statement "piVar5[9] = 0;" (assignment_expression "piVar5[9] = 0" (subscript_expression "piVar5[9]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (0 < iVar22) {\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }" if (parenthesized_expression "(0 < iVar22)" ( (binary_expression "0 < iVar22" number_literal < identifier) )) (compound_statement "{\n              iVar26 = iVar24;\n              do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);\n            }" { (expression_statement "iVar26 = iVar24;" (assignment_expression "iVar26 = iVar24" identifier = identifier) ;) (do_statement "do {\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              } while (iVar22 + iVar24 != iVar26);" do (compound_statement "{\n                if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }\nLAB_001a2344:\n                iVar26 = iVar26 + 1;\n              }" { (if_statement "if (piVar5[9] != 0) {\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }" if (parenthesized_expression "(piVar5[9] != 0)" ( (binary_expression "piVar5[9] != 0" (subscript_expression "piVar5[9]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);\n                  if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar5[9] = 0;\n                }" { (expression_statement "iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36);" (assignment_expression "iVar12 = (**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36)" identifier = (call_expression "(**(code **)(pcVar32 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36)" (parenthesized_expression "(**(code **)(pcVar32 + 0x206bf4))" ( (pointer_expression "**(code **)(pcVar32 + 0x206bf4)" * (pointer_expression "*(code **)(pcVar32 + 0x206bf4)" * (cast_expression "(code **)(pcVar32 + 0x206bf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x206bf4)" ( (binary_expression "pcVar32 + 0x206bf4" identifier + number_literal) ))))) )) (argument_list "(iVar3,(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13,iVar26,\n                                      iVar13,1,iVar36)" ( identifier , (binary_expression "(*(int *)(iVar25 + 0x18) - iStack_188) - iVar13" (parenthesized_expression "(*(int *)(iVar25 + 0x18) - iStack_188)" ( (binary_expression "*(int *)(iVar25 + 0x18) - iStack_188" (pointer_expression "*(int *)(iVar25 + 0x18)" * (cast_expression "(int *)(iVar25 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x18)" ( (binary_expression "iVar25 + 0x18" identifier + number_literal) )))) - identifier) )) - identifier) , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar12 != 0) {\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar28 = *(int *)(iVar8 + 0x2c0);\n                    puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);\n                    if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }" { (expression_statement "iVar28 = *(int *)(iVar8 + 0x2c0);" (assignment_expression "iVar28 = *(int *)(iVar8 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar8 + 0x2c0)" * (cast_expression "(int *)(iVar8 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x2c0)" ( (binary_expression "iVar8 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21);" (assignment_expression "puVar19 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21)" identifier = (cast_expression "(undefined4 *)\n                              ((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21)" ( (binary_expression "(((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4 + iVar21" (binary_expression "(((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28 * 4" (binary_expression "(((iVar13 + -1) * iVar22 - iVar24) + iVar26) * iVar28" (parenthesized_expression "(((iVar13 + -1) * iVar22 - iVar24) + iVar26)" ( (binary_expression "((iVar13 + -1) * iVar22 - iVar24) + iVar26" (parenthesized_expression "((iVar13 + -1) * iVar22 - iVar24)" ( (binary_expression "(iVar13 + -1) * iVar22 - iVar24" (binary_expression "(iVar13 + -1) * iVar22" (parenthesized_expression "(iVar13 + -1)" ( (binary_expression "iVar13 + -1" identifier + number_literal) )) * identifier) - identifier) )) + identifier) )) * identifier) * number_literal) + identifier) )))) ;) (if_statement "if (0 < iVar13) {\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n                      iVar30 = *(int *)(iVar25 + 0x2c0);\n                      iVar20 = 0;\n                      do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);\n                    }" { (expression_statement "iVar30 = *(int *)(iVar25 + 0x2c0);" (assignment_expression "iVar30 = *(int *)(iVar25 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar25 + 0x2c0)" * (cast_expression "(int *)(iVar25 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x2c0)" ( (binary_expression "iVar25 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      } while (iVar20 != iVar13);" do (compound_statement "{\n                        if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }\n                        iVar20 = iVar20 + 1;\n                        puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);\n                        iVar12 = iVar12 + iVar30 * 4;\n                      }" { (if_statement "if (0 < iVar28) {\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }" if (parenthesized_expression "(0 < iVar28)" ( (binary_expression "0 < iVar28" number_literal < identifier) )) (compound_statement "{\n                          piVar6 = *(int **)(iVar8 + 0x2d0);\n                          iVar18 = *(int *)(iVar25 + 0x2d0);\n                          piVar15 = piVar6;\n                          puVar17 = puVar19;\n                          do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);\n                        }" { (expression_statement "piVar6 = *(int **)(iVar8 + 0x2d0);" (assignment_expression "piVar6 = *(int **)(iVar8 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar8 + 0x2d0)" * (cast_expression "(int **)(iVar8 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x2d0)" ( (binary_expression "iVar8 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(iVar25 + 0x2d0);" (assignment_expression "iVar18 = *(int *)(iVar25 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar25 + 0x2d0)" * (cast_expression "(int *)(iVar25 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x2d0)" ( (binary_expression "iVar25 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar15 = piVar6;" (assignment_expression "piVar15 = piVar6" identifier = identifier) ;) (expression_statement "puVar17 = puVar19;" (assignment_expression "puVar17 = puVar19" identifier = identifier) ;) (do_statement "do {\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          } while (piVar15 != piVar6 + iVar28 * 3);" do (compound_statement "{\n                            iVar14 = iVar18 + *piVar15 * 0xc;\n                            if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }\n                            piVar15 = piVar15 + 3;\n                            puVar17 = puVar17 + 1;\n                          }" { (expression_statement "iVar14 = iVar18 + *piVar15 * 0xc;" (assignment_expression "iVar14 = iVar18 + *piVar15 * 0xc" identifier = (binary_expression "iVar18 + *piVar15 * 0xc" identifier + (binary_expression "*piVar15 * 0xc" (pointer_expression "*piVar15" * identifier) * number_literal))) ;) (if_statement "if ((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }" if (parenthesized_expression "((piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0))" ( (binary_expression "(piVar6[*piVar15 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)" (parenthesized_expression "(piVar6[*piVar15 * 3 + 1] != 0)" ( (binary_expression "piVar6[*piVar15 * 3 + 1] != 0" (subscript_expression "piVar6[*piVar15 * 3 + 1]" identifier [ (binary_expression "*piVar15 * 3 + 1" (binary_expression "*piVar15 * 3" (pointer_expression "*piVar15" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar14 + 4) != 0)" ( (binary_expression "*(int *)(iVar14 + 4) != 0" (pointer_expression "*(int *)(iVar14 + 4)" * (cast_expression "(int *)(iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;\n                            }" { (expression_statement "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17;" (assignment_expression "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar17" (pointer_expression "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar14 + 8) * 4)" ( (binary_expression "iVar12 + *(int *)(iVar14 + 8) * 4" identifier + (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*puVar17" * identifier)) ;) })) (expression_statement "piVar15 = piVar15 + 3;" (assignment_expression "piVar15 = piVar15 + 3" identifier = (binary_expression "piVar15 + 3" identifier + number_literal)) ;) (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar15 != piVar6 + iVar28 * 3)" ( (binary_expression "piVar15 != piVar6 + iVar28 * 3" identifier != (binary_expression "piVar6 + iVar28 * 3" identifier + (binary_expression "iVar28 * 3" identifier * number_literal))) )) ;) })) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4);" (assignment_expression "puVar19 = (undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4)" identifier = (cast_expression "(undefined4 *)((int)puVar19 - iVar22 * iVar28 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar19 - iVar22 * iVar28 * 4)" ( (binary_expression "(int)puVar19 - iVar22 * iVar28 * 4" (cast_expression "(int)puVar19" ( (type_descriptor "int" primitive_type) ) identifier) - (binary_expression "iVar22 * iVar28 * 4" (binary_expression "iVar22 * iVar28" identifier * identifier) * number_literal)) )))) ;) (expression_statement "iVar12 = iVar12 + iVar30 * 4;" (assignment_expression "iVar12 = iVar12 + iVar30 * 4" identifier = (binary_expression "iVar12 + iVar30 * 4" identifier + (binary_expression "iVar30 * 4" identifier * number_literal))) ;) }) while (parenthesized_expression "(iVar20 != iVar13)" ( (binary_expression "iVar20 != iVar13" identifier != identifier) )) ;) })) (expression_statement "iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36);" (assignment_expression "iVar12 = (**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36)" identifier = (call_expression "(**(code **)(pcVar32 + 0x20749c))(iVar3,iVar36)" (parenthesized_expression "(**(code **)(pcVar32 + 0x20749c))" ( (pointer_expression "**(code **)(pcVar32 + 0x20749c)" * (pointer_expression "*(code **)(pcVar32 + 0x20749c)" * (cast_expression "(code **)(pcVar32 + 0x20749c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x20749c)" ( (binary_expression "pcVar32 + 0x20749c" identifier + number_literal) ))))) )) (argument_list "(iVar3,iVar36)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 != 0) goto LAB_001a2344;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001a2344;" goto statement_identifier ;)) })) (expression_statement "piVar5[9] = 0;" (assignment_expression "piVar5[9] = 0" (subscript_expression "piVar5[9]" identifier [ number_literal ]) = number_literal) ;) })) (labeled_statement "LAB_001a2344:\n                iVar26 = iVar26 + 1;" statement_identifier : (expression_statement "iVar26 = iVar26 + 1;" (assignment_expression "iVar26 = iVar26 + 1" identifier = (binary_expression "iVar26 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar22 + iVar24 != iVar26)" ( (binary_expression "iVar22 + iVar24 != iVar26" (binary_expression "iVar22 + iVar24" identifier + identifier) != identifier) )) ;) })) (expression_statement "iVar13 = *(int *)(iVar8 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar8 + 0x18)" identifier = (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)piVar5[8];" (assignment_expression "iVar22 = *(int *)piVar5[8]" identifier = (pointer_expression "*(int *)piVar5[8]" * (cast_expression "(int *)piVar5[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[8]" identifier [ number_literal ])))) ;) (expression_statement "iVar24 = iVar24 + iVar22;" (assignment_expression "iVar24 = iVar24 + iVar22" identifier = (binary_expression "iVar24 + iVar22" identifier + identifier)) ;) (expression_statement "iVar21 = iVar22 + iVar24;" (assignment_expression "iVar21 = iVar22 + iVar24" identifier = (binary_expression "iVar22 + iVar24" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar24 < iVar13)" ( (binary_expression "iVar24 < iVar13" identifier < identifier) )) ;) })) (if_statement "if (*(int *)(iVar8 + 0x328) != 0) {\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar8 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar8 + 0x328) != 0" (pointer_expression "*(int *)(iVar8 + 0x328)" * (cast_expression "(int *)(iVar8 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x328)" ( (binary_expression "iVar8 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar7 = *(undefined4 *)(iVar8 + 0x1c);\n          uVar9 = *(uint *)piVar5[7];\n          pcVar33 = *(code **)(pcVar32 + 0x206c58);\n          uVar11 = uVar9 + piVar5[1];\n          piVar5[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar5;\n          *piVar5 = iVar13;\n          iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);\n          if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }\n        }" { (expression_statement "uVar7 = *(undefined4 *)(iVar8 + 0x1c);" (assignment_expression "uVar7 = *(undefined4 *)(iVar8 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar8 + 0x1c)" * (cast_expression "(undefined4 *)(iVar8 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)piVar5[7];" (assignment_expression "uVar9 = *(uint *)piVar5[7]" identifier = (pointer_expression "*(uint *)piVar5[7]" * (cast_expression "(uint *)piVar5[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar5[7]" identifier [ number_literal ])))) ;) (expression_statement "pcVar33 = *(code **)(pcVar32 + 0x206c58);" (assignment_expression "pcVar33 = *(code **)(pcVar32 + 0x206c58)" identifier = (pointer_expression "*(code **)(pcVar32 + 0x206c58)" * (cast_expression "(code **)(pcVar32 + 0x206c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar32 + 0x206c58)" ( (binary_expression "pcVar32 + 0x206c58" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar9 + piVar5[1];" (assignment_expression "uVar11 = uVar9 + piVar5[1]" identifier = (binary_expression "uVar9 + piVar5[1]" identifier + (subscript_expression "piVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar5[1] = uVar11;" (assignment_expression "piVar5[1] = uVar11" (subscript_expression "piVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar13 = (uint)(uVar11 < uVar9) + *piVar5;" (assignment_expression "iVar13 = (uint)(uVar11 < uVar9) + *piVar5" identifier = (binary_expression "(uint)(uVar11 < uVar9) + *piVar5" (call_expression "(uint)(uVar11 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar9)" ( (binary_expression "uVar11 < uVar9" identifier < identifier) ))) + (pointer_expression "*piVar5" * identifier))) ;) (expression_statement "*piVar5 = iVar13;" (assignment_expression "*piVar5 = iVar13" (pointer_expression "*piVar5" * identifier) = identifier) ;) (expression_statement "iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7);" (assignment_expression "iVar13 = (*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7)" identifier = (call_expression "(*pcVar33)(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7)" (parenthesized_expression "(*pcVar33)" ( (pointer_expression "*pcVar33" * identifier) )) (argument_list "(iVar8,iVar27 + -0x4820,iVar13,uVar11,0,uVar7)" ( identifier , (binary_expression "iVar27 + -0x4820" identifier + number_literal) , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar13 == 0) {\n            piVar5[9] = 0;\n          }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            piVar5[9] = 0;\n          }" { (expression_statement "piVar5[9] = 0;" (assignment_expression "piVar5[9] = 0" (subscript_expression "piVar5[9]" identifier [ number_literal ]) = number_literal) ;) })) })) })) (expression_statement "iStack_188 = iStack_188 + iVar35;" (assignment_expression "iStack_188 = iStack_188 + iVar35" identifier = (binary_expression "iStack_188 + iVar35" identifier + identifier)) ;) }) while (parenthesized_expression "(iStack_188 < iVar35 * (iVar23 + iVar16))" ( (binary_expression "iStack_188 < iVar35 * (iVar23 + iVar16)" identifier < (binary_expression "iVar35 * (iVar23 + iVar16)" identifier * (parenthesized_expression "(iVar23 + iVar16)" ( (binary_expression "iVar23 + iVar16" identifier + identifier) )))) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001a159c(double *param_1,int param_2,int param_3,ushort *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  double *pdVar5;\n  double *pdVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  int *piVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  int iVar28;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar29;\n  int unaff_s6;\n  int iVar30;\n  ushort *unaff_s7;\n  int iVar31;\n  undefined *puVar32;\n  int iVar33;\n  ushort *puVar34;\n  code *pcVar35;\n  code *pcVar36;\n  double dVar37;\n  int iVar38;\n  int iVar39;\n  undefined8 uVar40;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  double *pdStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  double *pdStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  int local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar34 = *(ushort **)(param_1 + 1);\n  pdVar16 = param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar38 = *(int *)(puVar34 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar34 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar38 * iVar4 + iVar3;\n  iVar38 = iVar38 + iVar3;\n  if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar35 = FUN_001a185c;\n  puVar32 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar32 + 0x20f054;\n  piStack_9c = *(int **)(puVar32 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar18 = *(int *)(pdVar16 + 1);\n  iStack_a0 = *(int *)((int)pdVar16 + 4);\n  iVar30 = *(int *)pdVar16;\n  iVar4 = iVar18;\n  iStack_90 = iVar38;\n  iStack_88 = iVar3;\n  pdStack_84 = param_1;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar34;\n  pcStack_6c = pcVar35;\n  iVar3 = (**(code **)(puVar32 + 0x2076dc))();\n  iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar7 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar21 == 0) {\n    trap(7);\n  }\n  iVar39 = iVar3 / iVar21;\n  iVar3 = iVar3 % iVar21;\n  if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar39 * iVar7 + iVar3;\n  iVar39 = iVar39 + iVar3;\n  if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar35 = *(code **)(puStack_a8 + -0x784c);\n  pcVar36 = FUN_001a1a4c;\n  (*pcVar35)();\n  puVar2 = puStack_a8;\n  piVar8 = *(int **)(pcVar35 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar8;\n  iStack_e0 = iVar38;\n  iStack_dc = iVar18;\n  iStack_d8 = iVar3;\n  pdStack_d4 = param_1;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar39;\n  iStack_c8 = iVar30;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar34;\n  pcStack_bc = pcVar36;\n  puStack_ac = param_4;\n  uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n  iVar3 = param_2;\n  if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }\n  uVar40 = (*pcVar36)(7);\n  if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = param_2;\n  (**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar8) {\n    return;\n  }\n  pcVar35 = *(code **)(pcVar35 + 0x207618);\n  (*pcVar35)();\n  iVar38 = *(int *)piVar17[7];\n  iVar21 = piVar17[2];\n  iVar3 = (**(code **)(pcVar35 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar35 + 0x2074ac))();\n  if (iVar38 == 0) {\n    trap(7);\n  }\n  iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar18 = iVar7 / iVar3;\n  iVar7 = iVar7 % iVar3;\n  if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }\n  iVar7 = iVar18 * iVar4 + iVar7;\n  if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }\n  return;\n}\n\n" (function_definition "void FUN_001a159c(double *param_1,int param_2,int param_3,ushort *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  double *pdVar5;\n  double *pdVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  int *piVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  int iVar28;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar29;\n  int unaff_s6;\n  int iVar30;\n  ushort *unaff_s7;\n  int iVar31;\n  undefined *puVar32;\n  int iVar33;\n  ushort *puVar34;\n  code *pcVar35;\n  code *pcVar36;\n  double dVar37;\n  int iVar38;\n  int iVar39;\n  undefined8 uVar40;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  double *pdStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  double *pdStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  int local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar34 = *(ushort **)(param_1 + 1);\n  pdVar16 = param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar38 = *(int *)(puVar34 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar34 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar38 * iVar4 + iVar3;\n  iVar38 = iVar38 + iVar3;\n  if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar35 = FUN_001a185c;\n  puVar32 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar32 + 0x20f054;\n  piStack_9c = *(int **)(puVar32 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar18 = *(int *)(pdVar16 + 1);\n  iStack_a0 = *(int *)((int)pdVar16 + 4);\n  iVar30 = *(int *)pdVar16;\n  iVar4 = iVar18;\n  iStack_90 = iVar38;\n  iStack_88 = iVar3;\n  pdStack_84 = param_1;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar34;\n  pcStack_6c = pcVar35;\n  iVar3 = (**(code **)(puVar32 + 0x2076dc))();\n  iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar7 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar21 == 0) {\n    trap(7);\n  }\n  iVar39 = iVar3 / iVar21;\n  iVar3 = iVar3 % iVar21;\n  if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar39 * iVar7 + iVar3;\n  iVar39 = iVar39 + iVar3;\n  if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar35 = *(code **)(puStack_a8 + -0x784c);\n  pcVar36 = FUN_001a1a4c;\n  (*pcVar35)();\n  puVar2 = puStack_a8;\n  piVar8 = *(int **)(pcVar35 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar8;\n  iStack_e0 = iVar38;\n  iStack_dc = iVar18;\n  iStack_d8 = iVar3;\n  pdStack_d4 = param_1;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar39;\n  iStack_c8 = iVar30;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar34;\n  pcStack_bc = pcVar36;\n  puStack_ac = param_4;\n  uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n  iVar3 = param_2;\n  if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }\n  uVar40 = (*pcVar36)(7);\n  if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = param_2;\n  (**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar8) {\n    return;\n  }\n  pcVar35 = *(code **)(pcVar35 + 0x207618);\n  (*pcVar35)();\n  iVar38 = *(int *)piVar17[7];\n  iVar21 = piVar17[2];\n  iVar3 = (**(code **)(pcVar35 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar35 + 0x2074ac))();\n  if (iVar38 == 0) {\n    trap(7);\n  }\n  iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar18 = iVar7 / iVar3;\n  iVar7 = iVar7 % iVar3;\n  if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }\n  iVar7 = iVar18 * iVar4 + iVar7;\n  if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }\n  return;\n}" primitive_type (function_declarator "FUN_001a159c(double *param_1,int param_2,int param_3,ushort *param_4)" identifier (parameter_list "(double *param_1,int param_2,int param_3,ushort *param_4)" ( (parameter_declaration "double *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "ushort *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  double *pdVar5;\n  double *pdVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  int *piVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  int iVar28;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar29;\n  int unaff_s6;\n  int iVar30;\n  ushort *unaff_s7;\n  int iVar31;\n  undefined *puVar32;\n  int iVar33;\n  ushort *puVar34;\n  code *pcVar35;\n  code *pcVar36;\n  double dVar37;\n  int iVar38;\n  int iVar39;\n  undefined8 uVar40;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  double *pdStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  double *pdStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  int local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar34 = *(ushort **)(param_1 + 1);\n  pdVar16 = param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar38 = *(int *)(puVar34 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar34 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar38 * iVar4 + iVar3;\n  iVar38 = iVar38 + iVar3;\n  if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar35 = FUN_001a185c;\n  puVar32 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar32 + 0x20f054;\n  piStack_9c = *(int **)(puVar32 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar18 = *(int *)(pdVar16 + 1);\n  iStack_a0 = *(int *)((int)pdVar16 + 4);\n  iVar30 = *(int *)pdVar16;\n  iVar4 = iVar18;\n  iStack_90 = iVar38;\n  iStack_88 = iVar3;\n  pdStack_84 = param_1;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar34;\n  pcStack_6c = pcVar35;\n  iVar3 = (**(code **)(puVar32 + 0x2076dc))();\n  iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar7 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar21 == 0) {\n    trap(7);\n  }\n  iVar39 = iVar3 / iVar21;\n  iVar3 = iVar3 % iVar21;\n  if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar39 * iVar7 + iVar3;\n  iVar39 = iVar39 + iVar3;\n  if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar35 = *(code **)(puStack_a8 + -0x784c);\n  pcVar36 = FUN_001a1a4c;\n  (*pcVar35)();\n  puVar2 = puStack_a8;\n  piVar8 = *(int **)(pcVar35 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar8;\n  iStack_e0 = iVar38;\n  iStack_dc = iVar18;\n  iStack_d8 = iVar3;\n  pdStack_d4 = param_1;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar39;\n  iStack_c8 = iVar30;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar34;\n  pcStack_bc = pcVar36;\n  puStack_ac = param_4;\n  uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n  iVar3 = param_2;\n  if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }\n  uVar40 = (*pcVar36)(7);\n  if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = param_2;\n  (**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar8) {\n    return;\n  }\n  pcVar35 = *(code **)(pcVar35 + 0x207618);\n  (*pcVar35)();\n  iVar38 = *(int *)piVar17[7];\n  iVar21 = piVar17[2];\n  iVar3 = (**(code **)(pcVar35 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar35 + 0x2074ac))();\n  if (iVar38 == 0) {\n    trap(7);\n  }\n  iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar18 = iVar7 / iVar3;\n  iVar7 = iVar7 % iVar3;\n  if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }\n  iVar7 = iVar18 * iVar4 + iVar7;\n  if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "double *pdVar5;" primitive_type (pointer_declarator "*pdVar5" * identifier) ;) (declaration "double *pdVar6;" primitive_type (pointer_declarator "*pdVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int extraout_v1;" primitive_type identifier ;) (declaration "int extraout_v1_00;" primitive_type identifier ;) (declaration "int extraout_v1_01;" primitive_type identifier ;) (declaration "int extraout_v1_02;" primitive_type identifier ;) (declaration "int extraout_v1_03;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "double *pdVar16;" primitive_type (pointer_declarator "*pdVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int iVar26;" primitive_type identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "ushort *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "undefined4 unaff_s5;" type_identifier identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "int unaff_s6;" primitive_type identifier ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "ushort *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "undefined *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "ushort *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "code *pcVar35;" type_identifier (pointer_declarator "*pcVar35" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "double dVar37;" primitive_type identifier ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "int iVar39;" primitive_type identifier ;) (declaration "undefined8 uVar40;" type_identifier identifier ;) (declaration "int iStack_188;" primitive_type identifier ;) (declaration "int iStack_118;" primitive_type identifier ;) (declaration "uint uStack_110;" type_identifier identifier ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "short sStack_f2;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort *puStack_f0;" type_identifier (pointer_declarator "*puStack_f0" * identifier) ;) (declaration "undefined *puStack_ec;" type_identifier (pointer_declarator "*puStack_ec" * identifier) ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "int iStack_e4;" primitive_type identifier ;) (declaration "int iStack_e0;" primitive_type identifier ;) (declaration "int iStack_dc;" primitive_type identifier ;) (declaration "int iStack_d8;" primitive_type identifier ;) (declaration "double *pdStack_d4;" primitive_type (pointer_declarator "*pdStack_d4" * identifier) ;) (declaration "ushort *puStack_d0;" type_identifier (pointer_declarator "*puStack_d0" * identifier) ;) (declaration "int iStack_cc;" primitive_type identifier ;) (declaration "int iStack_c8;" primitive_type identifier ;) (declaration "ushort *puStack_c4;" type_identifier (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "ushort *puStack_c0;" type_identifier (pointer_declarator "*puStack_c0" * identifier) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "ushort *puStack_ac;" type_identifier (pointer_declarator "*puStack_ac" * identifier) ;) (declaration "undefined *puStack_a8;" type_identifier (pointer_declarator "*puStack_a8" * identifier) ;) (declaration "int iStack_a0;" primitive_type identifier ;) (declaration "int *piStack_9c;" primitive_type (pointer_declarator "*piStack_9c" * identifier) ;) (declaration "ushort uStack_98;" type_identifier identifier ;) (declaration "ushort uStack_96;" type_identifier identifier ;) (declaration "int iStack_94;" primitive_type identifier ;) (declaration "int iStack_90;" primitive_type identifier ;) (declaration "undefined *puStack_8c;" type_identifier (pointer_declarator "*puStack_8c" * identifier) ;) (declaration "int iStack_88;" primitive_type identifier ;) (declaration "double *pdStack_84;" primitive_type (pointer_declarator "*pdStack_84" * identifier) ;) (declaration "ushort *puStack_80;" type_identifier (pointer_declarator "*puStack_80" * identifier) ;) (declaration "undefined4 uStack_7c;" type_identifier identifier ;) (declaration "int iStack_78;" primitive_type identifier ;) (declaration "ushort *puStack_74;" type_identifier (pointer_declarator "*puStack_74" * identifier) ;) (declaration "ushort *puStack_70;" type_identifier (pointer_declarator "*puStack_70" * identifier) ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "ushort local_36;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" identifier = identifier) ;) (expression_statement "local_34 = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_34 = *(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 "puVar34 = *(ushort **)(param_1 + 1);" (assignment_expression "puVar34 = *(ushort **)(param_1 + 1)" identifier = (pointer_expression "*(ushort **)(param_1 + 1)" * (cast_expression "(ushort **)(param_1 + 1)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 1)" ( (binary_expression "param_1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pdVar16 = param_1;" (assignment_expression "pdVar16 = param_1" identifier = identifier) ;) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)()" identifier = (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" ( (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" * (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)()" identifier = (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" ( (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" * (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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 "iVar38 = *(int *)(puVar34 + 0xe) / iVar3;" (assignment_expression "iVar38 = *(int *)(puVar34 + 0xe) / iVar3" identifier = (binary_expression "*(int *)(puVar34 + 0xe) / iVar3" (pointer_expression "*(int *)(puVar34 + 0xe)" * (cast_expression "(int *)(puVar34 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xe)" ( (binary_expression "puVar34 + 0xe" identifier + number_literal) )))) / identifier)) ;) (expression_statement "iVar3 = *(int *)(puVar34 + 0xe) % iVar3;" (assignment_expression "iVar3 = *(int *)(puVar34 + 0xe) % iVar3" identifier = (binary_expression "*(int *)(puVar34 + 0xe) % iVar3" (pointer_expression "*(int *)(puVar34 + 0xe)" * (cast_expression "(int *)(puVar34 + 0xe)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xe)" ( (binary_expression "puVar34 + 0xe" identifier + number_literal) )))) % identifier)) ;) (if_statement "if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar3)" ( (binary_expression "iVar4 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = iVar38 * iVar4 + iVar3;" (assignment_expression "iVar3 = iVar38 * iVar4 + iVar3" identifier = (binary_expression "iVar38 * iVar4 + iVar3" (binary_expression "iVar38 * iVar4" identifier * identifier) + identifier)) ;) (expression_statement "iVar38 = iVar38 + iVar3;" (assignment_expression "iVar38 = iVar38 + iVar3" identifier = (binary_expression "iVar38 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar38)" ( (binary_expression "iVar3 < iVar38" identifier < identifier) )) (compound_statement "{\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }" { (expression_statement "pdVar5 = *(double **)((int)param_1 + 0x14);" (assignment_expression "pdVar5 = *(double **)((int)param_1 + 0x14)" identifier = (pointer_expression "*(double **)((int)param_1 + 0x14)" * (cast_expression "(double **)((int)param_1 + 0x14)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)param_1 + 0x14)" ( (binary_expression "(int)param_1 + 0x14" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "unaff_s5 = 8;" (assignment_expression "unaff_s5 = 8" identifier = number_literal) ;) (expression_statement "dVar37 = *param_1;" (assignment_expression "dVar37 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "unaff_s4 = &local_36;" (assignment_expression "unaff_s4 = &local_36" identifier = (pointer_expression "&local_36" & identifier)) ;) (expression_statement "pdVar6 = *(double **)(param_1 + 2);" (assignment_expression "pdVar6 = *(double **)(param_1 + 2)" identifier = (pointer_expression "*(double **)(param_1 + 2)" * (cast_expression "(double **)(param_1 + 2)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 2)" ( (binary_expression "param_1 + 2" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = *(int *)((int)param_1 + 0xc);" (assignment_expression "iVar4 = *(int *)((int)param_1 + 0xc)" identifier = (pointer_expression "*(int *)((int)param_1 + 0xc)" * (cast_expression "(int *)((int)param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0xc)" ( (binary_expression "(int)param_1 + 0xc" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);" do (compound_statement "{\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    }" { (while_statement "while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }" while (parenthesized_expression "(*(int *)((int)param_1 + 0x1c) == 0)" ( (binary_expression "*(int *)((int)param_1 + 0x1c) == 0" (pointer_expression "*(int *)((int)param_1 + 0x1c)" * (cast_expression "(int *)((int)param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x1c)" ( (binary_expression "(int)param_1 + 0x1c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }" { (labeled_statement "LAB_001a1798:\n        iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) (if_statement "if (iVar38 == iVar3) goto LAB_001a17a4;" if (parenthesized_expression "(iVar38 == iVar3)" ( (binary_expression "iVar38 == iVar3" identifier == identifier) )) (goto_statement "goto LAB_001a17a4;" goto statement_identifier ;)) })) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" identifier = number_literal) ;) (expression_statement "param_4 = *(ushort **)(puVar34 + 0xc);" (assignment_expression "param_4 = *(ushort **)(puVar34 + 0xc)" identifier = (pointer_expression "*(ushort **)(puVar34 + 0xc)" * (cast_expression "(ushort **)(puVar34 + 0xc)" ( (type_descriptor "ushort **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar34 + 0xc)" ( (binary_expression "puVar34 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" identifier = number_literal) ;) (expression_statement "pdVar16 = pdVar6;" (assignment_expression "pdVar16 = pdVar6" identifier = identifier) ;) (expression_statement "param_3 = iVar3;" (assignment_expression "param_3 = iVar3" identifier = identifier) ;) (expression_statement "local_54 = iVar4;" (assignment_expression "local_54 = iVar4" identifier = identifier) ;) (expression_statement "unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();" (assignment_expression "unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)()" identifier = (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)()" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)" ( (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003a965c" * (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003a965c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }" if (parenthesized_expression "(unaff_s6 != 0)" ( (binary_expression "unaff_s6 != 0" identifier != number_literal) )) (compound_statement "{\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }" { (expression_statement "param_2 = *(int *)(puVar34 + 0xc);" (assignment_expression "param_2 = *(int *)(puVar34 + 0xc)" identifier = (pointer_expression "*(int *)(puVar34 + 0xc)" * (cast_expression "(int *)(puVar34 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xc)" ( (binary_expression "puVar34 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar21 = param_2 + 7;" (assignment_expression "iVar21 = param_2 + 7" identifier = (binary_expression "param_2 + 7" identifier + number_literal)) ;) (if_statement "if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }" if (parenthesized_expression "(iVar21 < 0)" ( (binary_expression "iVar21 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar21 = param_2 + 0xe;\n        }" { (expression_statement "iVar21 = param_2 + 0xe;" (assignment_expression "iVar21 = param_2 + 0xe" identifier = (binary_expression "param_2 + 0xe" identifier + number_literal)) ;) })) (expression_statement "iVar21 = iVar21 >> 3;" (assignment_expression "iVar21 = iVar21 >> 3" identifier = (binary_expression "iVar21 >> 3" identifier >> number_literal)) ;) (if_statement "if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }" if (parenthesized_expression "(0 < param_2)" ( (binary_expression "0 < param_2" number_literal < identifier) )) (compound_statement "{\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }" { (expression_statement "unaff_s7 = (ushort *)0x0;" (assignment_expression "unaff_s7 = (ushort *)0x0" identifier = (cast_expression "(ushort *)0x0" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);" do (compound_statement "{\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          }" { (expression_statement "iVar18 = *(int *)(puVar34 + 0x168);" (assignment_expression "iVar18 = *(int *)(puVar34 + 0x168)" identifier = (pointer_expression "*(int *)(puVar34 + 0x168)" * (cast_expression "(int *)(puVar34 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x168)" ( (binary_expression "puVar34 + 0x168" identifier + number_literal) ))))) ;) (expression_statement "pdVar16 = (double *)((int)pdVar16 << 1);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 << 1)" identifier = (cast_expression "(double *)((int)pdVar16 << 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 << 1)" ( (binary_expression "(int)pdVar16 << 1" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }" if (parenthesized_expression "((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37))" ( (binary_expression "(((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)" (parenthesized_expression "(((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37))" ( (binary_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)" (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37)" ( (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4)" * (cast_expression "(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + *(int *)(iVar18 + 8) * 4)" ( (binary_expression "unaff_s6 + *(int *)(iVar18 + 8) * 4" identifier + (binary_expression "*(int *)(iVar18 + 8) * 4" (pointer_expression "*(int *)(iVar18 + 8)" * (cast_expression "(int *)(iVar18 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) * number_literal)) ))))) < identifier) )) || (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)" ( (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" * (cast_expression "(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" ( (binary_expression "unaff_s6 + *(int *)(iVar18 + 0x14) * 4" identifier + (binary_expression "*(int *)(iVar18 + 0x14) * 4" (pointer_expression "*(int *)(iVar18 + 0x14)" * (cast_expression "(int *)(iVar18 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x14)" ( (binary_expression "iVar18 + 0x14" identifier + number_literal) )))) * number_literal)) ))))) < identifier) ))) )) || (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)" ( (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" * (cast_expression "(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" ( (binary_expression "unaff_s6 + *(int *)(iVar18 + 0x20) * 4" identifier + (binary_expression "*(int *)(iVar18 + 0x20) * 4" (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) * number_literal)) ))))) < identifier) ))) )) (compound_statement "{\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }" { (expression_statement "pdVar16 = (double *)((uint)pdVar16 | 1);" (assignment_expression "pdVar16 = (double *)((uint)pdVar16 | 1)" identifier = (cast_expression "(double *)((uint)pdVar16 | 1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pdVar16 | 1)" ( (binary_expression "(uint)pdVar16 | 1" (cast_expression "(uint)pdVar16" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) )))) ;) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }" if (parenthesized_expression "(iVar7 == 8)" ( (binary_expression "iVar7 == 8" identifier == number_literal) )) (compound_statement "{\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }" { (expression_statement "iVar21 = iVar21 + -1;" (assignment_expression "iVar21 = iVar21 + -1" identifier = (binary_expression "iVar21 + -1" identifier + number_literal)) ;) (expression_statement "local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);" (assignment_expression "local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" identifier = (pointer_expression "*(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" * (cast_expression "(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" ( (binary_expression "*(int *)(param_1 + 3) + (int)pdVar16 * 2" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) + (binary_expression "(int)pdVar16 * 2" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "param_4 = unaff_s4;" (assignment_expression "param_4 = unaff_s4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);" (call_expression "(*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3)" (parenthesized_expression "(*(code *)PTR_SetMatrixElement_003a96a4)" ( (pointer_expression "*(code *)PTR_SetMatrixElement_003a96a4" * (cast_expression "(code *)PTR_SetMatrixElement_003a96a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pdVar5,iVar21,iVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "param_2 = *(int *)(puVar34 + 0xc);" (assignment_expression "param_2 = *(int *)(puVar34 + 0xc)" identifier = (pointer_expression "*(int *)(puVar34 + 0xc)" * (cast_expression "(int *)(puVar34 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0xc)" ( (binary_expression "puVar34 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "unaff_s7 = (ushort *)((int)unaff_s7 + 1);" (assignment_expression "unaff_s7 = (ushort *)((int)unaff_s7 + 1)" identifier = (cast_expression "(ushort *)((int)unaff_s7 + 1)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s7 + 1)" ( (binary_expression "(int)unaff_s7 + 1" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;" (assignment_expression "unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4" identifier = (binary_expression "unaff_s6 + *(int *)(puVar34 + 0x160) * 4" identifier + (binary_expression "*(int *)(puVar34 + 0x160) * 4" (pointer_expression "*(int *)(puVar34 + 0x160)" * (cast_expression "(int *)(puVar34 + 0x160)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar34 + 0x160)" ( (binary_expression "puVar34 + 0x160" identifier + number_literal) )))) * number_literal))) ;) }) while (parenthesized_expression "((int)unaff_s7 < param_2)" ( (binary_expression "(int)unaff_s7 < param_2" (cast_expression "(int)unaff_s7" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }" { (expression_statement "param_2 = iVar21 + -1;" (assignment_expression "param_2 = iVar21 + -1" identifier = (binary_expression "iVar21 + -1" identifier + number_literal)) ;) (expression_statement "local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);" (assignment_expression "local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" identifier = (pointer_expression "*(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" * (cast_expression "(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" ( (binary_expression "*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2" (pointer_expression "*(int *)(param_1 + 3)" * (cast_expression "(int *)(param_1 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 3)" ( (binary_expression "param_1 + 3" identifier + number_literal) )))) + (binary_expression "((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2" (parenthesized_expression "((int)pdVar16 << (8U - iVar7 & 0x1f))" ( (binary_expression "(int)pdVar16 << (8U - iVar7 & 0x1f)" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) << (parenthesized_expression "(8U - iVar7 & 0x1f)" ( (binary_expression "8U - iVar7 & 0x1f" (binary_expression "8U - iVar7" number_literal - identifier) & number_literal) ))) )) * number_literal)) ))))) ;) (expression_statement "pdVar16 = pdVar5;" (assignment_expression "pdVar16 = pdVar5" identifier = identifier) ;) (expression_statement "param_3 = iVar3;" (assignment_expression "param_3 = iVar3" identifier = identifier) ;) (expression_statement "param_4 = unaff_s4;" (assignment_expression "param_4 = unaff_s4" identifier = identifier) ;) (expression_statement "(*(code *)PTR_SetMatrixElement_003a96a4)();" (call_expression "(*(code *)PTR_SetMatrixElement_003a96a4)()" (parenthesized_expression "(*(code *)PTR_SetMatrixElement_003a96a4)" ( (pointer_expression "*(code *)PTR_SetMatrixElement_003a96a4" * (cast_expression "(code *)PTR_SetMatrixElement_003a96a4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) })) (goto_statement "goto LAB_001a1798;" goto statement_identifier ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)((int)param_1 + 0x1c) = 0;" (assignment_expression "*(int *)((int)param_1 + 0x1c) = 0" (pointer_expression "*(int *)((int)param_1 + 0x1c)" * (cast_expression "(int *)((int)param_1 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x1c)" ( (binary_expression "(int)param_1 + 0x1c" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) }) while (parenthesized_expression "(iVar38 != iVar3)" ( (binary_expression "iVar38 != iVar3" identifier != identifier) )) ;) })) (labeled_statement "LAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }" statement_identifier : (if_statement "if (local_34 == *(int *)puVar2) {\n    return;\n  }" if (parenthesized_expression "(local_34 == *(int *)puVar2)" ( (binary_expression "local_34 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar35 = FUN_001a185c;" (assignment_expression "pcVar35 = FUN_001a185c" identifier = identifier) ;) (expression_statement "puVar32 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar32 = PTR___stack_chk_fail_003a9064" identifier = 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 "puStack_a8 = puVar32 + 0x20f054;" (assignment_expression "puStack_a8 = puVar32 + 0x20f054" identifier = (binary_expression "puVar32 + 0x20f054" identifier + number_literal)) ;) (expression_statement "piStack_9c = *(int **)(puVar32 + 0x2079d4);" (assignment_expression "piStack_9c = *(int **)(puVar32 + 0x2079d4)" identifier = (pointer_expression "*(int **)(puVar32 + 0x2079d4)" * (cast_expression "(int **)(puVar32 + 0x2079d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x2079d4)" ( (binary_expression "puVar32 + 0x2079d4" identifier + number_literal) ))))) ;) (expression_statement "puStack_8c = puVar2;" (assignment_expression "puStack_8c = puVar2" identifier = identifier) ;) (expression_statement "iStack_94 = *piStack_9c;" (assignment_expression "iStack_94 = *piStack_9c" identifier = (pointer_expression "*piStack_9c" * identifier)) ;) (expression_statement "iVar18 = *(int *)(pdVar16 + 1);" (assignment_expression "iVar18 = *(int *)(pdVar16 + 1)" identifier = (pointer_expression "*(int *)(pdVar16 + 1)" * (cast_expression "(int *)(pdVar16 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar16 + 1)" ( (binary_expression "pdVar16 + 1" identifier + number_literal) ))))) ;) (expression_statement "iStack_a0 = *(int *)((int)pdVar16 + 4);" (assignment_expression "iStack_a0 = *(int *)((int)pdVar16 + 4)" identifier = (pointer_expression "*(int *)((int)pdVar16 + 4)" * (cast_expression "(int *)((int)pdVar16 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar16 + 4)" ( (binary_expression "(int)pdVar16 + 4" (cast_expression "(int)pdVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar30 = *(int *)pdVar16;" (assignment_expression "iVar30 = *(int *)pdVar16" identifier = (pointer_expression "*(int *)pdVar16" * (cast_expression "(int *)pdVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar4 = iVar18;" (assignment_expression "iVar4 = iVar18" identifier = identifier) ;) (expression_statement "iStack_90 = iVar38;" (assignment_expression "iStack_90 = iVar38" identifier = identifier) ;) (expression_statement "iStack_88 = iVar3;" (assignment_expression "iStack_88 = iVar3" identifier = identifier) ;) (expression_statement "pdStack_84 = param_1;" (assignment_expression "pdStack_84 = param_1" identifier = identifier) ;) (expression_statement "puStack_80 = unaff_s4;" (assignment_expression "puStack_80 = unaff_s4" identifier = identifier) ;) (expression_statement "uStack_7c = unaff_s5;" (assignment_expression "uStack_7c = unaff_s5" identifier = identifier) ;) (expression_statement "iStack_78 = unaff_s6;" (assignment_expression "iStack_78 = unaff_s6" identifier = identifier) ;) (expression_statement "puStack_74 = unaff_s7;" (assignment_expression "puStack_74 = unaff_s7" identifier = identifier) ;) (expression_statement "puStack_70 = puVar34;" (assignment_expression "puStack_70 = puVar34" identifier = identifier) ;) (expression_statement "pcStack_6c = pcVar35;" (assignment_expression "pcStack_6c = pcVar35" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(puVar32 + 0x2076dc))();" (assignment_expression "iVar3 = (**(code **)(puVar32 + 0x2076dc))()" identifier = (call_expression "(**(code **)(puVar32 + 0x2076dc))()" (parenthesized_expression "(**(code **)(puVar32 + 0x2076dc))" ( (pointer_expression "**(code **)(puVar32 + 0x2076dc)" * (pointer_expression "*(code **)(puVar32 + 0x2076dc)" * (cast_expression "(code **)(puVar32 + 0x2076dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar32 + 0x2076dc)" ( (binary_expression "puVar32 + 0x2076dc" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();" (assignment_expression "iVar21 = (**(code **)(puStack_a8 + -0x6fa4))()" identifier = (call_expression "(**(code **)(puStack_a8 + -0x6fa4))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x6fa4))" ( (pointer_expression "**(code **)(puStack_a8 + -0x6fa4)" * (pointer_expression "*(code **)(puStack_a8 + -0x6fa4)" * (cast_expression "(code **)(puStack_a8 + -0x6fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x6fa4)" ( (binary_expression "puStack_a8 + -0x6fa4" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = (**(code **)(puStack_a8 + -0x73a8))();" (assignment_expression "iVar7 = (**(code **)(puStack_a8 + -0x73a8))()" identifier = (call_expression "(**(code **)(puStack_a8 + -0x73a8))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x73a8))" ( (pointer_expression "**(code **)(puStack_a8 + -0x73a8)" * (pointer_expression "*(code **)(puStack_a8 + -0x73a8)" * (cast_expression "(code **)(puStack_a8 + -0x73a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x73a8)" ( (binary_expression "puStack_a8 + -0x73a8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar21 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 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 "iVar39 = iVar3 / iVar21;" (assignment_expression "iVar39 = iVar3 / iVar21" identifier = (binary_expression "iVar3 / iVar21" identifier / identifier)) ;) (expression_statement "iVar3 = iVar3 % iVar21;" (assignment_expression "iVar3 = iVar3 % iVar21" identifier = (binary_expression "iVar3 % iVar21" identifier % identifier)) ;) (if_statement "if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }" if (parenthesized_expression "(iVar7 < iVar3)" ( (binary_expression "iVar7 < iVar3" identifier < identifier) )) (compound_statement "{\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }" { (expression_statement "iVar39 = iVar39 + 1;" (assignment_expression "iVar39 = iVar39 + 1" identifier = (binary_expression "iVar39 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) (expression_statement "iVar3 = iVar39 * iVar7 + iVar3;" (assignment_expression "iVar3 = iVar39 * iVar7 + iVar3" identifier = (binary_expression "iVar39 * iVar7 + iVar3" (binary_expression "iVar39 * iVar7" identifier * identifier) + identifier)) ;) (expression_statement "iVar39 = iVar39 + iVar3;" (assignment_expression "iVar39 = iVar39 + iVar3" identifier = (binary_expression "iVar39 + iVar3" identifier + identifier)) ;) (if_statement "if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }" if (parenthesized_expression "(iVar3 < iVar39)" ( (binary_expression "iVar3 < iVar39" identifier < identifier) )) (compound_statement "{\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }" { (expression_statement "unaff_s7 = &uStack_98;" (assignment_expression "unaff_s7 = &uStack_98" identifier = (pointer_expression "&uStack_98" & identifier)) ;) (expression_statement "puVar34 = &uStack_96;" (assignment_expression "puVar34 = &uStack_96" identifier = (pointer_expression "&uStack_96" & identifier)) ;) (expression_statement "unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);" (assignment_expression "unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff)" identifier = (cast_expression "(ushort *)(iVar30 * iVar3 + 0x3fffffff)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar30 * iVar3 + 0x3fffffff)" ( (binary_expression "iVar30 * iVar3 + 0x3fffffff" (binary_expression "iVar30 * iVar3" identifier * identifier) + number_literal) )))) ;) (do_statement "do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);" do (compound_statement "{\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    }" { (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" identifier = number_literal) ;) (expression_statement "param_1 = (double *)0x0;" (assignment_expression "param_1 = (double *)0x0" identifier = (cast_expression "(double *)0x0" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }" while (parenthesized_expression "(iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1)" ( (comma_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7288))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7288))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7288)" * (pointer_expression "*(code **)(puStack_a8 + -0x7288)" * (cast_expression "(code **)(puStack_a8 + -0x7288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7288)" ( (binary_expression "puStack_a8 + -0x7288" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier )))) , (binary_expression "iVar38 < iVar4 + -1" identifier < (binary_expression "iVar4 + -1" identifier + number_literal))) )) (compound_statement "{\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }" { (while_statement "while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }" { (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" identifier = identifier) ;) (expression_statement "param_3 = iVar38;" (assignment_expression "param_3 = iVar38" identifier = identifier) ;) (expression_statement "param_4 = unaff_s7;" (assignment_expression "param_4 = unaff_s7" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7644))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7644))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7644)" * (pointer_expression "*(code **)(puStack_a8 + -0x7644)" * (cast_expression "(code **)(puStack_a8 + -0x7644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7644)" ( (binary_expression "puStack_a8 + -0x7644" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier )))) ;) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (if_statement "if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;" if (parenthesized_expression "((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)" ( (comma_expression "param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "param_2 = iVar3" identifier = identifier) , (comma_expression "param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "param_3 = iVar38" identifier = identifier) , (comma_expression "param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "param_4 = puVar34" identifier = identifier) , (comma_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7644))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7644))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7644)" * (pointer_expression "*(code **)(puStack_a8 + -0x7644)" * (cast_expression "(code **)(puStack_a8 + -0x7644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7644)" ( (binary_expression "puStack_a8 + -0x7644" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier )))) , (binary_expression "iVar4 == 0" identifier == number_literal))))) ))) )) (break_statement "break;" break ;)) (expression_statement "param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);" (assignment_expression "param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1)" identifier = (cast_expression "(double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1)" ( (binary_expression "((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1" (binary_expression "((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)" (parenthesized_expression "((uint)uStack_98 - (uint)uStack_96)" ( (binary_expression "(uint)uStack_98 - (uint)uStack_96" (cast_expression "(uint)uStack_98" ( (type_descriptor "uint" type_identifier) ) identifier) - (cast_expression "(uint)uStack_96" ( (type_descriptor "uint" type_identifier) ) identifier)) )) * (parenthesized_expression "((uint)uStack_98 - (uint)uStack_96)" ( (binary_expression "(uint)uStack_98 - (uint)uStack_96" (cast_expression "(uint)uStack_98" ( (type_descriptor "uint" type_identifier) ) identifier) - (cast_expression "(uint)uStack_96" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) + (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18)" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7288))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7288))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7288)" * (pointer_expression "*(code **)(puStack_a8 + -0x7288)" * (cast_expression "(code **)(puStack_a8 + -0x7288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7288)" ( (binary_expression "puStack_a8 + -0x7288" identifier + number_literal) ))))) )) (argument_list "(iVar18)" ( identifier )))) ;) (if_statement "if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;" if (parenthesized_expression "(iVar4 + -1 <= iVar38)" ( (binary_expression "iVar4 + -1 <= iVar38" (binary_expression "iVar4 + -1" identifier + number_literal) <= identifier) )) (goto_statement "goto LAB_001a19d0;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_001a19d0:\n      iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) (expression_statement "iVar4 = iVar18;" (assignment_expression "iVar4 = iVar18" identifier = identifier) ;) (expression_statement "iVar21 = (**(code **)(puStack_a8 + -0x7978))();" (assignment_expression "iVar21 = (**(code **)(puStack_a8 + -0x7978))()" identifier = (call_expression "(**(code **)(puStack_a8 + -0x7978))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7978))" ( (pointer_expression "**(code **)(puStack_a8 + -0x7978)" * (pointer_expression "*(code **)(puStack_a8 + -0x7978)" * (cast_expression "(code **)(puStack_a8 + -0x7978)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x7978)" ( (binary_expression "puStack_a8 + -0x7978" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar21 = (int)unaff_s4 + iVar21;" (assignment_expression "iVar21 = (int)unaff_s4 + iVar21" identifier = (binary_expression "(int)unaff_s4 + iVar21" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);" (assignment_expression "unaff_s4 = (ushort *)((int)unaff_s4 + iVar30)" identifier = (cast_expression "(ushort *)((int)unaff_s4 + iVar30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + iVar30)" ( (binary_expression "(int)unaff_s4 + iVar30" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*(double **)(iStack_a0 + iVar21 * 4) = param_1;" (assignment_expression "*(double **)(iStack_a0 + iVar21 * 4) = param_1" (pointer_expression "*(double **)(iStack_a0 + iVar21 * 4)" * (cast_expression "(double **)(iStack_a0 + iVar21 * 4)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iStack_a0 + iVar21 * 4)" ( (binary_expression "iStack_a0 + iVar21 * 4" identifier + (binary_expression "iVar21 * 4" identifier * number_literal)) )))) = identifier) ;) }) while (parenthesized_expression "(iVar39 != iVar3)" ( (binary_expression "iVar39 != iVar3" identifier != identifier) )) ;) })) (if_statement "if (iStack_94 == *piStack_9c) {\n    return;\n  }" if (parenthesized_expression "(iStack_94 == *piStack_9c)" ( (binary_expression "iStack_94 == *piStack_9c" identifier == (pointer_expression "*piStack_9c" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(puStack_a8 + -0x784c);" (assignment_expression "pcVar35 = *(code **)(puStack_a8 + -0x784c)" identifier = (pointer_expression "*(code **)(puStack_a8 + -0x784c)" * (cast_expression "(code **)(puStack_a8 + -0x784c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_a8 + -0x784c)" ( (binary_expression "puStack_a8 + -0x784c" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = FUN_001a1a4c;" (assignment_expression "pcVar36 = FUN_001a1a4c" identifier = identifier) ;) (expression_statement "(*pcVar35)();" (call_expression "(*pcVar35)()" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = puStack_a8;" (assignment_expression "puVar2 = puStack_a8" identifier = identifier) ;) (expression_statement "piVar8 = *(int **)(pcVar35 + 0x2077e4);" (assignment_expression "piVar8 = *(int **)(pcVar35 + 0x2077e4)" identifier = (pointer_expression "*(int **)(pcVar35 + 0x2077e4)" * (cast_expression "(int **)(pcVar35 + 0x2077e4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2077e4)" ( (binary_expression "pcVar35 + 0x2077e4" identifier + number_literal) ))))) ;) (expression_statement "uStack_110 = 1;" (assignment_expression "uStack_110 = 1" identifier = number_literal) ;) (expression_statement "iStack_e4 = *piVar8;" (assignment_expression "iStack_e4 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "iStack_e0 = iVar38;" (assignment_expression "iStack_e0 = iVar38" identifier = identifier) ;) (expression_statement "iStack_dc = iVar18;" (assignment_expression "iStack_dc = iVar18" identifier = identifier) ;) (expression_statement "iStack_d8 = iVar3;" (assignment_expression "iStack_d8 = iVar3" identifier = identifier) ;) (expression_statement "pdStack_d4 = param_1;" (assignment_expression "pdStack_d4 = param_1" identifier = identifier) ;) (expression_statement "puStack_d0 = unaff_s4;" (assignment_expression "puStack_d0 = unaff_s4" identifier = identifier) ;) (expression_statement "iStack_cc = iVar39;" (assignment_expression "iStack_cc = iVar39" identifier = identifier) ;) (expression_statement "iStack_c8 = iVar30;" (assignment_expression "iStack_c8 = iVar30" identifier = identifier) ;) (expression_statement "puStack_c4 = unaff_s7;" (assignment_expression "puStack_c4 = unaff_s7" identifier = identifier) ;) (expression_statement "puStack_c0 = puVar34;" (assignment_expression "puStack_c0 = puVar34" identifier = identifier) ;) (expression_statement "pcStack_bc = pcVar36;" (assignment_expression "pcStack_bc = pcVar36" identifier = identifier) ;) (expression_statement "puStack_ac = param_4;" (assignment_expression "puStack_ac = param_4" identifier = identifier) ;) (expression_statement "uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" identifier = identifier) ;) (if_statement "if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }" if (parenthesized_expression "(1 < uVar9)" ( (binary_expression "1 < uVar9" number_literal < identifier) )) (compound_statement "{\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }" { (do_statement "do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);" do (compound_statement "{\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    }" { (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" identifier = identifier) ;) (expression_statement "param_3 = iVar3;" (assignment_expression "param_3 = iVar3" identifier = identifier) ;) (expression_statement "uVar9 = uStack_110 * 2;" (assignment_expression "uVar9 = uStack_110 * 2" identifier = (binary_expression "uStack_110 * 2" identifier * number_literal)) ;) (expression_statement "iStack_10c = 0;" (assignment_expression "iStack_10c = 0" identifier = number_literal) ;) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (compound_statement "{\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }" { (do_statement "do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);" do (compound_statement "{\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        }" { (if_statement "if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }" if (parenthesized_expression "(0 < (int)uStack_110)" ( (binary_expression "0 < (int)uStack_110" number_literal < (cast_expression "(int)uStack_110" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }" { (expression_statement "iStack_118 = iStack_10c + 1;" (assignment_expression "iStack_118 = iStack_10c + 1" identifier = (binary_expression "iStack_10c + 1" identifier + number_literal)) ;) (expression_statement "iVar38 = iStack_10c + uStack_110;" (assignment_expression "iVar38 = iStack_10c + uStack_110" identifier = (binary_expression "iStack_10c + uStack_110" identifier + identifier)) ;) (expression_statement "iVar3 = iStack_10c;" (assignment_expression "iVar3 = iStack_10c" identifier = identifier) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);" do (compound_statement "{\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (expression_statement "iVar21 = iStack_118 + -1;" (assignment_expression "iVar21 = iStack_118 + -1" identifier = (binary_expression "iStack_118 + -1" identifier + number_literal)) ;) (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }" if (parenthesized_expression "(0 < (int)(iVar7 + ~uVar11))" ( (binary_expression "0 < (int)(iVar7 + ~uVar11)" number_literal < (cast_expression "(int)(iVar7 + ~uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 + ~uVar11)" ( (binary_expression "iVar7 + ~uVar11" identifier + (unary_expression "~uVar11" ~ identifier)) )))) )) (compound_statement "{\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }" { (do_statement "do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));" do (compound_statement "{\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                }" { (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar3,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) ;) (if_statement "if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }" if (parenthesized_expression "((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar38,uVar11 + iVar18,&puStack_f0)" ( identifier , identifier , (binary_expression "uVar11 + iVar18" identifier + identifier) , (pointer_expression "&puStack_f0" & identifier) )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }" { (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier = (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" identifier . field_identifier) + identifier) , (field_expression "puStack_f0._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iVar21,iVar18,&puStack_f0)" ( identifier , identifier , identifier , (pointer_expression "&puStack_f0" & identifier) )))) ;) (if_statement "if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }" if (parenthesized_expression "((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar38,uVar10 + iVar18,&puStack_f0)" ( identifier , identifier , (binary_expression "uVar10 + iVar18" identifier + identifier) , (pointer_expression "&puStack_f0" & identifier) )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }" { (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier = (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" identifier . field_identifier) + identifier) , (field_expression "puStack_f0._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);" (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iStack_118,iVar18,&puStack_f0)" ( identifier , identifier , identifier , (pointer_expression "&puStack_f0" & identifier) ))) ;) })) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar18 < (int)(iVar7 + ~uVar11))" ( (binary_expression "iVar18 < (int)(iVar7 + ~uVar11)" identifier < (cast_expression "(int)(iVar7 + ~uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 + ~uVar11)" ( (binary_expression "iVar7 + ~uVar11" identifier + (unary_expression "~uVar11" ~ identifier)) )))) )) ;) })) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }" if (parenthesized_expression "(iVar18 < (int)(iVar7 - uVar11))" ( (binary_expression "iVar18 < (int)(iVar7 - uVar11)" identifier < (cast_expression "(int)(iVar7 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 - uVar11)" ( (binary_expression "iVar7 - uVar11" identifier - identifier) )))) )) (compound_statement "{\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }" { (do_statement "do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));" do (compound_statement "{\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                }" { (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar3,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) ;) (if_statement "if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }" if (parenthesized_expression "((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar38,iVar18 + uVar11,&puStack_f0)" ( identifier , identifier , (binary_expression "iVar18 + uVar11" identifier + identifier) , (pointer_expression "&puStack_f0" & identifier) )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }" { (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier = (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" identifier (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" ( (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" identifier . field_identifier) + identifier) , (field_expression "puStack_f0._2_2_" identifier . field_identifier) ))))) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iVar21,iVar18,&puStack_f0)" ( identifier , identifier , identifier , (pointer_expression "&puStack_f0" & identifier) )))) ;) (if_statement "if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }" { (expression_statement "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);" (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iStack_118,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) ))) ;) })) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar18 < (int)(iVar7 - uVar11))" ( (binary_expression "iVar18 < (int)(iVar7 - uVar11)" identifier < (cast_expression "(int)(iVar7 - uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 - uVar11)" ( (binary_expression "iVar7 - uVar11" identifier - identifier) )))) )) ;) })) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }" if (parenthesized_expression "(iVar18 < iVar7)" ( (binary_expression "iVar18 < iVar7" identifier < identifier) )) (compound_statement "{\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }" { (do_statement "do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);" do (compound_statement "{\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                }" { (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" ( (pointer_expression "**(code **)(pcVar35 + 0x207820)" * (pointer_expression "*(code **)(pcVar35 + 0x207820)" * (cast_expression "(code **)(pcVar35 + 0x207820)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207820)" ( (binary_expression "pcVar35 + 0x207820" identifier + number_literal) ))))) )) (argument_list "(param_3,iVar3,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) ;) (if_statement "if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }" if (parenthesized_expression "((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0))" ( (binary_expression "(iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iVar21,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }" { (expression_statement "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);" (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" ( (pointer_expression "**(code **)(pcVar35 + 0x207c58)" * (pointer_expression "*(code **)(pcVar35 + 0x207c58)" * (cast_expression "(code **)(pcVar35 + 0x207c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207c58)" ( (binary_expression "pcVar35 + 0x207c58" identifier + number_literal) ))))) )) (argument_list "(param_2,iStack_118,iVar18,&sStack_f2)" ( identifier , identifier , identifier , (pointer_expression "&sStack_f2" & identifier) ))) ;) })) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" ( (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" * (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" * (cast_expression "(code **)(pcVar35 + 0x207bdc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207bdc)" ( (binary_expression "pcVar35 + 0x207bdc" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar18 < iVar7)" ( (binary_expression "iVar18 < iVar7" identifier < identifier) )) ;) })) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "iStack_118 = iStack_118 + 2;" (assignment_expression "iStack_118 = iStack_118 + 2" identifier = (binary_expression "iStack_118 + 2" identifier + number_literal)) ;) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" identifier = (binary_expression "iVar38 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) }) while (parenthesized_expression "(uStack_110 != uVar10)" ( (binary_expression "uStack_110 != uVar10" identifier != identifier) )) ;) })) (expression_statement "iStack_10c = iStack_10c + uVar9;" (assignment_expression "iStack_10c = iStack_10c + uVar9" identifier = (binary_expression "iStack_10c + uVar9" identifier + identifier)) ;) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_3)" ( identifier )))) ;) }) while (parenthesized_expression "(iStack_10c < iVar3)" ( (binary_expression "iStack_10c < iVar3" identifier < identifier) )) ;) })) (expression_statement "uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" identifier = identifier) ;) (expression_statement "uStack_110 = uVar9;" (assignment_expression "uStack_110 = uVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 < uVar11)" ( (binary_expression "uVar9 < uVar11" identifier < identifier) )) ;) })) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar35 + 0x207a68)" * (pointer_expression "*(code **)(pcVar35 + 0x207a68)" * (cast_expression "(code **)(pcVar35 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207a68)" ( (binary_expression "pcVar35 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) ;) (if_statement "if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }" if (parenthesized_expression "(((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3))))" ( (binary_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3))" ( (binary_expression "(iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) || (parenthesized_expression "(iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar35 + 0x207a68)" * (pointer_expression "*(code **)(pcVar35 + 0x207a68)" * (cast_expression "(code **)(pcVar35 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207a68)" ( (binary_expression "pcVar35 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))" ( (parenthesized_expression "(iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3))" ( (comma_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar35 + 0x207a68)" * (pointer_expression "*(code **)(pcVar35 + 0x207a68)" * (cast_expression "(code **)(pcVar35 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207a68)" ( (binary_expression "pcVar35 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) , (binary_expression "iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (binary_expression "iVar3 == 4" identifier == number_literal) || (parenthesized_expression "(iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" ( (comma_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" ( (pointer_expression "**(code **)(pcVar35 + 0x207a68)" * (pointer_expression "*(code **)(pcVar35 + 0x207a68)" * (cast_expression "(code **)(pcVar35 + 0x207a68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207a68)" ( (binary_expression "pcVar35 + 0x207a68" identifier + number_literal) ))))) )) (argument_list "(iVar4)" ( identifier )))) , (binary_expression "iVar3 == 3" identifier == number_literal)) )))) )) ))) )) (compound_statement "{\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }" { (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar3 = iVar3 + 0x3f;\n    }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (if_statement "if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }" if (parenthesized_expression "(extraout_v1 < iVar3 >> 6)" ( (binary_expression "extraout_v1 < iVar3 >> 6" identifier < (binary_expression "iVar3 >> 6" identifier >> number_literal)) )) (compound_statement "{\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }" { (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "bVar1 = extraout_v1_00 < 2;" (assignment_expression "bVar1 = extraout_v1_00 < 2" identifier = (binary_expression "extraout_v1_00 < 2" identifier < number_literal)) ;) }) (else_clause "else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }" { (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "bVar1 = iVar3 < 0x80;" (assignment_expression "bVar1 = iVar3 < 0x80" identifier = (binary_expression "iVar3 < 0x80" identifier < number_literal)) ;) }))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }" if (parenthesized_expression "((bool)(bVar1 ^ 1))" ( (cast_expression "(bool)(bVar1 ^ 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(bVar1 ^ 1)" ( (binary_expression "bVar1 ^ 1" identifier ^ number_literal) ))) )) (compound_statement "{\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }" { (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        iVar3 = iVar3 + 0x3f;\n      }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (if_statement "if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" if (parenthesized_expression "(extraout_v1_01 < iVar3 >> 6)" ( (binary_expression "extraout_v1_01 < iVar3 >> 6" identifier < (binary_expression "iVar3 >> 6" identifier >> number_literal)) )) (compound_statement "{\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }" { (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = extraout_v1_02;" (assignment_expression "iVar3 = extraout_v1_02" identifier = identifier) ;) }) (else_clause "else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" else (compound_statement "{\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" { (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" * (cast_expression "(code **)(pcVar35 + 0x2074ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ec)" ( (binary_expression "pcVar35 + 0x2074ec" identifier + number_literal) ))))) )) (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar3 = iVar3 + 0x3f;\n        }" { (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" identifier = (binary_expression "iVar3 + 0x3f" identifier + number_literal)) ;) })) (expression_statement "iVar3 = iVar3 >> 6;" (assignment_expression "iVar3 = iVar3 >> 6" identifier = (binary_expression "iVar3 >> 6" identifier >> number_literal)) ;) }))) })) (goto_statement "goto LAB_001a1e70;" goto statement_identifier ;) })) (expression_statement "uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);" (assignment_expression "uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7)" identifier = (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }" if (parenthesized_expression "((int)((ulonglong)uVar40 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar40 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar40 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar40 >> 0x20)" ( (binary_expression "(ulonglong)uVar40 >> 0x20" (cast_expression "(ulonglong)uVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) (compound_statement "{\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }" { (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x2076f0);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x2076f0)" identifier = (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }" if (parenthesized_expression "((uint)uVar40 < 2)" ( (binary_expression "(uint)uVar40 < 2" (cast_expression "(uint)uVar40" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }" { (expression_statement "uVar40 = (*pcVar36)(7);" (assignment_expression "uVar40 = (*pcVar36)(7)" identifier = (call_expression "(*pcVar36)(7)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;" if (parenthesized_expression "((int)((ulonglong)uVar40 >> 0x20) != 0)" ( (binary_expression "(int)((ulonglong)uVar40 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar40 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar40 >> 0x20)" ( (binary_expression "(ulonglong)uVar40 >> 0x20" (cast_expression "(ulonglong)uVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) )) (goto_statement "goto LAB_001a1e58;" goto statement_identifier ;)) (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x2076f0);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x2076f0)" identifier = (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) ;) (if_statement "if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }" if (parenthesized_expression "((uint)uVar40 < 2)" ( (binary_expression "(uint)uVar40 < 2" (cast_expression "(uint)uVar40" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_001a1e70;" goto statement_identifier ;) })) })) }) (else_clause "else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }" else (compound_statement "{\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }" { (labeled_statement "LAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);" statement_identifier : (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x2076f0);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x2076f0)" identifier = (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) ;)) }))) (expression_statement "uVar40 = (*pcVar36)(7);" (assignment_expression "uVar40 = (*pcVar36)(7)" identifier = (call_expression "(*pcVar36)(7)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(7)" ( number_literal )))) ;) (if_statement "if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }" if (parenthesized_expression "(((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2))" ( (binary_expression "((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)" (parenthesized_expression "((int)((ulonglong)uVar40 >> 0x20) == 0)" ( (binary_expression "(int)((ulonglong)uVar40 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar40 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar40 >> 0x20)" ( (binary_expression "(ulonglong)uVar40 >> 0x20" (cast_expression "(ulonglong)uVar40" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) == number_literal) )) && (parenthesized_expression "((uint)uVar40 < 2)" ( (binary_expression "(uint)uVar40 < 2" (cast_expression "(uint)uVar40" ( (type_descriptor "uint" type_identifier) ) identifier) < number_literal) ))) )) (compound_statement "{\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }" { (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" * (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" * (cast_expression "(code **)(pcVar35 + 0x2076f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2076f0)" ( (binary_expression "pcVar35 + 0x2076f0" identifier + number_literal) ))))) )) (argument_list "(7)" ( number_literal ))) ;) (expression_statement "iVar3 = extraout_v1_03;" (assignment_expression "iVar3 = extraout_v1_03" identifier = identifier) ;) }) (else_clause "else {\n    iVar3 = 2;\n  }" else (compound_statement "{\n    iVar3 = 2;\n  }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) }))) (labeled_statement "LAB_001a1e70:\n  puStack_ec = puVar2;" statement_identifier : (expression_statement "puStack_ec = puVar2;" (assignment_expression "puStack_ec = puVar2" identifier = identifier) ;)) (expression_statement "piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);" (assignment_expression "piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c)" identifier = (cast_expression "(int *)(*(int *)(pcVar35 + 0x207140) + 0x185c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar35 + 0x207140) + 0x185c)" ( (binary_expression "*(int *)(pcVar35 + 0x207140) + 0x185c" (pointer_expression "*(int *)(pcVar35 + 0x207140)" * (cast_expression "(int *)(pcVar35 + 0x207140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + 0x207140)" ( (binary_expression "pcVar35 + 0x207140" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "puStack_f0 = puStack_ac;" (assignment_expression "puStack_f0 = puStack_ac" identifier = identifier) ;) (expression_statement "iStack_e8 = param_2;" (assignment_expression "iStack_e8 = param_2" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);" (call_expression "(**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x20774c))" ( (pointer_expression "**(code **)(pcVar35 + 0x20774c)" * (pointer_expression "*(code **)(pcVar35 + 0x20774c)" * (cast_expression "(code **)(pcVar35 + 0x20774c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x20774c)" ( (binary_expression "pcVar35 + 0x20774c" identifier + number_literal) ))))) )) (argument_list "(piVar17,&puStack_f0,iVar3,0)" ( identifier , (pointer_expression "&puStack_f0" & identifier) , identifier , number_literal ))) ;) (if_statement "if (iStack_e4 == *piVar8) {\n    return;\n  }" if (parenthesized_expression "(iStack_e4 == *piVar8)" ( (binary_expression "iStack_e4 == *piVar8" identifier == (pointer_expression "*piVar8" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar35 = *(code **)(pcVar35 + 0x207618);" (assignment_expression "pcVar35 = *(code **)(pcVar35 + 0x207618)" identifier = (pointer_expression "*(code **)(pcVar35 + 0x207618)" * (cast_expression "(code **)(pcVar35 + 0x207618)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207618)" ( (binary_expression "pcVar35 + 0x207618" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar35)();" (call_expression "(*pcVar35)()" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar38 = *(int *)piVar17[7];" (assignment_expression "iVar38 = *(int *)piVar17[7]" identifier = (pointer_expression "*(int *)piVar17[7]" * (cast_expression "(int *)piVar17[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[7]" identifier [ number_literal ])))) ;) (expression_statement "iVar21 = piVar17[2];" (assignment_expression "iVar21 = piVar17[2]" identifier = (subscript_expression "piVar17[2]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2078b0))();" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2078b0))()" identifier = (call_expression "(**(code **)(pcVar35 + 0x2078b0))()" (parenthesized_expression "(**(code **)(pcVar35 + 0x2078b0))" ( (pointer_expression "**(code **)(pcVar35 + 0x2078b0)" * (pointer_expression "*(code **)(pcVar35 + 0x2078b0)" * (cast_expression "(code **)(pcVar35 + 0x2078b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2078b0)" ( (binary_expression "pcVar35 + 0x2078b0" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iVar4 = (**(code **)(pcVar35 + 0x2074ac))();" (assignment_expression "iVar4 = (**(code **)(pcVar35 + 0x2074ac))()" identifier = (call_expression "(**(code **)(pcVar35 + 0x2074ac))()" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ac))" ( (pointer_expression "**(code **)(pcVar35 + 0x2074ac)" * (pointer_expression "*(code **)(pcVar35 + 0x2074ac)" * (cast_expression "(code **)(pcVar35 + 0x2074ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x2074ac)" ( (binary_expression "pcVar35 + 0x2074ac" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar38 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 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 "iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;" (assignment_expression "iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38" identifier = (binary_expression "(iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38" (parenthesized_expression "(iVar38 + -1 + *(int *)(iVar21 + 0x1c))" ( (binary_expression "iVar38 + -1 + *(int *)(iVar21 + 0x1c)" (binary_expression "iVar38 + -1" identifier + number_literal) + (pointer_expression "*(int *)(iVar21 + 0x1c)" * (cast_expression "(int *)(iVar21 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) ))))) )) / identifier)) ;) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 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 "iVar18 = iVar7 / iVar3;" (assignment_expression "iVar18 = iVar7 / iVar3" identifier = (binary_expression "iVar7 / iVar3" identifier / identifier)) ;) (expression_statement "iVar7 = iVar7 % iVar3;" (assignment_expression "iVar7 = iVar7 % iVar3" identifier = (binary_expression "iVar7 % iVar3" identifier % identifier)) ;) (if_statement "if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }" if (parenthesized_expression "(iVar4 < iVar7)" ( (binary_expression "iVar4 < iVar7" identifier < identifier) )) (compound_statement "{\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }" { (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "iVar7 = iVar18 * iVar4 + iVar7;" (assignment_expression "iVar7 = iVar18 * iVar4 + iVar7" identifier = (binary_expression "iVar18 * iVar4 + iVar7" (binary_expression "iVar18 * iVar4" identifier * identifier) + identifier)) ;) (if_statement "if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }" if (parenthesized_expression "(iVar7 < iVar18 + iVar7)" ( (binary_expression "iVar7 < iVar18 + iVar7" identifier < (binary_expression "iVar18 + iVar7" identifier + identifier)) )) (compound_statement "{\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }" { (expression_statement "iVar28 = piVar17[6];" (assignment_expression "iVar28 = piVar17[6]" identifier = (subscript_expression "piVar17[6]" identifier [ number_literal ])) ;) (expression_statement "iStack_188 = iVar38 * iVar7;" (assignment_expression "iStack_188 = iVar38 * iVar7" identifier = (binary_expression "iVar38 * iVar7" identifier * identifier)) ;) (expression_statement "iVar3 = piVar17[5];" (assignment_expression "iVar3 = piVar17[5]" identifier = (subscript_expression "piVar17[5]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar17[4];" (assignment_expression "iVar4 = piVar17[4]" identifier = (subscript_expression "piVar17[4]" identifier [ number_literal ])) ;) (expression_statement "iVar30 = *(int *)(pcVar35 + 0x206890);" (assignment_expression "iVar30 = *(int *)(pcVar35 + 0x206890)" identifier = (pointer_expression "*(int *)(pcVar35 + 0x206890)" * (cast_expression "(int *)(pcVar35 + 0x206890)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + 0x206890)" ( (binary_expression "pcVar35 + 0x206890" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = piVar17[3];" (assignment_expression "iVar39 = piVar17[3]" identifier = (subscript_expression "piVar17[3]" identifier [ number_literal ])) ;) (do_statement "do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));" do (compound_statement "{\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    }" { (if_statement "if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }" if (parenthesized_expression "(piVar17[9] != 0)" ( (binary_expression "piVar17[9] != 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }" { (expression_statement "iVar13 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar21 + 0x18)" identifier = (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }" { (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (expression_statement "iVar25 = *(int *)piVar17[8];" (assignment_expression "iVar25 = *(int *)piVar17[8]" identifier = (pointer_expression "*(int *)piVar17[8]" * (cast_expression "(int *)piVar17[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[8]" identifier [ number_literal ])))) ;) (expression_statement "iVar26 = iVar25;" (assignment_expression "iVar26 = iVar25" identifier = identifier) ;) (do_statement "do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);" do (compound_statement "{\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          }" { (if_statement "if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }" if (parenthesized_expression "(iVar13 < iVar25)" ( (binary_expression "iVar13 < iVar25" identifier < identifier) )) (compound_statement "{\n              iVar26 = iVar13 - iVar27;\n            }" { (expression_statement "iVar26 = iVar13 - iVar27;" (assignment_expression "iVar26 = iVar13 - iVar27" identifier = (binary_expression "iVar13 - iVar27" identifier - identifier)) ;) })) (expression_statement "iVar13 = *(int *)piVar17[7];" (assignment_expression "iVar13 = *(int *)piVar17[7]" identifier = (pointer_expression "*(int *)piVar17[7]" * (cast_expression "(int *)piVar17[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[7]" identifier [ number_literal ])))) ;) (if_statement "if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }" if (parenthesized_expression "(*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188)" ( (binary_expression "*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188" (pointer_expression "*(int *)(iVar21 + 0x1c)" * (cast_expression "(int *)(iVar21 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) )))) < (binary_expression "iVar13 + iStack_188" identifier + identifier)) )) (compound_statement "{\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }" { (expression_statement "iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;" (assignment_expression "iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188" identifier = (binary_expression "*(int *)(iVar21 + 0x1c) - iStack_188" (pointer_expression "*(int *)(iVar21 + 0x1c)" * (cast_expression "(int *)(iVar21 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) )))) - identifier)) ;) })) (expression_statement "iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;" (assignment_expression "iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)" identifier = (call_expression "(**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207600))" ( (pointer_expression "**(code **)(pcVar35 + 0x207600)" * (pointer_expression "*(code **)(pcVar35 + 0x207600)" * (cast_expression "(code **)(pcVar35 + 0x207600)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x207600)" ( (binary_expression "pcVar35 + 0x207600" identifier + number_literal) ))))) )) (argument_list "(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar17[9] = 0;\n              break;\n            }" { (expression_statement "piVar17[9] = 0;" (assignment_expression "piVar17[9] = 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;) })) (if_statement "if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }" if (parenthesized_expression "(0 < iVar26)" ( (binary_expression "0 < iVar26" number_literal < identifier) )) (compound_statement "{\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }" { (expression_statement "iVar29 = iVar27;" (assignment_expression "iVar29 = iVar27" identifier = identifier) ;) (do_statement "do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);" do (compound_statement "{\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              }" { (if_statement "if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }" if (parenthesized_expression "(piVar17[9] != 0)" ( (binary_expression "piVar17[9] != 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }" { (expression_statement "iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);" (assignment_expression "iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39)" identifier = (call_expression "(**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39)" (parenthesized_expression "(**(code **)(pcVar35 + 0x206bf4))" ( (pointer_expression "**(code **)(pcVar35 + 0x206bf4)" * (pointer_expression "*(code **)(pcVar35 + 0x206bf4)" * (cast_expression "(code **)(pcVar35 + 0x206bf4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x206bf4)" ( (binary_expression "pcVar35 + 0x206bf4" identifier + number_literal) ))))) )) (argument_list "(iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39)" ( identifier , (binary_expression "(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13" (parenthesized_expression "(*(int *)(iVar28 + 0x18) - iStack_188)" ( (binary_expression "*(int *)(iVar28 + 0x18) - iStack_188" (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) , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }" { (expression_statement "iVar31 = *(int *)(iVar21 + 0x2c0);" (assignment_expression "iVar31 = *(int *)(iVar21 + 0x2c0)" identifier = (pointer_expression "*(int *)(iVar21 + 0x2c0)" * (cast_expression "(int *)(iVar21 + 0x2c0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x2c0)" ( (binary_expression "iVar21 + 0x2c0" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);" (assignment_expression "puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25)" identifier = (cast_expression "(undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25)" ( (binary_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25" (binary_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4" (binary_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31" (parenthesized_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29)" ( (binary_expression "((iVar13 + -1) * iVar26 - iVar27) + iVar29" (parenthesized_expression "((iVar13 + -1) * iVar26 - iVar27)" ( (binary_expression "(iVar13 + -1) * iVar26 - iVar27" (binary_expression "(iVar13 + -1) * iVar26" (parenthesized_expression "(iVar13 + -1)" ( (binary_expression "iVar13 + -1" identifier + number_literal) )) * identifier) - identifier) )) + identifier) )) * identifier) * number_literal) + identifier) )))) ;) (if_statement "if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }" if (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) (compound_statement "{\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }" { (expression_statement "iVar33 = *(int *)(iVar28 + 0x2c0);" (assignment_expression "iVar33 = *(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) ))))) ;) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);" do (compound_statement "{\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      }" { (if_statement "if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }" if (parenthesized_expression "(0 < iVar31)" ( (binary_expression "0 < iVar31" number_literal < identifier) )) (compound_statement "{\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }" { (expression_statement "piVar20 = *(int **)(iVar21 + 0x2d0);" (assignment_expression "piVar20 = *(int **)(iVar21 + 0x2d0)" identifier = (pointer_expression "*(int **)(iVar21 + 0x2d0)" * (cast_expression "(int **)(iVar21 + 0x2d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar21 + 0x2d0)" ( (binary_expression "iVar21 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)(iVar28 + 0x2d0);" (assignment_expression "iVar22 = *(int *)(iVar28 + 0x2d0)" identifier = (pointer_expression "*(int *)(iVar28 + 0x2d0)" * (cast_expression "(int *)(iVar28 + 0x2d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x2d0)" ( (binary_expression "iVar28 + 0x2d0" identifier + number_literal) ))))) ;) (expression_statement "piVar8 = piVar20;" (assignment_expression "piVar8 = piVar20" identifier = identifier) ;) (expression_statement "puVar19 = puVar23;" (assignment_expression "puVar19 = puVar23" identifier = identifier) ;) (do_statement "do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);" do (compound_statement "{\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          }" { (expression_statement "iVar14 = iVar22 + *piVar8 * 0xc;" (assignment_expression "iVar14 = iVar22 + *piVar8 * 0xc" identifier = (binary_expression "iVar22 + *piVar8 * 0xc" identifier + (binary_expression "*piVar8 * 0xc" (pointer_expression "*piVar8" * identifier) * number_literal))) ;) (if_statement "if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }" if (parenthesized_expression "((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0))" ( (binary_expression "(piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)" (parenthesized_expression "(piVar20[*piVar8 * 3 + 1] != 0)" ( (binary_expression "piVar20[*piVar8 * 3 + 1] != 0" (subscript_expression "piVar20[*piVar8 * 3 + 1]" identifier [ (binary_expression "*piVar8 * 3 + 1" (binary_expression "*piVar8 * 3" (pointer_expression "*piVar8" * identifier) * number_literal) + number_literal) ]) != number_literal) )) && (parenthesized_expression "(*(int *)(iVar14 + 4) != 0)" ( (binary_expression "*(int *)(iVar14 + 4) != 0" (pointer_expression "*(int *)(iVar14 + 4)" * (cast_expression "(int *)(iVar14 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }" { (expression_statement "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;" (assignment_expression "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19" (pointer_expression "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4)" * (cast_expression "(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + *(int *)(iVar14 + 8) * 4)" ( (binary_expression "iVar12 + *(int *)(iVar14 + 8) * 4" identifier + (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" * (cast_expression "(int *)(iVar14 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 8)" ( (binary_expression "iVar14 + 8" identifier + number_literal) )))) * number_literal)) )))) = (pointer_expression "*puVar19" * identifier)) ;) })) (expression_statement "piVar8 = piVar8 + 3;" (assignment_expression "piVar8 = piVar8 + 3" identifier = (binary_expression "piVar8 + 3" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar8 != piVar20 + iVar31 * 3)" ( (binary_expression "piVar8 != piVar20 + iVar31 * 3" identifier != (binary_expression "piVar20 + iVar31 * 3" identifier + (binary_expression "iVar31 * 3" identifier * number_literal))) )) ;) })) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);" (assignment_expression "puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4)" identifier = (cast_expression "(undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar23 - iVar26 * iVar31 * 4)" ( (binary_expression "(int)puVar23 - iVar26 * iVar31 * 4" (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier) - (binary_expression "iVar26 * iVar31 * 4" (binary_expression "iVar26 * iVar31" identifier * identifier) * number_literal)) )))) ;) (expression_statement "iVar12 = iVar12 + iVar33 * 4;" (assignment_expression "iVar12 = iVar12 + iVar33 * 4" identifier = (binary_expression "iVar12 + iVar33 * 4" identifier + (binary_expression "iVar33 * 4" identifier * number_literal))) ;) }) while (parenthesized_expression "(iVar24 != iVar13)" ( (binary_expression "iVar24 != iVar13" identifier != identifier) )) ;) })) (expression_statement "iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);" (assignment_expression "iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39)" identifier = (call_expression "(**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39)" (parenthesized_expression "(**(code **)(pcVar35 + 0x20749c))" ( (pointer_expression "**(code **)(pcVar35 + 0x20749c)" * (pointer_expression "*(code **)(pcVar35 + 0x20749c)" * (cast_expression "(code **)(pcVar35 + 0x20749c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x20749c)" ( (binary_expression "pcVar35 + 0x20749c" identifier + number_literal) ))))) )) (argument_list "(iVar3,iVar39)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 != 0) goto LAB_001a2344;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001a2344;" goto statement_identifier ;)) })) (expression_statement "piVar17[9] = 0;" (assignment_expression "piVar17[9] = 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) = number_literal) ;) })) (labeled_statement "LAB_001a2344:\n                iVar29 = iVar29 + 1;" statement_identifier : (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" identifier = (binary_expression "iVar29 + 1" identifier + number_literal)) ;)) }) while (parenthesized_expression "(iVar26 + iVar27 != iVar29)" ( (binary_expression "iVar26 + iVar27 != iVar29" (binary_expression "iVar26 + iVar27" identifier + identifier) != identifier) )) ;) })) (expression_statement "iVar13 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar21 + 0x18)" identifier = (pointer_expression "*(int *)(iVar21 + 0x18)" * (cast_expression "(int *)(iVar21 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x18)" ( (binary_expression "iVar21 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "iVar26 = *(int *)piVar17[8];" (assignment_expression "iVar26 = *(int *)piVar17[8]" identifier = (pointer_expression "*(int *)piVar17[8]" * (cast_expression "(int *)piVar17[8]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[8]" identifier [ number_literal ])))) ;) (expression_statement "iVar27 = iVar27 + iVar26;" (assignment_expression "iVar27 = iVar27 + iVar26" identifier = (binary_expression "iVar27 + iVar26" identifier + identifier)) ;) (expression_statement "iVar25 = iVar26 + iVar27;" (assignment_expression "iVar25 = iVar26 + iVar27" identifier = (binary_expression "iVar26 + iVar27" identifier + identifier)) ;) }) while (parenthesized_expression "(iVar27 < iVar13)" ( (binary_expression "iVar27 < iVar13" identifier < identifier) )) ;) })) (if_statement "if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }" if (parenthesized_expression "(*(int *)(iVar21 + 0x328) != 0)" ( (binary_expression "*(int *)(iVar21 + 0x328) != 0" (pointer_expression "*(int *)(iVar21 + 0x328)" * (cast_expression "(int *)(iVar21 + 0x328)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x328)" ( (binary_expression "iVar21 + 0x328" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }" { (expression_statement "uVar15 = *(undefined4 *)(iVar21 + 0x1c);" (assignment_expression "uVar15 = *(undefined4 *)(iVar21 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar21 + 0x1c)" * (cast_expression "(undefined4 *)(iVar21 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar21 + 0x1c)" ( (binary_expression "iVar21 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(uint *)piVar17[7];" (assignment_expression "uVar9 = *(uint *)piVar17[7]" identifier = (pointer_expression "*(uint *)piVar17[7]" * (cast_expression "(uint *)piVar17[7]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar17[7]" identifier [ number_literal ])))) ;) (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x206c58);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x206c58)" identifier = (pointer_expression "*(code **)(pcVar35 + 0x206c58)" * (cast_expression "(code **)(pcVar35 + 0x206c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + 0x206c58)" ( (binary_expression "pcVar35 + 0x206c58" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = uVar9 + piVar17[1];" (assignment_expression "uVar11 = uVar9 + piVar17[1]" identifier = (binary_expression "uVar9 + piVar17[1]" identifier + (subscript_expression "piVar17[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar17[1] = uVar11;" (assignment_expression "piVar17[1] = uVar11" (subscript_expression "piVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar13 = (uint)(uVar11 < uVar9) + *piVar17;" (assignment_expression "iVar13 = (uint)(uVar11 < uVar9) + *piVar17" identifier = (binary_expression "(uint)(uVar11 < uVar9) + *piVar17" (call_expression "(uint)(uVar11 < uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar9)" ( (binary_expression "uVar11 < uVar9" identifier < identifier) ))) + (pointer_expression "*piVar17" * identifier))) ;) (expression_statement "*piVar17 = iVar13;" (assignment_expression "*piVar17 = iVar13" (pointer_expression "*piVar17" * identifier) = identifier) ;) (expression_statement "iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);" (assignment_expression "iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15)" identifier = (call_expression "(*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15)" ( identifier , (binary_expression "iVar30 + -0x4820" identifier + number_literal) , identifier , identifier , number_literal , identifier )))) ;) (if_statement "if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n            piVar17[9] = 0;\n          }" { (expression_statement "piVar17[9] = 0;" (assignment_expression "piVar17[9] = 0" (subscript_expression "piVar17[9]" identifier [ number_literal ]) = number_literal) ;) })) })) })) (expression_statement "iStack_188 = iStack_188 + iVar38;" (assignment_expression "iStack_188 = iStack_188 + iVar38" identifier = (binary_expression "iStack_188 + iVar38" identifier + identifier)) ;) }) while (parenthesized_expression "(iStack_188 < iVar38 * (iVar18 + iVar7))" ( (binary_expression "iStack_188 < iVar38 * (iVar18 + iVar7)" identifier < (binary_expression "iVar38 * (iVar18 + iVar7)" identifier * (parenthesized_expression "(iVar18 + iVar7)" ( (binary_expression "iVar18 + iVar7" identifier + identifier) )))) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = 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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (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)) ))))) < IDENT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (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)) ))))) < IDENT) ))) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (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)) ))))) < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << (parenthesized_expression ( (binary_expression (binary_expression LIT - IDENT) & LIT) ))) )) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (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 ( )))) ;) (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 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 = (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 = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (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 IDENT < (binary_expression IDENT + LIT))) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (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 IDENT == LIT))))) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) + (cast_expression ( (type_descriptor TYPE) ) 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) <= IDENT) )) (goto_statement goto statement_identifier ;)) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_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 ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_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 ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression ~ IDENT)) )))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (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 , (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (field_expression IDENT . field_identifier) + IDENT) , (field_expression IDENT . field_identifier) ))))) ;) (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 , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (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 , (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (field_expression IDENT . field_identifier) + IDENT) , (field_expression IDENT . field_identifier) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression ~ 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (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 , (binary_expression IDENT + IDENT) , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (field_expression IDENT . field_identifier) + IDENT) , (field_expression IDENT . field_identifier) ))))) ;) (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 , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (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 , IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (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 )))) ;) }) 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 )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) 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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (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 IDENT == LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (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 (binary_expression IDENT == LIT) || (parenthesized_expression ( (comma_expression (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 IDENT == LIT)) )))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT >> LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT ^ LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT >> LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) }))) })) (goto_statement goto statement_identifier ;) })) (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 ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) == LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (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 IDENT + LIT) ))))) ;) (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 = (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression IDENT + IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - 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 , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) )) - IDENT) , IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * IDENT) - IDENT) )) + IDENT) )) * IDENT) * LIT) + IDENT) )))) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ( (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 (pointer_expression * (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)) )))) = (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 IDENT != (binary_expression IDENT + (binary_expression IDENT * LIT))) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (binary_expression (binary_expression IDENT * IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * 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) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT * (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_001a159c(double *param_1,int param_2,int param_3,ushort *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  double *pdVar5;\n  double *pdVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  int *piVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  int iVar28;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar29;\n  int unaff_s6;\n  int iVar30;\n  ushort *unaff_s7;\n  int iVar31;\n  undefined *puVar32;\n  int iVar33;\n  ushort *puVar34;\n  code *pcVar35;\n  code *pcVar36;\n  double dVar37;\n  int iVar38;\n  int iVar39;\n  undefined8 uVar40;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  double *pdStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  double *pdStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  int local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar34 = *(ushort **)(param_1 + 1);\n  pdVar16 = param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar38 = *(int *)(puVar34 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar34 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar38 * iVar4 + iVar3;\n  iVar38 = iVar38 + iVar3;\n  if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar35 = FUN_001a185c;\n  puVar32 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar32 + 0x20f054;\n  piStack_9c = *(int **)(puVar32 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar18 = *(int *)(pdVar16 + 1);\n  iStack_a0 = *(int *)((int)pdVar16 + 4);\n  iVar30 = *(int *)pdVar16;\n  iVar4 = iVar18;\n  iStack_90 = iVar38;\n  iStack_88 = iVar3;\n  pdStack_84 = param_1;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar34;\n  pcStack_6c = pcVar35;\n  iVar3 = (**(code **)(puVar32 + 0x2076dc))();\n  iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar7 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar21 == 0) {\n    trap(7);\n  }\n  iVar39 = iVar3 / iVar21;\n  iVar3 = iVar3 % iVar21;\n  if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar39 * iVar7 + iVar3;\n  iVar39 = iVar39 + iVar3;\n  if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar35 = *(code **)(puStack_a8 + -0x784c);\n  pcVar36 = FUN_001a1a4c;\n  (*pcVar35)();\n  puVar2 = puStack_a8;\n  piVar8 = *(int **)(pcVar35 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar8;\n  iStack_e0 = iVar38;\n  iStack_dc = iVar18;\n  iStack_d8 = iVar3;\n  pdStack_d4 = param_1;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar39;\n  iStack_c8 = iVar30;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar34;\n  pcStack_bc = pcVar36;\n  puStack_ac = param_4;\n  uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n  iVar3 = param_2;\n  if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }\n  uVar40 = (*pcVar36)(7);\n  if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = param_2;\n  (**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar8) {\n    return;\n  }\n  pcVar35 = *(code **)(pcVar35 + 0x207618);\n  (*pcVar35)();\n  iVar38 = *(int *)piVar17[7];\n  iVar21 = piVar17[2];\n  iVar3 = (**(code **)(pcVar35 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar35 + 0x2074ac))();\n  if (iVar38 == 0) {\n    trap(7);\n  }\n  iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar18 = iVar7 / iVar3;\n  iVar7 = iVar7 % iVar3;\n  if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }\n  iVar7 = iVar18 * iVar4 + iVar7;\n  if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001a159c(double *param_1,int param_2,int param_3,ushort *param_4)" (identifier "FUN_001a159c") (parameter_list "(double *param_1,int param_2,int param_3,ushort *param_4)" (( "(") (parameter_declaration "double *param_1" (primitive_type "double") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "ushort *param_4" (type_identifier "ushort") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  int iVar4;\n  double *pdVar5;\n  double *pdVar6;\n  int iVar7;\n  int *piVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  int iVar12;\n  int extraout_v1;\n  int extraout_v1_00;\n  int extraout_v1_01;\n  int extraout_v1_02;\n  int extraout_v1_03;\n  int iVar13;\n  int iVar14;\n  undefined4 uVar15;\n  double *pdVar16;\n  int *piVar17;\n  int iVar18;\n  undefined4 *puVar19;\n  int *piVar20;\n  int iVar21;\n  int iVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int iVar25;\n  int iVar26;\n  int iVar27;\n  int iVar28;\n  ushort *unaff_s4;\n  undefined4 unaff_s5;\n  int iVar29;\n  int unaff_s6;\n  int iVar30;\n  ushort *unaff_s7;\n  int iVar31;\n  undefined *puVar32;\n  int iVar33;\n  ushort *puVar34;\n  code *pcVar35;\n  code *pcVar36;\n  double dVar37;\n  int iVar38;\n  int iVar39;\n  undefined8 uVar40;\n  int iStack_188;\n  int iStack_118;\n  uint uStack_110;\n  int iStack_10c;\n  short sStack_f2;\n  ushort *puStack_f0;\n  undefined *puStack_ec;\n  int iStack_e8;\n  int iStack_e4;\n  int iStack_e0;\n  int iStack_dc;\n  int iStack_d8;\n  double *pdStack_d4;\n  ushort *puStack_d0;\n  int iStack_cc;\n  int iStack_c8;\n  ushort *puStack_c4;\n  ushort *puStack_c0;\n  code *pcStack_bc;\n  ushort *puStack_ac;\n  undefined *puStack_a8;\n  int iStack_a0;\n  int *piStack_9c;\n  ushort uStack_98;\n  ushort uStack_96;\n  int iStack_94;\n  int iStack_90;\n  undefined *puStack_8c;\n  int iStack_88;\n  double *pdStack_84;\n  ushort *puStack_80;\n  undefined4 uStack_7c;\n  int iStack_78;\n  ushort *puStack_74;\n  ushort *puStack_70;\n  code *pcStack_6c;\n  undefined4 local_58;\n  int local_54;\n  ushort local_36;\n  int local_34;\n  \n  puVar2 = PTR___stack_chk_guard_003a9230;\n  local_34 = *(int *)PTR___stack_chk_guard_003a9230;\n  puVar34 = *(ushort **)(param_1 + 1);\n  pdVar16 = param_1;\n  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();\n  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar38 = *(int *)(puVar34 + 0xe) / iVar3;\n  iVar3 = *(int *)(puVar34 + 0xe) % iVar3;\n  if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar38 * iVar4 + iVar3;\n  iVar38 = iVar38 + iVar3;\n  if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }\nLAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }\n  pcVar35 = FUN_001a185c;\n  puVar32 = PTR___stack_chk_fail_003a9064;\n  (*(code *)PTR___stack_chk_fail_003a9064)();\n  puStack_a8 = puVar32 + 0x20f054;\n  piStack_9c = *(int **)(puVar32 + 0x2079d4);\n  puStack_8c = puVar2;\n  iStack_94 = *piStack_9c;\n  iVar18 = *(int *)(pdVar16 + 1);\n  iStack_a0 = *(int *)((int)pdVar16 + 4);\n  iVar30 = *(int *)pdVar16;\n  iVar4 = iVar18;\n  iStack_90 = iVar38;\n  iStack_88 = iVar3;\n  pdStack_84 = param_1;\n  puStack_80 = unaff_s4;\n  uStack_7c = unaff_s5;\n  iStack_78 = unaff_s6;\n  puStack_74 = unaff_s7;\n  puStack_70 = puVar34;\n  pcStack_6c = pcVar35;\n  iVar3 = (**(code **)(puVar32 + 0x2076dc))();\n  iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();\n  iVar7 = (**(code **)(puStack_a8 + -0x73a8))();\n  if (iVar21 == 0) {\n    trap(7);\n  }\n  iVar39 = iVar3 / iVar21;\n  iVar3 = iVar3 % iVar21;\n  if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }\n  iVar3 = iVar39 * iVar7 + iVar3;\n  iVar39 = iVar39 + iVar3;\n  if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }\n  if (iStack_94 == *piStack_9c) {\n    return;\n  }\n  pcVar35 = *(code **)(puStack_a8 + -0x784c);\n  pcVar36 = FUN_001a1a4c;\n  (*pcVar35)();\n  puVar2 = puStack_a8;\n  piVar8 = *(int **)(pcVar35 + 0x2077e4);\n  uStack_110 = 1;\n  iStack_e4 = *piVar8;\n  iStack_e0 = iVar38;\n  iStack_dc = iVar18;\n  iStack_d8 = iVar3;\n  pdStack_d4 = param_1;\n  puStack_d0 = unaff_s4;\n  iStack_cc = iVar39;\n  iStack_c8 = iVar30;\n  puStack_c4 = unaff_s7;\n  puStack_c0 = puVar34;\n  pcStack_bc = pcVar36;\n  puStack_ac = param_4;\n  uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n  iVar3 = param_2;\n  if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }\n  iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);\n  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }\n  uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);\n  if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }\n  uVar40 = (*pcVar36)(7);\n  if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }\nLAB_001a1e70:\n  puStack_ec = puVar2;\n  piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);\n  puStack_f0 = puStack_ac;\n  iStack_e8 = param_2;\n  (**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);\n  if (iStack_e4 == *piVar8) {\n    return;\n  }\n  pcVar35 = *(code **)(pcVar35 + 0x207618);\n  (*pcVar35)();\n  iVar38 = *(int *)piVar17[7];\n  iVar21 = piVar17[2];\n  iVar3 = (**(code **)(pcVar35 + 0x2078b0))();\n  iVar4 = (**(code **)(pcVar35 + 0x2074ac))();\n  if (iVar38 == 0) {\n    trap(7);\n  }\n  iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;\n  if (iVar3 == 0) {\n    trap(7);\n  }\n  iVar18 = iVar7 / iVar3;\n  iVar7 = iVar7 % iVar3;\n  if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }\n  iVar7 = iVar18 * iVar4 + iVar7;\n  if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "double *pdVar5;" (primitive_type "double") (pointer_declarator "*pdVar5" (* "*") (identifier "pdVar5")) (; ";")) (declaration "double *pdVar6;" (primitive_type "double") (pointer_declarator "*pdVar6" (* "*") (identifier "pdVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int extraout_v1;" (primitive_type "int") (identifier "extraout_v1") (; ";")) (declaration "int extraout_v1_00;" (primitive_type "int") (identifier "extraout_v1_00") (; ";")) (declaration "int extraout_v1_01;" (primitive_type "int") (identifier "extraout_v1_01") (; ";")) (declaration "int extraout_v1_02;" (primitive_type "int") (identifier "extraout_v1_02") (; ";")) (declaration "int extraout_v1_03;" (primitive_type "int") (identifier "extraout_v1_03") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "double *pdVar16;" (primitive_type "double") (pointer_declarator "*pdVar16" (* "*") (identifier "pdVar16")) (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined4 *puVar19;" (type_identifier "undefined4") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "undefined4 *puVar23;" (type_identifier "undefined4") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int iVar26;" (primitive_type "int") (identifier "iVar26") (; ";")) (declaration "int iVar27;" (primitive_type "int") (identifier "iVar27") (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "ushort *unaff_s4;" (type_identifier "ushort") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "undefined4 unaff_s5;" (type_identifier "undefined4") (identifier "unaff_s5") (; ";")) (declaration "int iVar29;" (primitive_type "int") (identifier "iVar29") (; ";")) (declaration "int unaff_s6;" (primitive_type "int") (identifier "unaff_s6") (; ";")) (declaration "int iVar30;" (primitive_type "int") (identifier "iVar30") (; ";")) (declaration "ushort *unaff_s7;" (type_identifier "ushort") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "undefined *puVar32;" (type_identifier "undefined") (pointer_declarator "*puVar32" (* "*") (identifier "puVar32")) (; ";")) (declaration "int iVar33;" (primitive_type "int") (identifier "iVar33") (; ";")) (declaration "ushort *puVar34;" (type_identifier "ushort") (pointer_declarator "*puVar34" (* "*") (identifier "puVar34")) (; ";")) (declaration "code *pcVar35;" (type_identifier "code") (pointer_declarator "*pcVar35" (* "*") (identifier "pcVar35")) (; ";")) (declaration "code *pcVar36;" (type_identifier "code") (pointer_declarator "*pcVar36" (* "*") (identifier "pcVar36")) (; ";")) (declaration "double dVar37;" (primitive_type "double") (identifier "dVar37") (; ";")) (declaration "int iVar38;" (primitive_type "int") (identifier "iVar38") (; ";")) (declaration "int iVar39;" (primitive_type "int") (identifier "iVar39") (; ";")) (declaration "undefined8 uVar40;" (type_identifier "undefined8") (identifier "uVar40") (; ";")) (declaration "int iStack_188;" (primitive_type "int") (identifier "iStack_188") (; ";")) (declaration "int iStack_118;" (primitive_type "int") (identifier "iStack_118") (; ";")) (declaration "uint uStack_110;" (type_identifier "uint") (identifier "uStack_110") (; ";")) (declaration "int iStack_10c;" (primitive_type "int") (identifier "iStack_10c") (; ";")) (declaration "short sStack_f2;" (sized_type_specifier "short" (short "short")) (identifier "sStack_f2") (; ";")) (declaration "ushort *puStack_f0;" (type_identifier "ushort") (pointer_declarator "*puStack_f0" (* "*") (identifier "puStack_f0")) (; ";")) (declaration "undefined *puStack_ec;" (type_identifier "undefined") (pointer_declarator "*puStack_ec" (* "*") (identifier "puStack_ec")) (; ";")) (declaration "int iStack_e8;" (primitive_type "int") (identifier "iStack_e8") (; ";")) (declaration "int iStack_e4;" (primitive_type "int") (identifier "iStack_e4") (; ";")) (declaration "int iStack_e0;" (primitive_type "int") (identifier "iStack_e0") (; ";")) (declaration "int iStack_dc;" (primitive_type "int") (identifier "iStack_dc") (; ";")) (declaration "int iStack_d8;" (primitive_type "int") (identifier "iStack_d8") (; ";")) (declaration "double *pdStack_d4;" (primitive_type "double") (pointer_declarator "*pdStack_d4" (* "*") (identifier "pdStack_d4")) (; ";")) (declaration "ushort *puStack_d0;" (type_identifier "ushort") (pointer_declarator "*puStack_d0" (* "*") (identifier "puStack_d0")) (; ";")) (declaration "int iStack_cc;" (primitive_type "int") (identifier "iStack_cc") (; ";")) (declaration "int iStack_c8;" (primitive_type "int") (identifier "iStack_c8") (; ";")) (declaration "ushort *puStack_c4;" (type_identifier "ushort") (pointer_declarator "*puStack_c4" (* "*") (identifier "puStack_c4")) (; ";")) (declaration "ushort *puStack_c0;" (type_identifier "ushort") (pointer_declarator "*puStack_c0" (* "*") (identifier "puStack_c0")) (; ";")) (declaration "code *pcStack_bc;" (type_identifier "code") (pointer_declarator "*pcStack_bc" (* "*") (identifier "pcStack_bc")) (; ";")) (declaration "ushort *puStack_ac;" (type_identifier "ushort") (pointer_declarator "*puStack_ac" (* "*") (identifier "puStack_ac")) (; ";")) (declaration "undefined *puStack_a8;" (type_identifier "undefined") (pointer_declarator "*puStack_a8" (* "*") (identifier "puStack_a8")) (; ";")) (declaration "int iStack_a0;" (primitive_type "int") (identifier "iStack_a0") (; ";")) (declaration "int *piStack_9c;" (primitive_type "int") (pointer_declarator "*piStack_9c" (* "*") (identifier "piStack_9c")) (; ";")) (declaration "ushort uStack_98;" (type_identifier "ushort") (identifier "uStack_98") (; ";")) (declaration "ushort uStack_96;" (type_identifier "ushort") (identifier "uStack_96") (; ";")) (declaration "int iStack_94;" (primitive_type "int") (identifier "iStack_94") (; ";")) (declaration "int iStack_90;" (primitive_type "int") (identifier "iStack_90") (; ";")) (declaration "undefined *puStack_8c;" (type_identifier "undefined") (pointer_declarator "*puStack_8c" (* "*") (identifier "puStack_8c")) (; ";")) (declaration "int iStack_88;" (primitive_type "int") (identifier "iStack_88") (; ";")) (declaration "double *pdStack_84;" (primitive_type "double") (pointer_declarator "*pdStack_84" (* "*") (identifier "pdStack_84")) (; ";")) (declaration "ushort *puStack_80;" (type_identifier "ushort") (pointer_declarator "*puStack_80" (* "*") (identifier "puStack_80")) (; ";")) (declaration "undefined4 uStack_7c;" (type_identifier "undefined4") (identifier "uStack_7c") (; ";")) (declaration "int iStack_78;" (primitive_type "int") (identifier "iStack_78") (; ";")) (declaration "ushort *puStack_74;" (type_identifier "ushort") (pointer_declarator "*puStack_74" (* "*") (identifier "puStack_74")) (; ";")) (declaration "ushort *puStack_70;" (type_identifier "ushort") (pointer_declarator "*puStack_70" (* "*") (identifier "puStack_70")) (; ";")) (declaration "code *pcStack_6c;" (type_identifier "code") (pointer_declarator "*pcStack_6c" (* "*") (identifier "pcStack_6c")) (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "ushort local_36;" (type_identifier "ushort") (identifier "local_36") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_003a9230;" (assignment_expression "puVar2 = PTR___stack_chk_guard_003a9230" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_003a9230")) (; ";")) (expression_statement "local_34 = *(int *)PTR___stack_chk_guard_003a9230;" (assignment_expression "local_34 = *(int *)PTR___stack_chk_guard_003a9230" (identifier "local_34") (= "=") (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 "puVar34 = *(ushort **)(param_1 + 1);" (assignment_expression "puVar34 = *(ushort **)(param_1 + 1)" (identifier "puVar34") (= "=") (pointer_expression "*(ushort **)(param_1 + 1)" (* "*") (cast_expression "(ushort **)(param_1 + 1)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 1)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pdVar16 = param_1;" (assignment_expression "pdVar16 = param_1" (identifier "pdVar16") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();" (assignment_expression "iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)()" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_omp_get_num_threads_003a990c)()" (parenthesized_expression "(*(code *)PTR_omp_get_num_threads_003a990c)" (( "(") (pointer_expression "*(code *)PTR_omp_get_num_threads_003a990c" (* "*") (cast_expression "(code *)PTR_omp_get_num_threads_003a990c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_num_threads_003a990c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();" (assignment_expression "iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)()" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_omp_get_thread_num_003a9508)()" (parenthesized_expression "(*(code *)PTR_omp_get_thread_num_003a9508)" (( "(") (pointer_expression "*(code *)PTR_omp_get_thread_num_003a9508" (* "*") (cast_expression "(code *)PTR_omp_get_thread_num_003a9508" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_omp_get_thread_num_003a9508"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (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 "iVar38 = *(int *)(puVar34 + 0xe) / iVar3;" (assignment_expression "iVar38 = *(int *)(puVar34 + 0xe) / iVar3" (identifier "iVar38") (= "=") (binary_expression "*(int *)(puVar34 + 0xe) / iVar3" (pointer_expression "*(int *)(puVar34 + 0xe)" (* "*") (cast_expression "(int *)(puVar34 + 0xe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar34 + 0xe)" (( "(") (binary_expression "puVar34 + 0xe" (identifier "puVar34") (+ "+") (number_literal "0xe")) () ")")))) (/ "/") (identifier "iVar3"))) (; ";")) (expression_statement "iVar3 = *(int *)(puVar34 + 0xe) % iVar3;" (assignment_expression "iVar3 = *(int *)(puVar34 + 0xe) % iVar3" (identifier "iVar3") (= "=") (binary_expression "*(int *)(puVar34 + 0xe) % iVar3" (pointer_expression "*(int *)(puVar34 + 0xe)" (* "*") (cast_expression "(int *)(puVar34 + 0xe)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar34 + 0xe)" (( "(") (binary_expression "puVar34 + 0xe" (identifier "puVar34") (+ "+") (number_literal "0xe")) () ")")))) (% "%") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar4 < iVar3) {\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }" (if "if") (parenthesized_expression "(iVar4 < iVar3)" (( "(") (binary_expression "iVar4 < iVar3" (identifier "iVar4") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n    iVar38 = iVar38 + 1;\n    iVar3 = 0;\n  }" ({ "{") (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" (identifier "iVar38") (= "=") (binary_expression "iVar38 + 1" (identifier "iVar38") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar38 * iVar4 + iVar3;" (assignment_expression "iVar3 = iVar38 * iVar4 + iVar3" (identifier "iVar3") (= "=") (binary_expression "iVar38 * iVar4 + iVar3" (binary_expression "iVar38 * iVar4" (identifier "iVar38") (* "*") (identifier "iVar4")) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "iVar38 = iVar38 + iVar3;" (assignment_expression "iVar38 = iVar38 + iVar3" (identifier "iVar38") (= "=") (binary_expression "iVar38 + iVar3" (identifier "iVar38") (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar3 < iVar38) {\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }" (if "if") (parenthesized_expression "(iVar3 < iVar38)" (( "(") (binary_expression "iVar3 < iVar38" (identifier "iVar3") (< "<") (identifier "iVar38")) () ")")) (compound_statement "{\n    pdVar5 = *(double **)((int)param_1 + 0x14);\n    unaff_s5 = 8;\n    dVar37 = *param_1;\n    unaff_s4 = &local_36;\n    pdVar6 = *(double **)(param_1 + 2);\n    iVar4 = *(int *)((int)param_1 + 0xc);\n    do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);\n  }" ({ "{") (expression_statement "pdVar5 = *(double **)((int)param_1 + 0x14);" (assignment_expression "pdVar5 = *(double **)((int)param_1 + 0x14)" (identifier "pdVar5") (= "=") (pointer_expression "*(double **)((int)param_1 + 0x14)" (* "*") (cast_expression "(double **)((int)param_1 + 0x14)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)param_1 + 0x14)" (( "(") (binary_expression "(int)param_1 + 0x14" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "unaff_s5 = 8;" (assignment_expression "unaff_s5 = 8" (identifier "unaff_s5") (= "=") (number_literal "8")) (; ";")) (expression_statement "dVar37 = *param_1;" (assignment_expression "dVar37 = *param_1" (identifier "dVar37") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "unaff_s4 = &local_36;" (assignment_expression "unaff_s4 = &local_36" (identifier "unaff_s4") (= "=") (pointer_expression "&local_36" (& "&") (identifier "local_36"))) (; ";")) (expression_statement "pdVar6 = *(double **)(param_1 + 2);" (assignment_expression "pdVar6 = *(double **)(param_1 + 2)" (identifier "pdVar6") (= "=") (pointer_expression "*(double **)(param_1 + 2)" (* "*") (cast_expression "(double **)(param_1 + 2)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 2)" (( "(") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "iVar4 = *(int *)((int)param_1 + 0xc);" (assignment_expression "iVar4 = *(int *)((int)param_1 + 0xc)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)((int)param_1 + 0xc)" (* "*") (cast_expression "(int *)((int)param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0xc)" (( "(") (binary_expression "(int)param_1 + 0xc" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (do_statement "do {\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    } while (iVar38 != iVar3);" (do "do") (compound_statement "{\n      while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }\n      param_2 = 0;\n      param_4 = *(ushort **)(puVar34 + 0xc);\n      local_58 = 1;\n      pdVar16 = pdVar6;\n      param_3 = iVar3;\n      local_54 = iVar4;\n      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();\n      if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }\n      iVar3 = iVar3 + 1;\n      *(int *)((int)param_1 + 0x1c) = 0;\n    }" ({ "{") (while_statement "while (*(int *)((int)param_1 + 0x1c) == 0) {\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }" (while "while") (parenthesized_expression "(*(int *)((int)param_1 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)((int)param_1 + 0x1c) == 0" (pointer_expression "*(int *)((int)param_1 + 0x1c)" (* "*") (cast_expression "(int *)((int)param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x1c)" (( "(") (binary_expression "(int)param_1 + 0x1c" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001a1798:\n        iVar3 = iVar3 + 1;\n        if (iVar38 == iVar3) goto LAB_001a17a4;\n      }" ({ "{") (labeled_statement "LAB_001a1798:\n        iVar3 = iVar3 + 1;" (statement_identifier "LAB_001a1798") (: ":") (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";"))) (if_statement "if (iVar38 == iVar3) goto LAB_001a17a4;" (if "if") (parenthesized_expression "(iVar38 == iVar3)" (( "(") (binary_expression "iVar38 == iVar3" (identifier "iVar38") (== "==") (identifier "iVar3")) () ")")) (goto_statement "goto LAB_001a17a4;" (goto "goto") (statement_identifier "LAB_001a17a4") (; ";"))) (} "}"))) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" (identifier "param_2") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_4 = *(ushort **)(puVar34 + 0xc);" (assignment_expression "param_4 = *(ushort **)(puVar34 + 0xc)" (identifier "param_4") (= "=") (pointer_expression "*(ushort **)(puVar34 + 0xc)" (* "*") (cast_expression "(ushort **)(puVar34 + 0xc)" (( "(") (type_descriptor "ushort **" (type_identifier "ushort") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar34 + 0xc)" (( "(") (binary_expression "puVar34 + 0xc" (identifier "puVar34") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "local_58 = 1;" (assignment_expression "local_58 = 1" (identifier "local_58") (= "=") (number_literal "1")) (; ";")) (expression_statement "pdVar16 = pdVar6;" (assignment_expression "pdVar16 = pdVar6" (identifier "pdVar16") (= "=") (identifier "pdVar6")) (; ";")) (expression_statement "param_3 = iVar3;" (assignment_expression "param_3 = iVar3" (identifier "param_3") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "local_54 = iVar4;" (assignment_expression "local_54 = iVar4" (identifier "local_54") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();" (assignment_expression "unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)()" (identifier "unaff_s6") (= "=") (call_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)()" (parenthesized_expression "(*(code *)PTR_GetCacheViewVirtualPixels_003a965c)" (( "(") (pointer_expression "*(code *)PTR_GetCacheViewVirtualPixels_003a965c" (* "*") (cast_expression "(code *)PTR_GetCacheViewVirtualPixels_003a965c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_GetCacheViewVirtualPixels_003a965c"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (unaff_s6 != 0) {\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }" (if "if") (parenthesized_expression "(unaff_s6 != 0)" (( "(") (binary_expression "unaff_s6 != 0" (identifier "unaff_s6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        param_2 = *(int *)(puVar34 + 0xc);\n        iVar21 = param_2 + 7;\n        if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }\n        iVar21 = iVar21 >> 3;\n        if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }\n        goto LAB_001a1798;\n      }" ({ "{") (expression_statement "param_2 = *(int *)(puVar34 + 0xc);" (assignment_expression "param_2 = *(int *)(puVar34 + 0xc)" (identifier "param_2") (= "=") (pointer_expression "*(int *)(puVar34 + 0xc)" (* "*") (cast_expression "(int *)(puVar34 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar34 + 0xc)" (( "(") (binary_expression "puVar34 + 0xc" (identifier "puVar34") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar21 = param_2 + 7;" (assignment_expression "iVar21 = param_2 + 7" (identifier "iVar21") (= "=") (binary_expression "param_2 + 7" (identifier "param_2") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if (iVar21 < 0) {\n          iVar21 = param_2 + 0xe;\n        }" (if "if") (parenthesized_expression "(iVar21 < 0)" (( "(") (binary_expression "iVar21 < 0" (identifier "iVar21") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar21 = param_2 + 0xe;\n        }" ({ "{") (expression_statement "iVar21 = param_2 + 0xe;" (assignment_expression "iVar21 = param_2 + 0xe" (identifier "iVar21") (= "=") (binary_expression "param_2 + 0xe" (identifier "param_2") (+ "+") (number_literal "0xe"))) (; ";")) (} "}"))) (expression_statement "iVar21 = iVar21 >> 3;" (assignment_expression "iVar21 = iVar21 >> 3" (identifier "iVar21") (= "=") (binary_expression "iVar21 >> 3" (identifier "iVar21") (>> ">>") (number_literal "3"))) (; ";")) (if_statement "if (0 < param_2) {\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }" (if "if") (parenthesized_expression "(0 < param_2)" (( "(") (binary_expression "0 < param_2" (number_literal "0") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n          unaff_s7 = (ushort *)0x0;\n          pdVar16 = (double *)0x0;\n          iVar7 = 0;\n          do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);\n          param_3 = 0;\n          if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }\n        }" ({ "{") (expression_statement "unaff_s7 = (ushort *)0x0;" (assignment_expression "unaff_s7 = (ushort *)0x0" (identifier "unaff_s7") (= "=") (cast_expression "(ushort *)0x0" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" (identifier "pdVar16") (= "=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          } while ((int)unaff_s7 < param_2);" (do "do") (compound_statement "{\n            iVar18 = *(int *)(puVar34 + 0x168);\n            pdVar16 = (double *)((int)pdVar16 << 1);\n            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }\n            iVar7 = iVar7 + 1;\n            if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }\n            unaff_s7 = (ushort *)((int)unaff_s7 + 1);\n            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;\n          }" ({ "{") (expression_statement "iVar18 = *(int *)(puVar34 + 0x168);" (assignment_expression "iVar18 = *(int *)(puVar34 + 0x168)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(puVar34 + 0x168)" (* "*") (cast_expression "(int *)(puVar34 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar34 + 0x168)" (( "(") (binary_expression "puVar34 + 0x168" (identifier "puVar34") (+ "+") (number_literal "0x168")) () ")"))))) (; ";")) (expression_statement "pdVar16 = (double *)((int)pdVar16 << 1);" (assignment_expression "pdVar16 = (double *)((int)pdVar16 << 1)" (identifier "pdVar16") (= "=") (cast_expression "(double *)((int)pdVar16 << 1)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 << 1)" (( "(") (binary_expression "(int)pdVar16 << 1" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (<< "<<") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }" (if "if") (parenthesized_expression "((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37))" (( "(") (binary_expression "(((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||\n               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)" (parenthesized_expression "(((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37))" (( "(") (binary_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||\n                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)" (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37)" (( "(") (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4)" (* "*") (cast_expression "(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s6 + *(int *)(iVar18 + 8) * 4)" (( "(") (binary_expression "unaff_s6 + *(int *)(iVar18 + 8) * 4" (identifier "unaff_s6") (+ "+") (binary_expression "*(int *)(iVar18 + 8) * 4" (pointer_expression "*(int *)(iVar18 + 8)" (* "*") (cast_expression "(int *)(iVar18 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (< "<") (identifier "dVar37")) () ")")) (|| "||") (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)" (( "(") (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" (* "*") (cast_expression "(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s6 + *(int *)(iVar18 + 0x14) * 4)" (( "(") (binary_expression "unaff_s6 + *(int *)(iVar18 + 0x14) * 4" (identifier "unaff_s6") (+ "+") (binary_expression "*(int *)(iVar18 + 0x14) * 4" (pointer_expression "*(int *)(iVar18 + 0x14)" (* "*") (cast_expression "(int *)(iVar18 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x14)" (( "(") (binary_expression "iVar18 + 0x14" (identifier "iVar18") (+ "+") (number_literal "0x14")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (< "<") (identifier "dVar37")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)" (( "(") (binary_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37" (cast_expression "(double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" (* "*") (cast_expression "(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s6 + *(int *)(iVar18 + 0x20) * 4)" (( "(") (binary_expression "unaff_s6 + *(int *)(iVar18 + 0x20) * 4" (identifier "unaff_s6") (+ "+") (binary_expression "*(int *)(iVar18 + 0x20) * 4" (pointer_expression "*(int *)(iVar18 + 0x20)" (* "*") (cast_expression "(int *)(iVar18 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x20)" (( "(") (binary_expression "iVar18 + 0x20" (identifier "iVar18") (+ "+") (number_literal "0x20")) () ")")))) (* "*") (number_literal "4"))) () ")"))))) (< "<") (identifier "dVar37")) () ")"))) () ")")) (compound_statement "{\n              pdVar16 = (double *)((uint)pdVar16 | 1);\n            }" ({ "{") (expression_statement "pdVar16 = (double *)((uint)pdVar16 | 1);" (assignment_expression "pdVar16 = (double *)((uint)pdVar16 | 1)" (identifier "pdVar16") (= "=") (cast_expression "(double *)((uint)pdVar16 | 1)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)pdVar16 | 1)" (( "(") (binary_expression "(uint)pdVar16 | 1" (cast_expression "(uint)pdVar16" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pdVar16")) (| "|") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar7 == 8) {\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }" (if "if") (parenthesized_expression "(iVar7 == 8)" (( "(") (binary_expression "iVar7 == 8" (identifier "iVar7") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n              iVar21 = iVar21 + -1;\n              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);\n              param_4 = unaff_s4;\n              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);\n              pdVar16 = (double *)0x0;\n              iVar7 = 0;\n              param_2 = *(int *)(puVar34 + 0xc);\n            }" ({ "{") (expression_statement "iVar21 = iVar21 + -1;" (assignment_expression "iVar21 = iVar21 + -1" (identifier "iVar21") (= "=") (binary_expression "iVar21 + -1" (identifier "iVar21") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);" (assignment_expression "local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" (identifier "local_36") (= "=") (pointer_expression "*(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" (* "*") (cast_expression "(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 3) + (int)pdVar16 * 2)" (( "(") (binary_expression "*(int *)(param_1 + 3) + (int)pdVar16 * 2" (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (+ "+") (binary_expression "(int)pdVar16 * 2" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (* "*") (number_literal "2"))) () ")"))))) (; ";")) (expression_statement "param_4 = unaff_s4;" (assignment_expression "param_4 = unaff_s4" (identifier "param_4") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "(*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);" (call_expression "(*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3)" (parenthesized_expression "(*(code *)PTR_SetMatrixElement_003a96a4)" (( "(") (pointer_expression "*(code *)PTR_SetMatrixElement_003a96a4" (* "*") (cast_expression "(code *)PTR_SetMatrixElement_003a96a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetMatrixElement_003a96a4"))) () ")")) (argument_list "(pdVar5,iVar21,iVar3)" (( "(") (identifier "pdVar5") (, ",") (identifier "iVar21") (, ",") (identifier "iVar3") () ")"))) (; ";")) (expression_statement "pdVar16 = (double *)0x0;" (assignment_expression "pdVar16 = (double *)0x0" (identifier "pdVar16") (= "=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2 = *(int *)(puVar34 + 0xc);" (assignment_expression "param_2 = *(int *)(puVar34 + 0xc)" (identifier "param_2") (= "=") (pointer_expression "*(int *)(puVar34 + 0xc)" (* "*") (cast_expression "(int *)(puVar34 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar34 + 0xc)" (( "(") (binary_expression "puVar34 + 0xc" (identifier "puVar34") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "unaff_s7 = (ushort *)((int)unaff_s7 + 1);" (assignment_expression "unaff_s7 = (ushort *)((int)unaff_s7 + 1)" (identifier "unaff_s7") (= "=") (cast_expression "(ushort *)((int)unaff_s7 + 1)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s7 + 1)" (( "(") (binary_expression "(int)unaff_s7 + 1" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;" (assignment_expression "unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4" (identifier "unaff_s6") (= "=") (binary_expression "unaff_s6 + *(int *)(puVar34 + 0x160) * 4" (identifier "unaff_s6") (+ "+") (binary_expression "*(int *)(puVar34 + 0x160) * 4" (pointer_expression "*(int *)(puVar34 + 0x160)" (* "*") (cast_expression "(int *)(puVar34 + 0x160)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar34 + 0x160)" (( "(") (binary_expression "puVar34 + 0x160" (identifier "puVar34") (+ "+") (number_literal "0x160")) () ")")))) (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)unaff_s7 < param_2)" (( "(") (binary_expression "(int)unaff_s7 < param_2" (cast_expression "(int)unaff_s7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s7")) (< "<") (identifier "param_2")) () ")")) (; ";")) (expression_statement "param_3 = 0;" (assignment_expression "param_3 = 0" (identifier "param_3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar7 != 0) {\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            param_2 = iVar21 + -1;\n            local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);\n            pdVar16 = pdVar5;\n            param_3 = iVar3;\n            param_4 = unaff_s4;\n            (*(code *)PTR_SetMatrixElement_003a96a4)();\n          }" ({ "{") (expression_statement "param_2 = iVar21 + -1;" (assignment_expression "param_2 = iVar21 + -1" (identifier "param_2") (= "=") (binary_expression "iVar21 + -1" (identifier "iVar21") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);" (assignment_expression "local_36 = *(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" (identifier "local_36") (= "=") (pointer_expression "*(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" (* "*") (cast_expression "(ushort *)\n                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2)" (( "(") (binary_expression "*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2" (pointer_expression "*(int *)(param_1 + 3)" (* "*") (cast_expression "(int *)(param_1 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 3)" (( "(") (binary_expression "param_1 + 3" (identifier "param_1") (+ "+") (number_literal "3")) () ")")))) (+ "+") (binary_expression "((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2" (parenthesized_expression "((int)pdVar16 << (8U - iVar7 & 0x1f))" (( "(") (binary_expression "(int)pdVar16 << (8U - iVar7 & 0x1f)" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (<< "<<") (parenthesized_expression "(8U - iVar7 & 0x1f)" (( "(") (binary_expression "8U - iVar7 & 0x1f" (binary_expression "8U - iVar7" (number_literal "8U") (- "-") (identifier "iVar7")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (* "*") (number_literal "2"))) () ")"))))) (; ";")) (expression_statement "pdVar16 = pdVar5;" (assignment_expression "pdVar16 = pdVar5" (identifier "pdVar16") (= "=") (identifier "pdVar5")) (; ";")) (expression_statement "param_3 = iVar3;" (assignment_expression "param_3 = iVar3" (identifier "param_3") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "param_4 = unaff_s4;" (assignment_expression "param_4 = unaff_s4" (identifier "param_4") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "(*(code *)PTR_SetMatrixElement_003a96a4)();" (call_expression "(*(code *)PTR_SetMatrixElement_003a96a4)()" (parenthesized_expression "(*(code *)PTR_SetMatrixElement_003a96a4)" (( "(") (pointer_expression "*(code *)PTR_SetMatrixElement_003a96a4" (* "*") (cast_expression "(code *)PTR_SetMatrixElement_003a96a4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_SetMatrixElement_003a96a4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_001a1798;" (goto "goto") (statement_identifier "LAB_001a1798") (; ";")) (} "}"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)((int)param_1 + 0x1c) = 0;" (assignment_expression "*(int *)((int)param_1 + 0x1c) = 0" (pointer_expression "*(int *)((int)param_1 + 0x1c)" (* "*") (cast_expression "(int *)((int)param_1 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x1c)" (( "(") (binary_expression "(int)param_1 + 0x1c" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar38 != iVar3)" (( "(") (binary_expression "iVar38 != iVar3" (identifier "iVar38") (!= "!=") (identifier "iVar3")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_001a17a4:\n  if (local_34 == *(int *)puVar2) {\n    return;\n  }" (statement_identifier "LAB_001a17a4") (: ":") (if_statement "if (local_34 == *(int *)puVar2) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_34 == *(int *)puVar2)" (( "(") (binary_expression "local_34 == *(int *)puVar2" (identifier "local_34") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "pcVar35 = FUN_001a185c;" (assignment_expression "pcVar35 = FUN_001a185c" (identifier "pcVar35") (= "=") (identifier "FUN_001a185c")) (; ";")) (expression_statement "puVar32 = PTR___stack_chk_fail_003a9064;" (assignment_expression "puVar32 = PTR___stack_chk_fail_003a9064" (identifier "puVar32") (= "=") (identifier "PTR___stack_chk_fail_003a9064")) (; ";")) (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 "puStack_a8 = puVar32 + 0x20f054;" (assignment_expression "puStack_a8 = puVar32 + 0x20f054" (identifier "puStack_a8") (= "=") (binary_expression "puVar32 + 0x20f054" (identifier "puVar32") (+ "+") (number_literal "0x20f054"))) (; ";")) (expression_statement "piStack_9c = *(int **)(puVar32 + 0x2079d4);" (assignment_expression "piStack_9c = *(int **)(puVar32 + 0x2079d4)" (identifier "piStack_9c") (= "=") (pointer_expression "*(int **)(puVar32 + 0x2079d4)" (* "*") (cast_expression "(int **)(puVar32 + 0x2079d4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x2079d4)" (( "(") (binary_expression "puVar32 + 0x2079d4" (identifier "puVar32") (+ "+") (number_literal "0x2079d4")) () ")"))))) (; ";")) (expression_statement "puStack_8c = puVar2;" (assignment_expression "puStack_8c = puVar2" (identifier "puStack_8c") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "iStack_94 = *piStack_9c;" (assignment_expression "iStack_94 = *piStack_9c" (identifier "iStack_94") (= "=") (pointer_expression "*piStack_9c" (* "*") (identifier "piStack_9c"))) (; ";")) (expression_statement "iVar18 = *(int *)(pdVar16 + 1);" (assignment_expression "iVar18 = *(int *)(pdVar16 + 1)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(pdVar16 + 1)" (* "*") (cast_expression "(int *)(pdVar16 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar16 + 1)" (( "(") (binary_expression "pdVar16 + 1" (identifier "pdVar16") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "iStack_a0 = *(int *)((int)pdVar16 + 4);" (assignment_expression "iStack_a0 = *(int *)((int)pdVar16 + 4)" (identifier "iStack_a0") (= "=") (pointer_expression "*(int *)((int)pdVar16 + 4)" (* "*") (cast_expression "(int *)((int)pdVar16 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar16 + 4)" (( "(") (binary_expression "(int)pdVar16 + 4" (cast_expression "(int)pdVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar16")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar30 = *(int *)pdVar16;" (assignment_expression "iVar30 = *(int *)pdVar16" (identifier "iVar30") (= "=") (pointer_expression "*(int *)pdVar16" (* "*") (cast_expression "(int *)pdVar16" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar16")))) (; ";")) (expression_statement "iVar4 = iVar18;" (assignment_expression "iVar4 = iVar18" (identifier "iVar4") (= "=") (identifier "iVar18")) (; ";")) (expression_statement "iStack_90 = iVar38;" (assignment_expression "iStack_90 = iVar38" (identifier "iStack_90") (= "=") (identifier "iVar38")) (; ";")) (expression_statement "iStack_88 = iVar3;" (assignment_expression "iStack_88 = iVar3" (identifier "iStack_88") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "pdStack_84 = param_1;" (assignment_expression "pdStack_84 = param_1" (identifier "pdStack_84") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puStack_80 = unaff_s4;" (assignment_expression "puStack_80 = unaff_s4" (identifier "puStack_80") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "uStack_7c = unaff_s5;" (assignment_expression "uStack_7c = unaff_s5" (identifier "uStack_7c") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "iStack_78 = unaff_s6;" (assignment_expression "iStack_78 = unaff_s6" (identifier "iStack_78") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "puStack_74 = unaff_s7;" (assignment_expression "puStack_74 = unaff_s7" (identifier "puStack_74") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "puStack_70 = puVar34;" (assignment_expression "puStack_70 = puVar34" (identifier "puStack_70") (= "=") (identifier "puVar34")) (; ";")) (expression_statement "pcStack_6c = pcVar35;" (assignment_expression "pcStack_6c = pcVar35" (identifier "pcStack_6c") (= "=") (identifier "pcVar35")) (; ";")) (expression_statement "iVar3 = (**(code **)(puVar32 + 0x2076dc))();" (assignment_expression "iVar3 = (**(code **)(puVar32 + 0x2076dc))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar32 + 0x2076dc))()" (parenthesized_expression "(**(code **)(puVar32 + 0x2076dc))" (( "(") (pointer_expression "**(code **)(puVar32 + 0x2076dc)" (* "*") (pointer_expression "*(code **)(puVar32 + 0x2076dc)" (* "*") (cast_expression "(code **)(puVar32 + 0x2076dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar32 + 0x2076dc)" (( "(") (binary_expression "puVar32 + 0x2076dc" (identifier "puVar32") (+ "+") (number_literal "0x2076dc")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();" (assignment_expression "iVar21 = (**(code **)(puStack_a8 + -0x6fa4))()" (identifier "iVar21") (= "=") (call_expression "(**(code **)(puStack_a8 + -0x6fa4))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x6fa4))" (( "(") (pointer_expression "**(code **)(puStack_a8 + -0x6fa4)" (* "*") (pointer_expression "*(code **)(puStack_a8 + -0x6fa4)" (* "*") (cast_expression "(code **)(puStack_a8 + -0x6fa4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a8 + -0x6fa4)" (( "(") (binary_expression "puStack_a8 + -0x6fa4" (identifier "puStack_a8") (+ "+") (number_literal "-0x6fa4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar7 = (**(code **)(puStack_a8 + -0x73a8))();" (assignment_expression "iVar7 = (**(code **)(puStack_a8 + -0x73a8))()" (identifier "iVar7") (= "=") (call_expression "(**(code **)(puStack_a8 + -0x73a8))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x73a8))" (( "(") (pointer_expression "**(code **)(puStack_a8 + -0x73a8)" (* "*") (pointer_expression "*(code **)(puStack_a8 + -0x73a8)" (* "*") (cast_expression "(code **)(puStack_a8 + -0x73a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a8 + -0x73a8)" (( "(") (binary_expression "puStack_a8 + -0x73a8" (identifier "puStack_a8") (+ "+") (number_literal "-0x73a8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar21 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar21 == 0)" (( "(") (binary_expression "iVar21 == 0" (identifier "iVar21") (== "==") (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 "iVar39 = iVar3 / iVar21;" (assignment_expression "iVar39 = iVar3 / iVar21" (identifier "iVar39") (= "=") (binary_expression "iVar3 / iVar21" (identifier "iVar3") (/ "/") (identifier "iVar21"))) (; ";")) (expression_statement "iVar3 = iVar3 % iVar21;" (assignment_expression "iVar3 = iVar3 % iVar21" (identifier "iVar3") (= "=") (binary_expression "iVar3 % iVar21" (identifier "iVar3") (% "%") (identifier "iVar21"))) (; ";")) (if_statement "if (iVar7 < iVar3) {\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }" (if "if") (parenthesized_expression "(iVar7 < iVar3)" (( "(") (binary_expression "iVar7 < iVar3" (identifier "iVar7") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n    iVar39 = iVar39 + 1;\n    iVar3 = 0;\n  }" ({ "{") (expression_statement "iVar39 = iVar39 + 1;" (assignment_expression "iVar39 = iVar39 + 1" (identifier "iVar39") (= "=") (binary_expression "iVar39 + 1" (identifier "iVar39") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar39 * iVar7 + iVar3;" (assignment_expression "iVar3 = iVar39 * iVar7 + iVar3" (identifier "iVar3") (= "=") (binary_expression "iVar39 * iVar7 + iVar3" (binary_expression "iVar39 * iVar7" (identifier "iVar39") (* "*") (identifier "iVar7")) (+ "+") (identifier "iVar3"))) (; ";")) (expression_statement "iVar39 = iVar39 + iVar3;" (assignment_expression "iVar39 = iVar39 + iVar3" (identifier "iVar39") (= "=") (binary_expression "iVar39 + iVar3" (identifier "iVar39") (+ "+") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar3 < iVar39) {\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }" (if "if") (parenthesized_expression "(iVar3 < iVar39)" (( "(") (binary_expression "iVar3 < iVar39" (identifier "iVar3") (< "<") (identifier "iVar39")) () ")")) (compound_statement "{\n    unaff_s7 = &uStack_98;\n    puVar34 = &uStack_96;\n    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);\n    do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);\n  }" ({ "{") (expression_statement "unaff_s7 = &uStack_98;" (assignment_expression "unaff_s7 = &uStack_98" (identifier "unaff_s7") (= "=") (pointer_expression "&uStack_98" (& "&") (identifier "uStack_98"))) (; ";")) (expression_statement "puVar34 = &uStack_96;" (assignment_expression "puVar34 = &uStack_96" (identifier "puVar34") (= "=") (pointer_expression "&uStack_96" (& "&") (identifier "uStack_96"))) (; ";")) (expression_statement "unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);" (assignment_expression "unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff)" (identifier "unaff_s4") (= "=") (cast_expression "(ushort *)(iVar30 * iVar3 + 0x3fffffff)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar30 * iVar3 + 0x3fffffff)" (( "(") (binary_expression "iVar30 * iVar3 + 0x3fffffff" (binary_expression "iVar30 * iVar3" (identifier "iVar30") (* "*") (identifier "iVar3")) (+ "+") (number_literal "0x3fffffff")) () ")")))) (; ";")) (do_statement "do {\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    } while (iVar39 != iVar3);" (do "do") (compound_statement "{\n      iVar38 = 0;\n      param_1 = (double *)0x0;\n      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }\nLAB_001a19d0:\n      iVar3 = iVar3 + 1;\n      iVar4 = iVar18;\n      iVar21 = (**(code **)(puStack_a8 + -0x7978))();\n      iVar21 = (int)unaff_s4 + iVar21;\n      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);\n      *(double **)(iStack_a0 + iVar21 * 4) = param_1;\n    }" ({ "{") (expression_statement "iVar38 = 0;" (assignment_expression "iVar38 = 0" (identifier "iVar38") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1 = (double *)0x0;" (assignment_expression "param_1 = (double *)0x0" (identifier "param_1") (= "=") (cast_expression "(double *)0x0" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (while_statement "while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }" (while "while") (parenthesized_expression "(iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1)" (( "(") (comma_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puStack_a8 + -0x7288))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7288))" (( "(") (pointer_expression "**(code **)(puStack_a8 + -0x7288)" (* "*") (pointer_expression "*(code **)(puStack_a8 + -0x7288)" (* "*") (cast_expression "(code **)(puStack_a8 + -0x7288)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a8 + -0x7288)" (( "(") (binary_expression "puStack_a8 + -0x7288" (identifier "puStack_a8") (+ "+") (number_literal "-0x7288")) () ")"))))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")")))) (, ",") (binary_expression "iVar38 < iVar4 + -1" (identifier "iVar38") (< "<") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1")))) () ")")) (compound_statement "{\n        while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }\n      }" ({ "{") (while_statement "while( true ) {\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          param_2 = iVar3;\n          param_3 = iVar38;\n          param_4 = unaff_s7;\n          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);\n          iVar38 = iVar38 + 1;\n          if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;\n          param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);\n          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);\n          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;\n        }" ({ "{") (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" (identifier "param_2") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "param_3 = iVar38;" (assignment_expression "param_3 = iVar38" (identifier "param_3") (= "=") (identifier "iVar38")) (; ";")) (expression_statement "param_4 = unaff_s7;" (assignment_expression "param_4 = unaff_s7" (identifier "param_4") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puStack_a8 + -0x7644))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7644))" (( "(") (pointer_expression "**(code **)(puStack_a8 + -0x7644)" (* "*") (pointer_expression "*(code **)(puStack_a8 + -0x7644)" (* "*") (cast_expression "(code **)(puStack_a8 + -0x7644)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a8 + -0x7644)" (( "(") (binary_expression "puStack_a8 + -0x7644" (identifier "puStack_a8") (+ "+") (number_literal "-0x7644")) () ")"))))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")")))) (; ";")) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" (identifier "iVar38") (= "=") (binary_expression "iVar38 + 1" (identifier "iVar38") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;" (if "if") (parenthesized_expression "((iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0))" (( "(") (binary_expression "(iVar4 == 0) ||\n             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)" (( "(") (comma_expression "param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "param_2 = iVar3" (identifier "param_2") (= "=") (identifier "iVar3")) (, ",") (comma_expression "param_3 = iVar38, param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "param_3 = iVar38" (identifier "param_3") (= "=") (identifier "iVar38")) (, ",") (comma_expression "param_4 = puVar34,\n             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "param_4 = puVar34" (identifier "param_4") (= "=") (identifier "puVar34")) (, ",") (comma_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puStack_a8 + -0x7644))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7644))" (( "(") (pointer_expression "**(code **)(puStack_a8 + -0x7644)" (* "*") (pointer_expression "*(code **)(puStack_a8 + -0x7644)" (* "*") (cast_expression "(code **)(puStack_a8 + -0x7644)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a8 + -0x7644)" (( "(") (binary_expression "puStack_a8 + -0x7644" (identifier "puStack_a8") (+ "+") (number_literal "-0x7644")) () ")"))))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")")))) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")))))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1);" (assignment_expression "param_1 = (double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1)" (identifier "param_1") (= "=") (cast_expression "(double *)\n                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1)" (( "(") (binary_expression "((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +\n                    (int)param_1" (binary_expression "((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96)" (parenthesized_expression "((uint)uStack_98 - (uint)uStack_96)" (( "(") (binary_expression "(uint)uStack_98 - (uint)uStack_96" (cast_expression "(uint)uStack_98" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_98")) (- "-") (cast_expression "(uint)uStack_96" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_96"))) () ")")) (* "*") (parenthesized_expression "((uint)uStack_98 - (uint)uStack_96)" (( "(") (binary_expression "(uint)uStack_98 - (uint)uStack_96" (cast_expression "(uint)uStack_98" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_98")) (- "-") (cast_expression "(uint)uStack_96" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uStack_96"))) () ")"))) (+ "+") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")))) (; ";")) (expression_statement "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);" (assignment_expression "iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puStack_a8 + -0x7288))(iVar18)" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7288))" (( "(") (pointer_expression "**(code **)(puStack_a8 + -0x7288)" (* "*") (pointer_expression "*(code **)(puStack_a8 + -0x7288)" (* "*") (cast_expression "(code **)(puStack_a8 + -0x7288)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a8 + -0x7288)" (( "(") (binary_expression "puStack_a8 + -0x7288" (identifier "puStack_a8") (+ "+") (number_literal "-0x7288")) () ")"))))) () ")")) (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")")))) (; ";")) (if_statement "if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;" (if "if") (parenthesized_expression "(iVar4 + -1 <= iVar38)" (( "(") (binary_expression "iVar4 + -1 <= iVar38" (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1")) (<= "<=") (identifier "iVar38")) () ")")) (goto_statement "goto LAB_001a19d0;" (goto "goto") (statement_identifier "LAB_001a19d0") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_001a19d0:\n      iVar3 = iVar3 + 1;" (statement_identifier "LAB_001a19d0") (: ":") (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar4 = iVar18;" (assignment_expression "iVar4 = iVar18" (identifier "iVar4") (= "=") (identifier "iVar18")) (; ";")) (expression_statement "iVar21 = (**(code **)(puStack_a8 + -0x7978))();" (assignment_expression "iVar21 = (**(code **)(puStack_a8 + -0x7978))()" (identifier "iVar21") (= "=") (call_expression "(**(code **)(puStack_a8 + -0x7978))()" (parenthesized_expression "(**(code **)(puStack_a8 + -0x7978))" (( "(") (pointer_expression "**(code **)(puStack_a8 + -0x7978)" (* "*") (pointer_expression "*(code **)(puStack_a8 + -0x7978)" (* "*") (cast_expression "(code **)(puStack_a8 + -0x7978)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a8 + -0x7978)" (( "(") (binary_expression "puStack_a8 + -0x7978" (identifier "puStack_a8") (+ "+") (number_literal "-0x7978")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar21 = (int)unaff_s4 + iVar21;" (assignment_expression "iVar21 = (int)unaff_s4 + iVar21" (identifier "iVar21") (= "=") (binary_expression "(int)unaff_s4 + iVar21" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (identifier "iVar21"))) (; ";")) (expression_statement "unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);" (assignment_expression "unaff_s4 = (ushort *)((int)unaff_s4 + iVar30)" (identifier "unaff_s4") (= "=") (cast_expression "(ushort *)((int)unaff_s4 + iVar30)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + iVar30)" (( "(") (binary_expression "(int)unaff_s4 + iVar30" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (identifier "iVar30")) () ")")))) (; ";")) (expression_statement "*(double **)(iStack_a0 + iVar21 * 4) = param_1;" (assignment_expression "*(double **)(iStack_a0 + iVar21 * 4) = param_1" (pointer_expression "*(double **)(iStack_a0 + iVar21 * 4)" (* "*") (cast_expression "(double **)(iStack_a0 + iVar21 * 4)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iStack_a0 + iVar21 * 4)" (( "(") (binary_expression "iStack_a0 + iVar21 * 4" (identifier "iStack_a0") (+ "+") (binary_expression "iVar21 * 4" (identifier "iVar21") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "param_1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar39 != iVar3)" (( "(") (binary_expression "iVar39 != iVar3" (identifier "iVar39") (!= "!=") (identifier "iVar3")) () ")")) (; ";")) (} "}"))) (if_statement "if (iStack_94 == *piStack_9c) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_94 == *piStack_9c)" (( "(") (binary_expression "iStack_94 == *piStack_9c" (identifier "iStack_94") (== "==") (pointer_expression "*piStack_9c" (* "*") (identifier "piStack_9c"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar35 = *(code **)(puStack_a8 + -0x784c);" (assignment_expression "pcVar35 = *(code **)(puStack_a8 + -0x784c)" (identifier "pcVar35") (= "=") (pointer_expression "*(code **)(puStack_a8 + -0x784c)" (* "*") (cast_expression "(code **)(puStack_a8 + -0x784c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_a8 + -0x784c)" (( "(") (binary_expression "puStack_a8 + -0x784c" (identifier "puStack_a8") (+ "+") (number_literal "-0x784c")) () ")"))))) (; ";")) (expression_statement "pcVar36 = FUN_001a1a4c;" (assignment_expression "pcVar36 = FUN_001a1a4c" (identifier "pcVar36") (= "=") (identifier "FUN_001a1a4c")) (; ";")) (expression_statement "(*pcVar35)();" (call_expression "(*pcVar35)()" (parenthesized_expression "(*pcVar35)" (( "(") (pointer_expression "*pcVar35" (* "*") (identifier "pcVar35")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar2 = puStack_a8;" (assignment_expression "puVar2 = puStack_a8" (identifier "puVar2") (= "=") (identifier "puStack_a8")) (; ";")) (expression_statement "piVar8 = *(int **)(pcVar35 + 0x2077e4);" (assignment_expression "piVar8 = *(int **)(pcVar35 + 0x2077e4)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(pcVar35 + 0x2077e4)" (* "*") (cast_expression "(int **)(pcVar35 + 0x2077e4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2077e4)" (( "(") (binary_expression "pcVar35 + 0x2077e4" (identifier "pcVar35") (+ "+") (number_literal "0x2077e4")) () ")"))))) (; ";")) (expression_statement "uStack_110 = 1;" (assignment_expression "uStack_110 = 1" (identifier "uStack_110") (= "=") (number_literal "1")) (; ";")) (expression_statement "iStack_e4 = *piVar8;" (assignment_expression "iStack_e4 = *piVar8" (identifier "iStack_e4") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "iStack_e0 = iVar38;" (assignment_expression "iStack_e0 = iVar38" (identifier "iStack_e0") (= "=") (identifier "iVar38")) (; ";")) (expression_statement "iStack_dc = iVar18;" (assignment_expression "iStack_dc = iVar18" (identifier "iStack_dc") (= "=") (identifier "iVar18")) (; ";")) (expression_statement "iStack_d8 = iVar3;" (assignment_expression "iStack_d8 = iVar3" (identifier "iStack_d8") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "pdStack_d4 = param_1;" (assignment_expression "pdStack_d4 = param_1" (identifier "pdStack_d4") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puStack_d0 = unaff_s4;" (assignment_expression "puStack_d0 = unaff_s4" (identifier "puStack_d0") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "iStack_cc = iVar39;" (assignment_expression "iStack_cc = iVar39" (identifier "iStack_cc") (= "=") (identifier "iVar39")) (; ";")) (expression_statement "iStack_c8 = iVar30;" (assignment_expression "iStack_c8 = iVar30" (identifier "iStack_c8") (= "=") (identifier "iVar30")) (; ";")) (expression_statement "puStack_c4 = unaff_s7;" (assignment_expression "puStack_c4 = unaff_s7" (identifier "puStack_c4") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "puStack_c0 = puVar34;" (assignment_expression "puStack_c0 = puVar34" (identifier "puStack_c0") (= "=") (identifier "puVar34")) (; ";")) (expression_statement "pcStack_bc = pcVar36;" (assignment_expression "pcStack_bc = pcVar36" (identifier "pcStack_bc") (= "=") (identifier "pcVar36")) (; ";")) (expression_statement "puStack_ac = param_4;" (assignment_expression "puStack_ac = param_4" (identifier "puStack_ac") (= "=") (identifier "param_4")) (; ";")) (expression_statement "uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" (identifier "uVar9") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2074ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2074ec)" (( "(") (binary_expression "pcVar35 + 0x2074ec" (identifier "pcVar35") (+ "+") (number_literal "0x2074ec")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" (identifier "iVar3") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (1 < uVar9) {\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }" (if "if") (parenthesized_expression "(1 < uVar9)" (( "(") (binary_expression "1 < uVar9" (number_literal "1") (< "<") (identifier "uVar9")) () ")")) (compound_statement "{\n    do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);\n  }" ({ "{") (do_statement "do {\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    } while (uVar9 < uVar11);" (do "do") (compound_statement "{\n      param_2 = param_3;\n      param_3 = iVar3;\n      uVar9 = uStack_110 * 2;\n      iStack_10c = 0;\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n      if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }\n      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      iVar3 = param_2;\n      uStack_110 = uVar9;\n    }" ({ "{") (expression_statement "param_2 = param_3;" (assignment_expression "param_2 = param_3" (identifier "param_2") (= "=") (identifier "param_3")) (; ";")) (expression_statement "param_3 = iVar3;" (assignment_expression "param_3 = iVar3" (identifier "param_3") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "uVar9 = uStack_110 * 2;" (assignment_expression "uVar9 = uStack_110 * 2" (identifier "uVar9") (= "=") (binary_expression "uStack_110 * 2" (identifier "uStack_110") (* "*") (number_literal "2"))) (; ";")) (expression_statement "iStack_10c = 0;" (assignment_expression "iStack_10c = 0" (identifier "iStack_10c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2074ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2074ec)" (( "(") (binary_expression "pcVar35 + 0x2074ec" (identifier "pcVar35") (+ "+") (number_literal "0x2074ec")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (0 < iVar3) {\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }" (if "if") (parenthesized_expression "(0 < iVar3)" (( "(") (binary_expression "0 < iVar3" (number_literal "0") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n        do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);\n      }" ({ "{") (do_statement "do {\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        } while (iStack_10c < iVar3);" (do "do") (compound_statement "{\n          if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }\n          iStack_10c = iStack_10c + uVar9;\n          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);\n        }" ({ "{") (if_statement "if (0 < (int)uStack_110) {\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }" (if "if") (parenthesized_expression "(0 < (int)uStack_110)" (( "(") (binary_expression "0 < (int)uStack_110" (number_literal "0") (< "<") (cast_expression "(int)uStack_110" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uStack_110"))) () ")")) (compound_statement "{\n            iStack_118 = iStack_10c + 1;\n            iVar38 = iStack_10c + uStack_110;\n            iVar3 = iStack_10c;\n            uVar11 = 0;\n            do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);\n          }" ({ "{") (expression_statement "iStack_118 = iStack_10c + 1;" (assignment_expression "iStack_118 = iStack_10c + 1" (identifier "iStack_118") (= "=") (binary_expression "iStack_10c + 1" (identifier "iStack_10c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar38 = iStack_10c + uStack_110;" (assignment_expression "iVar38 = iStack_10c + uStack_110" (identifier "iVar38") (= "=") (binary_expression "iStack_10c + uStack_110" (identifier "iStack_10c") (+ "+") (identifier "uStack_110"))) (; ";")) (expression_statement "iVar3 = iStack_10c;" (assignment_expression "iVar3 = iStack_10c" (identifier "iVar3") (= "=") (identifier "iStack_10c")) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            } while (uStack_110 != uVar10);" (do "do") (compound_statement "{\n              iVar18 = 0;\n              iVar21 = iStack_118 + -1;\n              uVar10 = uVar11 + 1;\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }\n              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n              if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }\n              iVar3 = iVar3 + 1;\n              iStack_118 = iStack_118 + 2;\n              iVar38 = iVar38 + 1;\n              uVar11 = uVar10;\n            }" ({ "{") (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar21 = iStack_118 + -1;" (assignment_expression "iVar21 = iStack_118 + -1" (identifier "iVar21") (= "=") (binary_expression "iStack_118 + -1" (identifier "iStack_118") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar10 = uVar11 + 1;" (assignment_expression "uVar10 = uVar11 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207bdc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207bdc)" (( "(") (binary_expression "pcVar35 + 0x207bdc" (identifier "pcVar35") (+ "+") (number_literal "0x207bdc")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (0 < (int)(iVar7 + ~uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }" (if "if") (parenthesized_expression "(0 < (int)(iVar7 + ~uVar11))" (( "(") (binary_expression "0 < (int)(iVar7 + ~uVar11)" (number_literal "0") (< "<") (cast_expression "(int)(iVar7 + ~uVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar7 + ~uVar11)" (( "(") (binary_expression "iVar7 + ~uVar11" (identifier "iVar7") (+ "+") (unary_expression "~uVar11" (~ "~") (identifier "uVar11"))) () ")")))) () ")")) (compound_statement "{\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));\n              }" ({ "{") (do_statement "do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 + ~uVar11));" (do "do") (compound_statement "{\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                }" ({ "{") (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207820)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207820)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207820)" (( "(") (binary_expression "pcVar35 + 0x207820" (identifier "pcVar35") (+ "+") (number_literal "0x207820")) () ")"))))) () ")")) (argument_list "(param_3,iVar3,iVar18,&sStack_f2)" (( "(") (identifier "param_3") (, ",") (identifier "iVar3") (, ",") (identifier "iVar18") (, ",") (pointer_expression "&sStack_f2" (& "&") (identifier "sStack_f2")) () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }" (if "if") (parenthesized_expression "((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207820)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207820)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207820)" (( "(") (binary_expression "pcVar35 + 0x207820" (identifier "pcVar35") (+ "+") (number_literal "0x207820")) () ")"))))) () ")")) (argument_list "(param_3,iVar38,uVar11 + iVar18,&puStack_f0)" (( "(") (identifier "param_3") (, ",") (identifier "iVar38") (, ",") (binary_expression "uVar11 + iVar18" (identifier "uVar11") (+ "+") (identifier "iVar18")) (, ",") (pointer_expression "&puStack_f0" (& "&") (identifier "puStack_f0")) () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }\n                  }" ({ "{") (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (identifier "puStack_f0") (= "=") (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (identifier "CONCAT22") (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (( "(") (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" (identifier "puStack_f0") (. ".") (field_identifier "_0_2_")) (+ "+") (identifier "sStack_f2")) (, ",") (field_expression "puStack_f0._2_2_" (identifier "puStack_f0") (. ".") (field_identifier "_2_2_")) () ")"))))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207c58)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207c58)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207c58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207c58)" (( "(") (binary_expression "pcVar35 + 0x207c58" (identifier "pcVar35") (+ "+") (number_literal "0x207c58")) () ")"))))) () ")")) (argument_list "(param_2,iVar21,iVar18,&puStack_f0)" (( "(") (identifier "param_2") (, ",") (identifier "iVar21") (, ",") (identifier "iVar18") (, ",") (pointer_expression "&puStack_f0" (& "&") (identifier "puStack_f0")) () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))\n                    {\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }" (if "if") (parenthesized_expression "((iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) &&\n                       (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207820))\n                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207820)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207820)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207820)" (( "(") (binary_expression "pcVar35 + 0x207820" (identifier "pcVar35") (+ "+") (number_literal "0x207820")) () ")"))))) () ")")) (argument_list "(param_3,iVar38,uVar10 + iVar18,&puStack_f0)" (( "(") (identifier "param_3") (, ",") (identifier "iVar38") (, ",") (binary_expression "uVar10 + iVar18" (identifier "uVar10") (+ "+") (identifier "iVar18")) (, ",") (pointer_expression "&puStack_f0" (& "&") (identifier "puStack_f0")) () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);\n                    }" ({ "{") (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)\n                      ;" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (identifier "puStack_f0") (= "=") (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (identifier "CONCAT22") (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (( "(") (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" (identifier "puStack_f0") (. ".") (field_identifier "_0_2_")) (+ "+") (identifier "sStack_f2")) (, ",") (field_expression "puStack_f0._2_2_" (identifier "puStack_f0") (. ".") (field_identifier "_2_2_")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);" (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207c58)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207c58)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207c58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207c58)" (( "(") (binary_expression "pcVar35 + 0x207c58" (identifier "pcVar35") (+ "+") (number_literal "0x207c58")) () ")"))))) () ")")) (argument_list "(param_2,iStack_118,iVar18,&puStack_f0)" (( "(") (identifier "param_2") (, ",") (identifier "iStack_118") (, ",") (identifier "iVar18") (, ",") (pointer_expression "&puStack_f0" (& "&") (identifier "puStack_f0")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207bdc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207bdc)" (( "(") (binary_expression "pcVar35 + 0x207bdc" (identifier "pcVar35") (+ "+") (number_literal "0x207bdc")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 < (int)(iVar7 + ~uVar11))" (( "(") (binary_expression "iVar18 < (int)(iVar7 + ~uVar11)" (identifier "iVar18") (< "<") (cast_expression "(int)(iVar7 + ~uVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar7 + ~uVar11)" (( "(") (binary_expression "iVar7 + ~uVar11" (identifier "iVar7") (+ "+") (unary_expression "~uVar11" (~ "~") (identifier "uVar11"))) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207bdc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207bdc)" (( "(") (binary_expression "pcVar35 + 0x207bdc" (identifier "pcVar35") (+ "+") (number_literal "0x207bdc")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar18 < (int)(iVar7 - uVar11)) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }" (if "if") (parenthesized_expression "(iVar18 < (int)(iVar7 - uVar11))" (( "(") (binary_expression "iVar18 < (int)(iVar7 - uVar11)" (identifier "iVar18") (< "<") (cast_expression "(int)(iVar7 - uVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar7 - uVar11)" (( "(") (binary_expression "iVar7 - uVar11" (identifier "iVar7") (- "-") (identifier "uVar11")) () ")")))) () ")")) (compound_statement "{\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));\n              }" ({ "{") (do_statement "do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < (int)(iVar7 - uVar11));" (do "do") (compound_statement "{\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                }" ({ "{") (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207820)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207820)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207820)" (( "(") (binary_expression "pcVar35 + 0x207820" (identifier "pcVar35") (+ "+") (number_literal "0x207820")) () ")"))))) () ")")) (argument_list "(param_3,iVar3,iVar18,&sStack_f2)" (( "(") (identifier "param_3") (, ",") (identifier "iVar3") (, ",") (identifier "iVar18") (, ",") (pointer_expression "&sStack_f2" (& "&") (identifier "sStack_f2")) () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }" (if "if") (parenthesized_expression "((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207820))\n                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207820)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207820)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207820)" (( "(") (binary_expression "pcVar35 + 0x207820" (identifier "pcVar35") (+ "+") (number_literal "0x207820")) () ")"))))) () ")")) (argument_list "(param_3,iVar38,iVar18 + uVar11,&puStack_f0)" (( "(") (identifier "param_3") (, ",") (identifier "iVar38") (, ",") (binary_expression "iVar18 + uVar11" (identifier "iVar18") (+ "+") (identifier "uVar11")) (, ",") (pointer_expression "&puStack_f0" (& "&") (identifier "puStack_f0")) () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);\n                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);\n                    if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }\n                  }" ({ "{") (expression_statement "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);" (assignment_expression "puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (identifier "puStack_f0") (= "=") (cast_expression "(ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (identifier "CONCAT22") (argument_list "(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)" (( "(") (binary_expression "puStack_f0._0_2_ + sStack_f2" (field_expression "puStack_f0._0_2_" (identifier "puStack_f0") (. ".") (field_identifier "_0_2_")) (+ "+") (identifier "sStack_f2")) (, ",") (field_expression "puStack_f0._2_2_" (identifier "puStack_f0") (. ".") (field_identifier "_2_2_")) () ")"))))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207c58)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207c58)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207c58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207c58)" (( "(") (binary_expression "pcVar35 + 0x207c58" (identifier "pcVar35") (+ "+") (number_literal "0x207c58")) () ")"))))) () ")")) (argument_list "(param_2,iVar21,iVar18,&puStack_f0)" (( "(") (identifier "param_2") (, ",") (identifier "iVar21") (, ",") (identifier "iVar18") (, ",") (pointer_expression "&puStack_f0" (& "&") (identifier "puStack_f0")) () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                    }" ({ "{") (expression_statement "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);" (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207c58)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207c58)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207c58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207c58)" (( "(") (binary_expression "pcVar35 + 0x207c58" (identifier "pcVar35") (+ "+") (number_literal "0x207c58")) () ")"))))) () ")")) (argument_list "(param_2,iStack_118,iVar18,&sStack_f2)" (( "(") (identifier "param_2") (, ",") (identifier "iStack_118") (, ",") (identifier "iVar18") (, ",") (pointer_expression "&sStack_f2" (& "&") (identifier "sStack_f2")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207bdc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207bdc)" (( "(") (binary_expression "pcVar35 + 0x207bdc" (identifier "pcVar35") (+ "+") (number_literal "0x207bdc")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 < (int)(iVar7 - uVar11))" (( "(") (binary_expression "iVar18 < (int)(iVar7 - uVar11)" (identifier "iVar18") (< "<") (cast_expression "(int)(iVar7 - uVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar7 - uVar11)" (( "(") (binary_expression "iVar7 - uVar11" (identifier "iVar7") (- "-") (identifier "uVar11")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207bdc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207bdc)" (( "(") (binary_expression "pcVar35 + 0x207bdc" (identifier "pcVar35") (+ "+") (number_literal "0x207bdc")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar18 < iVar7) {\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }" (if "if") (parenthesized_expression "(iVar18 < iVar7)" (( "(") (binary_expression "iVar18 < iVar7" (identifier "iVar18") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n                do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);\n              }" ({ "{") (do_statement "do {\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                } while (iVar18 < iVar7);" (do "do") (compound_statement "{\n                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);\n                  if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }\n                  iVar18 = iVar18 + 1;\n                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);\n                }" ({ "{") (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207820))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207820)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207820)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207820)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207820)" (( "(") (binary_expression "pcVar35 + 0x207820" (identifier "pcVar35") (+ "+") (number_literal "0x207820")) () ")"))))) () ")")) (argument_list "(param_3,iVar3,iVar18,&sStack_f2)" (( "(") (identifier "param_3") (, ",") (identifier "iVar3") (, ",") (identifier "iVar18") (, ",") (pointer_expression "&sStack_f2" (& "&") (identifier "sStack_f2")) () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)) {\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }" (if "if") (parenthesized_expression "((iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) &&\n                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),\n                     iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207c58)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207c58)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207c58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207c58)" (( "(") (binary_expression "pcVar35 + 0x207c58" (identifier "pcVar35") (+ "+") (number_literal "0x207c58")) () ")"))))) () ")")) (argument_list "(param_2,iVar21,iVar18,&sStack_f2)" (( "(") (identifier "param_2") (, ",") (identifier "iVar21") (, ",") (identifier "iVar18") (, ",") (pointer_expression "&sStack_f2" (& "&") (identifier "sStack_f2")) () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);\n                  }" ({ "{") (expression_statement "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);" (call_expression "(**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207c58))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207c58)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207c58)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207c58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207c58)" (( "(") (binary_expression "pcVar35 + 0x207c58" (identifier "pcVar35") (+ "+") (number_literal "0x207c58")) () ")"))))) () ")")) (argument_list "(param_2,iStack_118,iVar18,&sStack_f2)" (( "(") (identifier "param_2") (, ",") (identifier "iStack_118") (, ",") (identifier "iVar18") (, ",") (pointer_expression "&sStack_f2" (& "&") (identifier "sStack_f2")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);" (assignment_expression "iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207bdc))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207bdc))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207bdc)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207bdc)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207bdc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207bdc)" (( "(") (binary_expression "pcVar35 + 0x207bdc" (identifier "pcVar35") (+ "+") (number_literal "0x207bdc")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar18 < iVar7)" (( "(") (binary_expression "iVar18 < iVar7" (identifier "iVar18") (< "<") (identifier "iVar7")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iStack_118 = iStack_118 + 2;" (assignment_expression "iStack_118 = iStack_118 + 2" (identifier "iStack_118") (= "=") (binary_expression "iStack_118 + 2" (identifier "iStack_118") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar38 = iVar38 + 1;" (assignment_expression "iVar38 = iVar38 + 1" (identifier "iVar38") (= "=") (binary_expression "iVar38 + 1" (identifier "iVar38") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" (identifier "uVar11") (= "=") (identifier "uVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uStack_110 != uVar10)" (( "(") (binary_expression "uStack_110 != uVar10" (identifier "uStack_110") (!= "!=") (identifier "uVar10")) () ")")) (; ";")) (} "}"))) (expression_statement "iStack_10c = iStack_10c + uVar9;" (assignment_expression "iStack_10c = iStack_10c + uVar9" (identifier "iStack_10c") (= "=") (binary_expression "iStack_10c + uVar9" (identifier "iStack_10c") (+ "+") (identifier "uVar9"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_3)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2074ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2074ec)" (( "(") (binary_expression "pcVar35 + 0x2074ec" (identifier "pcVar35") (+ "+") (number_literal "0x2074ec")) () ")"))))) () ")")) (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iStack_10c < iVar3)" (( "(") (binary_expression "iStack_10c < iVar3" (identifier "iStack_10c") (< "<") (identifier "iVar3")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" (identifier "uVar11") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2074ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2074ec)" (( "(") (binary_expression "pcVar35 + 0x2074ec" (identifier "pcVar35") (+ "+") (number_literal "0x2074ec")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" (identifier "iVar3") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uStack_110 = uVar9;" (assignment_expression "uStack_110 = uVar9" (identifier "uStack_110") (= "=") (identifier "uVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 < uVar11)" (( "(") (binary_expression "uVar9 < uVar11" (identifier "uVar9") (< "<") (identifier "uVar11")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207a68)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207a68)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207a68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207a68)" (( "(") (binary_expression "pcVar35 + 0x207a68" (identifier "pcVar35") (+ "+") (number_literal "0x207a68")) () ")"))))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (; ";")) (if_statement "if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }" (if "if") (parenthesized_expression "(((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3))))" (( "(") (binary_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&\n     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))" (parenthesized_expression "((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3))" (( "(") (binary_expression "(iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (parenthesized_expression "(iVar3 == 4)" (( "(") (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (( "(") (comma_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207a68)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207a68)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207a68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207a68)" (( "(") (binary_expression "pcVar35 + 0x207a68" (identifier "pcVar35") (+ "+") (number_literal "0x207a68")) () ")"))))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (, ",") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))" (( "(") (parenthesized_expression "(iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3))" (( "(") (comma_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207a68)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207a68)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207a68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207a68)" (( "(") (binary_expression "pcVar35 + 0x207a68" (identifier "pcVar35") (+ "+") (number_literal "0x207a68")) () ")"))))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (, ",") (binary_expression "iVar3 == 4 ||\n      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) (|| "||") (parenthesized_expression "(iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)" (( "(") (comma_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207a68))(iVar4)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207a68))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207a68)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207a68)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207a68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207a68)" (( "(") (binary_expression "pcVar35 + 0x207a68" (identifier "pcVar35") (+ "+") (number_literal "0x207a68")) () ")"))))) () ")")) (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")")))) (, ",") (binary_expression "iVar3 == 3" (identifier "iVar3") (== "==") (number_literal "3"))) () ")")))) () ")")) () ")"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n    if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }\n    if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }\n    iVar3 = 1;\n    if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }\n    goto LAB_001a1e70;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2076f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2076f0)" (( "(") (binary_expression "pcVar35 + 0x2076f0" (identifier "pcVar35") (+ "+") (number_literal "0x2076f0")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2074ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2074ec)" (( "(") (binary_expression "pcVar35 + 0x2074ec" (identifier "pcVar35") (+ "+") (number_literal "0x2074ec")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n      iVar3 = iVar3 + 0x3f;\n    }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = iVar3 + 0x3f;\n    }" ({ "{") (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 0x3f" (identifier "iVar3") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (if_statement "if (extraout_v1 < iVar3 >> 6) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }\n    else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }" (if "if") (parenthesized_expression "(extraout_v1 < iVar3 >> 6)" (( "(") (binary_expression "extraout_v1 < iVar3 >> 6" (identifier "extraout_v1") (< "<") (binary_expression "iVar3 >> 6" (identifier "iVar3") (>> ">>") (number_literal "6"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      bVar1 = extraout_v1_00 < 2;\n    }" ({ "{") (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2076f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2076f0)" (( "(") (binary_expression "pcVar35 + 0x2076f0" (identifier "pcVar35") (+ "+") (number_literal "0x2076f0")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "bVar1 = extraout_v1_00 < 2;" (assignment_expression "bVar1 = extraout_v1_00 < 2" (identifier "bVar1") (= "=") (binary_expression "extraout_v1_00 < 2" (identifier "extraout_v1_00") (< "<") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }" (else "else") (compound_statement "{\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      bVar1 = iVar3 < 0x80;\n    }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2074ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2074ec)" (( "(") (binary_expression "pcVar35 + 0x2074ec" (identifier "pcVar35") (+ "+") (number_literal "0x2074ec")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "bVar1 = iVar3 < 0x80;" (assignment_expression "bVar1 = iVar3 < 0x80" (identifier "bVar1") (= "=") (binary_expression "iVar3 < 0x80" (identifier "iVar3") (< "<") (number_literal "0x80"))) (; ";")) (} "}")))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((bool)(bVar1 ^ 1)) {\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }" (if "if") (parenthesized_expression "((bool)(bVar1 ^ 1))" (( "(") (cast_expression "(bool)(bVar1 ^ 1)" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (parenthesized_expression "(bVar1 ^ 1)" (( "(") (binary_expression "bVar1 ^ 1" (identifier "bVar1") (^ "^") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      (**(code **)(pcVar35 + 0x2076f0))(7);\n      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n      if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }\n      if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }\n    }" ({ "{") (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2076f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2076f0)" (( "(") (binary_expression "pcVar35 + 0x2076f0" (identifier "pcVar35") (+ "+") (number_literal "0x2076f0")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2074ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2074ec)" (( "(") (binary_expression "pcVar35 + 0x2074ec" (identifier "pcVar35") (+ "+") (number_literal "0x2074ec")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n        iVar3 = iVar3 + 0x3f;\n      }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = iVar3 + 0x3f;\n      }" ({ "{") (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 0x3f" (identifier "iVar3") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (if_statement "if (extraout_v1_01 < iVar3 >> 6) {\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }\n      else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" (if "if") (parenthesized_expression "(extraout_v1_01 < iVar3 >> 6)" (( "(") (binary_expression "extraout_v1_01 < iVar3 >> 6" (identifier "extraout_v1_01") (< "<") (binary_expression "iVar3 >> 6" (identifier "iVar3") (>> ">>") (number_literal "6"))) () ")")) (compound_statement "{\n        (**(code **)(pcVar35 + 0x2076f0))(7);\n        iVar3 = extraout_v1_02;\n      }" ({ "{") (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2076f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2076f0)" (( "(") (binary_expression "pcVar35 + 0x2076f0" (identifier "pcVar35") (+ "+") (number_literal "0x2076f0")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "iVar3 = extraout_v1_02;" (assignment_expression "iVar3 = extraout_v1_02" (identifier "iVar3") (= "=") (identifier "extraout_v1_02")) (; ";")) (} "}")) (else_clause "else {\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" (else "else") (compound_statement "{\n        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);\n        if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }\n        iVar3 = iVar3 >> 6;\n      }" ({ "{") (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2074ec))(param_2)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ec))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2074ec)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2074ec)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2074ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2074ec)" (( "(") (binary_expression "pcVar35 + 0x2074ec" (identifier "pcVar35") (+ "+") (number_literal "0x2074ec")) () ")"))))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n          iVar3 = iVar3 + 0x3f;\n        }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar3 = iVar3 + 0x3f;\n        }" ({ "{") (expression_statement "iVar3 = iVar3 + 0x3f;" (assignment_expression "iVar3 = iVar3 + 0x3f" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 0x3f" (identifier "iVar3") (+ "+") (number_literal "0x3f"))) (; ";")) (} "}"))) (expression_statement "iVar3 = iVar3 >> 6;" (assignment_expression "iVar3 = iVar3 >> 6" (identifier "iVar3") (= "=") (binary_expression "iVar3 >> 6" (identifier "iVar3") (>> ">>") (number_literal "6"))) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_001a1e70;" (goto "goto") (statement_identifier "LAB_001a1e70") (; ";")) (} "}"))) (expression_statement "uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);" (assignment_expression "uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7)" (identifier "uVar40") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2076f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2076f0)" (( "(") (binary_expression "pcVar35 + 0x2076f0" (identifier "pcVar35") (+ "+") (number_literal "0x2076f0")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar40 >> 0x20) == 0) {\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }\n  else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }" (if "if") (parenthesized_expression "((int)((ulonglong)uVar40 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar40 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar40 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar40 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar40 >> 0x20" (cast_expression "(ulonglong)uVar40" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar40")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n    if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }\n  }" ({ "{") (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x2076f0);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x2076f0)" (identifier "pcVar36") (= "=") (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2076f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2076f0)" (( "(") (binary_expression "pcVar35 + 0x2076f0" (identifier "pcVar35") (+ "+") (number_literal "0x2076f0")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar40 < 2) {\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }" (if "if") (parenthesized_expression "((uint)uVar40 < 2)" (( "(") (binary_expression "(uint)uVar40 < 2" (cast_expression "(uint)uVar40" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar40")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      uVar40 = (*pcVar36)(7);\n      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;\n      pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n      if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }\n    }" ({ "{") (expression_statement "uVar40 = (*pcVar36)(7);" (assignment_expression "uVar40 = (*pcVar36)(7)" (identifier "uVar40") (= "=") (call_expression "(*pcVar36)(7)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;" (if "if") (parenthesized_expression "((int)((ulonglong)uVar40 >> 0x20) != 0)" (( "(") (binary_expression "(int)((ulonglong)uVar40 >> 0x20) != 0" (cast_expression "(int)((ulonglong)uVar40 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar40 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar40 >> 0x20" (cast_expression "(ulonglong)uVar40" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar40")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a1e58;" (goto "goto") (statement_identifier "LAB_001a1e58") (; ";"))) (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x2076f0);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x2076f0)" (identifier "pcVar36") (= "=") (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2076f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2076f0)" (( "(") (binary_expression "pcVar35 + 0x2076f0" (identifier "pcVar35") (+ "+") (number_literal "0x2076f0")) () ")"))))) (; ";")) (if_statement "if ((uint)uVar40 < 2) {\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }" (if "if") (parenthesized_expression "((uint)uVar40 < 2)" (( "(") (binary_expression "(uint)uVar40 < 2" (cast_expression "(uint)uVar40" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar40")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        iVar3 = 1;\n        goto LAB_001a1e70;\n      }" ({ "{") (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_001a1e70;" (goto "goto") (statement_identifier "LAB_001a1e70") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }" (else "else") (compound_statement "{\nLAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);\n  }" ({ "{") (labeled_statement "LAB_001a1e58:\n    pcVar36 = *(code **)(pcVar35 + 0x2076f0);" (statement_identifier "LAB_001a1e58") (: ":") (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x2076f0);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x2076f0)" (identifier "pcVar36") (= "=") (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2076f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2076f0)" (( "(") (binary_expression "pcVar35 + 0x2076f0" (identifier "pcVar35") (+ "+") (number_literal "0x2076f0")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "uVar40 = (*pcVar36)(7);" (assignment_expression "uVar40 = (*pcVar36)(7)" (identifier "uVar40") (= "=") (call_expression "(*pcVar36)(7)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")")))) (; ";")) (if_statement "if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }\n  else {\n    iVar3 = 2;\n  }" (if "if") (parenthesized_expression "(((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2))" (( "(") (binary_expression "((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)" (parenthesized_expression "((int)((ulonglong)uVar40 >> 0x20) == 0)" (( "(") (binary_expression "(int)((ulonglong)uVar40 >> 0x20) == 0" (cast_expression "(int)((ulonglong)uVar40 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar40 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar40 >> 0x20" (cast_expression "(ulonglong)uVar40" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar40")) (>> ">>") (number_literal "0x20")) () ")"))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uint)uVar40 < 2)" (( "(") (binary_expression "(uint)uVar40 < 2" (cast_expression "(uint)uVar40" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar40")) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    (**(code **)(pcVar35 + 0x2076f0))(7);\n    iVar3 = extraout_v1_03;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar35 + 0x2076f0))(7);" (call_expression "(**(code **)(pcVar35 + 0x2076f0))(7)" (parenthesized_expression "(**(code **)(pcVar35 + 0x2076f0))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2076f0)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2076f0)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2076f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2076f0)" (( "(") (binary_expression "pcVar35 + 0x2076f0" (identifier "pcVar35") (+ "+") (number_literal "0x2076f0")) () ")"))))) () ")")) (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (expression_statement "iVar3 = extraout_v1_03;" (assignment_expression "iVar3 = extraout_v1_03" (identifier "iVar3") (= "=") (identifier "extraout_v1_03")) (; ";")) (} "}")) (else_clause "else {\n    iVar3 = 2;\n  }" (else "else") (compound_statement "{\n    iVar3 = 2;\n  }" ({ "{") (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" (identifier "iVar3") (= "=") (number_literal "2")) (; ";")) (} "}")))) (labeled_statement "LAB_001a1e70:\n  puStack_ec = puVar2;" (statement_identifier "LAB_001a1e70") (: ":") (expression_statement "puStack_ec = puVar2;" (assignment_expression "puStack_ec = puVar2" (identifier "puStack_ec") (= "=") (identifier "puVar2")) (; ";"))) (expression_statement "piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);" (assignment_expression "piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c)" (identifier "piVar17") (= "=") (cast_expression "(int *)(*(int *)(pcVar35 + 0x207140) + 0x185c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar35 + 0x207140) + 0x185c)" (( "(") (binary_expression "*(int *)(pcVar35 + 0x207140) + 0x185c" (pointer_expression "*(int *)(pcVar35 + 0x207140)" (* "*") (cast_expression "(int *)(pcVar35 + 0x207140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar35 + 0x207140)" (( "(") (binary_expression "pcVar35 + 0x207140" (identifier "pcVar35") (+ "+") (number_literal "0x207140")) () ")")))) (+ "+") (number_literal "0x185c")) () ")")))) (; ";")) (expression_statement "puStack_f0 = puStack_ac;" (assignment_expression "puStack_f0 = puStack_ac" (identifier "puStack_f0") (= "=") (identifier "puStack_ac")) (; ";")) (expression_statement "iStack_e8 = param_2;" (assignment_expression "iStack_e8 = param_2" (identifier "iStack_e8") (= "=") (identifier "param_2")) (; ";")) (expression_statement "(**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);" (call_expression "(**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0)" (parenthesized_expression "(**(code **)(pcVar35 + 0x20774c))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x20774c)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x20774c)" (* "*") (cast_expression "(code **)(pcVar35 + 0x20774c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x20774c)" (( "(") (binary_expression "pcVar35 + 0x20774c" (identifier "pcVar35") (+ "+") (number_literal "0x20774c")) () ")"))))) () ")")) (argument_list "(piVar17,&puStack_f0,iVar3,0)" (( "(") (identifier "piVar17") (, ",") (pointer_expression "&puStack_f0" (& "&") (identifier "puStack_f0")) (, ",") (identifier "iVar3") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (iStack_e4 == *piVar8) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_e4 == *piVar8)" (( "(") (binary_expression "iStack_e4 == *piVar8" (identifier "iStack_e4") (== "==") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar35 = *(code **)(pcVar35 + 0x207618);" (assignment_expression "pcVar35 = *(code **)(pcVar35 + 0x207618)" (identifier "pcVar35") (= "=") (pointer_expression "*(code **)(pcVar35 + 0x207618)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207618)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207618)" (( "(") (binary_expression "pcVar35 + 0x207618" (identifier "pcVar35") (+ "+") (number_literal "0x207618")) () ")"))))) (; ";")) (expression_statement "(*pcVar35)();" (call_expression "(*pcVar35)()" (parenthesized_expression "(*pcVar35)" (( "(") (pointer_expression "*pcVar35" (* "*") (identifier "pcVar35")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar38 = *(int *)piVar17[7];" (assignment_expression "iVar38 = *(int *)piVar17[7]" (identifier "iVar38") (= "=") (pointer_expression "*(int *)piVar17[7]" (* "*") (cast_expression "(int *)piVar17[7]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar17[7]" (identifier "piVar17") ([ "[") (number_literal "7") (] "]"))))) (; ";")) (expression_statement "iVar21 = piVar17[2];" (assignment_expression "iVar21 = piVar17[2]" (identifier "iVar21") (= "=") (subscript_expression "piVar17[2]" (identifier "piVar17") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar3 = (**(code **)(pcVar35 + 0x2078b0))();" (assignment_expression "iVar3 = (**(code **)(pcVar35 + 0x2078b0))()" (identifier "iVar3") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2078b0))()" (parenthesized_expression "(**(code **)(pcVar35 + 0x2078b0))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2078b0)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2078b0)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2078b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2078b0)" (( "(") (binary_expression "pcVar35 + 0x2078b0" (identifier "pcVar35") (+ "+") (number_literal "0x2078b0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar4 = (**(code **)(pcVar35 + 0x2074ac))();" (assignment_expression "iVar4 = (**(code **)(pcVar35 + 0x2074ac))()" (identifier "iVar4") (= "=") (call_expression "(**(code **)(pcVar35 + 0x2074ac))()" (parenthesized_expression "(**(code **)(pcVar35 + 0x2074ac))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x2074ac)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x2074ac)" (* "*") (cast_expression "(code **)(pcVar35 + 0x2074ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x2074ac)" (( "(") (binary_expression "pcVar35 + 0x2074ac" (identifier "pcVar35") (+ "+") (number_literal "0x2074ac")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar38 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar38 == 0)" (( "(") (binary_expression "iVar38 == 0" (identifier "iVar38") (== "==") (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 "iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;" (assignment_expression "iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38" (identifier "iVar7") (= "=") (binary_expression "(iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38" (parenthesized_expression "(iVar38 + -1 + *(int *)(iVar21 + 0x1c))" (( "(") (binary_expression "iVar38 + -1 + *(int *)(iVar21 + 0x1c)" (binary_expression "iVar38 + -1" (identifier "iVar38") (+ "+") (number_literal "-1")) (+ "+") (pointer_expression "*(int *)(iVar21 + 0x1c)" (* "*") (cast_expression "(int *)(iVar21 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x1c)" (( "(") (binary_expression "iVar21 + 0x1c" (identifier "iVar21") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (/ "/") (identifier "iVar38"))) (; ";")) (if_statement "if (iVar3 == 0) {\n    trap(7);\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (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 "iVar18 = iVar7 / iVar3;" (assignment_expression "iVar18 = iVar7 / iVar3" (identifier "iVar18") (= "=") (binary_expression "iVar7 / iVar3" (identifier "iVar7") (/ "/") (identifier "iVar3"))) (; ";")) (expression_statement "iVar7 = iVar7 % iVar3;" (assignment_expression "iVar7 = iVar7 % iVar3" (identifier "iVar7") (= "=") (binary_expression "iVar7 % iVar3" (identifier "iVar7") (% "%") (identifier "iVar3"))) (; ";")) (if_statement "if (iVar4 < iVar7) {\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }" (if "if") (parenthesized_expression "(iVar4 < iVar7)" (( "(") (binary_expression "iVar4 < iVar7" (identifier "iVar4") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n    iVar18 = iVar18 + 1;\n    iVar7 = 0;\n  }" ({ "{") (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar7 = iVar18 * iVar4 + iVar7;" (assignment_expression "iVar7 = iVar18 * iVar4 + iVar7" (identifier "iVar7") (= "=") (binary_expression "iVar18 * iVar4 + iVar7" (binary_expression "iVar18 * iVar4" (identifier "iVar18") (* "*") (identifier "iVar4")) (+ "+") (identifier "iVar7"))) (; ";")) (if_statement "if (iVar7 < iVar18 + iVar7) {\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }" (if "if") (parenthesized_expression "(iVar7 < iVar18 + iVar7)" (( "(") (binary_expression "iVar7 < iVar18 + iVar7" (identifier "iVar7") (< "<") (binary_expression "iVar18 + iVar7" (identifier "iVar18") (+ "+") (identifier "iVar7"))) () ")")) (compound_statement "{\n    iVar28 = piVar17[6];\n    iStack_188 = iVar38 * iVar7;\n    iVar3 = piVar17[5];\n    iVar4 = piVar17[4];\n    iVar30 = *(int *)(pcVar35 + 0x206890);\n    iVar39 = piVar17[3];\n    do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));\n  }" ({ "{") (expression_statement "iVar28 = piVar17[6];" (assignment_expression "iVar28 = piVar17[6]" (identifier "iVar28") (= "=") (subscript_expression "piVar17[6]" (identifier "piVar17") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "iStack_188 = iVar38 * iVar7;" (assignment_expression "iStack_188 = iVar38 * iVar7" (identifier "iStack_188") (= "=") (binary_expression "iVar38 * iVar7" (identifier "iVar38") (* "*") (identifier "iVar7"))) (; ";")) (expression_statement "iVar3 = piVar17[5];" (assignment_expression "iVar3 = piVar17[5]" (identifier "iVar3") (= "=") (subscript_expression "piVar17[5]" (identifier "piVar17") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar4 = piVar17[4];" (assignment_expression "iVar4 = piVar17[4]" (identifier "iVar4") (= "=") (subscript_expression "piVar17[4]" (identifier "piVar17") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar30 = *(int *)(pcVar35 + 0x206890);" (assignment_expression "iVar30 = *(int *)(pcVar35 + 0x206890)" (identifier "iVar30") (= "=") (pointer_expression "*(int *)(pcVar35 + 0x206890)" (* "*") (cast_expression "(int *)(pcVar35 + 0x206890)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar35 + 0x206890)" (( "(") (binary_expression "pcVar35 + 0x206890" (identifier "pcVar35") (+ "+") (number_literal "0x206890")) () ")"))))) (; ";")) (expression_statement "iVar39 = piVar17[3];" (assignment_expression "iVar39 = piVar17[3]" (identifier "iVar39") (= "=") (subscript_expression "piVar17[3]" (identifier "piVar17") ([ "[") (number_literal "3") (] "]"))) (; ";")) (do_statement "do {\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    } while (iStack_188 < iVar38 * (iVar18 + iVar7));" (do "do") (compound_statement "{\n      if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }\n      iStack_188 = iStack_188 + iVar38;\n    }" ({ "{") (if_statement "if (piVar17[9] != 0) {\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(piVar17[9] != 0)" (( "(") (binary_expression "piVar17[9] != 0" (subscript_expression "piVar17[9]" (identifier "piVar17") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar13 = *(int *)(iVar21 + 0x18);\n        if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }\n        if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar13 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar21 + 0x18)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar21 + 0x18)" (* "*") (cast_expression "(int *)(iVar21 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x18)" (( "(") (binary_expression "iVar21 + 0x18" (identifier "iVar21") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (0 < iVar13) {\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }" (if "if") (parenthesized_expression "(0 < iVar13)" (( "(") (binary_expression "0 < iVar13" (number_literal "0") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n          iVar27 = 0;\n          iVar25 = *(int *)piVar17[8];\n          iVar26 = iVar25;\n          do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);\n        }" ({ "{") (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" (identifier "iVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar25 = *(int *)piVar17[8];" (assignment_expression "iVar25 = *(int *)piVar17[8]" (identifier "iVar25") (= "=") (pointer_expression "*(int *)piVar17[8]" (* "*") (cast_expression "(int *)piVar17[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar17[8]" (identifier "piVar17") ([ "[") (number_literal "8") (] "]"))))) (; ";")) (expression_statement "iVar26 = iVar25;" (assignment_expression "iVar26 = iVar25" (identifier "iVar26") (= "=") (identifier "iVar25")) (; ";")) (do_statement "do {\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          } while (iVar27 < iVar13);" (do "do") (compound_statement "{\n            if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }\n            iVar13 = *(int *)piVar17[7];\n            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }\n            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;\n            if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }\n            if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }\n            iVar13 = *(int *)(iVar21 + 0x18);\n            iVar26 = *(int *)piVar17[8];\n            iVar27 = iVar27 + iVar26;\n            iVar25 = iVar26 + iVar27;\n          }" ({ "{") (if_statement "if (iVar13 < iVar25) {\n              iVar26 = iVar13 - iVar27;\n            }" (if "if") (parenthesized_expression "(iVar13 < iVar25)" (( "(") (binary_expression "iVar13 < iVar25" (identifier "iVar13") (< "<") (identifier "iVar25")) () ")")) (compound_statement "{\n              iVar26 = iVar13 - iVar27;\n            }" ({ "{") (expression_statement "iVar26 = iVar13 - iVar27;" (assignment_expression "iVar26 = iVar13 - iVar27" (identifier "iVar26") (= "=") (binary_expression "iVar13 - iVar27" (identifier "iVar13") (- "-") (identifier "iVar27"))) (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)piVar17[7];" (assignment_expression "iVar13 = *(int *)piVar17[7]" (identifier "iVar13") (= "=") (pointer_expression "*(int *)piVar17[7]" (* "*") (cast_expression "(int *)piVar17[7]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar17[7]" (identifier "piVar17") ([ "[") (number_literal "7") (] "]"))))) (; ";")) (if_statement "if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188)" (( "(") (binary_expression "*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188" (pointer_expression "*(int *)(iVar21 + 0x1c)" (* "*") (cast_expression "(int *)(iVar21 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x1c)" (( "(") (binary_expression "iVar21 + 0x1c" (identifier "iVar21") (+ "+") (number_literal "0x1c")) () ")")))) (< "<") (binary_expression "iVar13 + iStack_188" (identifier "iVar13") (+ "+") (identifier "iStack_188"))) () ")")) (compound_statement "{\n              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;\n            }" ({ "{") (expression_statement "iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;" (assignment_expression "iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188" (identifier "iVar13") (= "=") (binary_expression "*(int *)(iVar21 + 0x1c) - iStack_188" (pointer_expression "*(int *)(iVar21 + 0x1c)" (* "*") (cast_expression "(int *)(iVar21 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x1c)" (( "(") (binary_expression "iVar21 + 0x1c" (identifier "iVar21") (+ "+") (number_literal "0x1c")) () ")")))) (- "-") (identifier "iStack_188"))) (; ";")) (} "}"))) (expression_statement "iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)\n            ;" (assignment_expression "iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)" (identifier "iVar25") (= "=") (call_expression "(**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)" (parenthesized_expression "(**(code **)(pcVar35 + 0x207600))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x207600)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x207600)" (* "*") (cast_expression "(code **)(pcVar35 + 0x207600)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x207600)" (( "(") (binary_expression "pcVar35 + 0x207600" (identifier "pcVar35") (+ "+") (number_literal "0x207600")) () ")"))))) () ")")) (argument_list "(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)" (( "(") (identifier "iVar4") (, ",") (identifier "iVar27") (, ",") (identifier "iStack_188") (, ",") (identifier "iVar26") (, ",") (identifier "iVar13") (, ",") (identifier "iVar39") () ")")))) (; ";")) (if_statement "if (iVar25 == 0) {\n              piVar17[9] = 0;\n              break;\n            }" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              piVar17[9] = 0;\n              break;\n            }" ({ "{") (expression_statement "piVar17[9] = 0;" (assignment_expression "piVar17[9] = 0" (subscript_expression "piVar17[9]" (identifier "piVar17") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (0 < iVar26) {\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }" (if "if") (parenthesized_expression "(0 < iVar26)" (( "(") (binary_expression "0 < iVar26" (number_literal "0") (< "<") (identifier "iVar26")) () ")")) (compound_statement "{\n              iVar29 = iVar27;\n              do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);\n            }" ({ "{") (expression_statement "iVar29 = iVar27;" (assignment_expression "iVar29 = iVar27" (identifier "iVar29") (= "=") (identifier "iVar27")) (; ";")) (do_statement "do {\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              } while (iVar26 + iVar27 != iVar29);" (do "do") (compound_statement "{\n                if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }\nLAB_001a2344:\n                iVar29 = iVar29 + 1;\n              }" ({ "{") (if_statement "if (piVar17[9] != 0) {\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }" (if "if") (parenthesized_expression "(piVar17[9] != 0)" (( "(") (binary_expression "piVar17[9] != 0" (subscript_expression "piVar17[9]" (identifier "piVar17") ([ "[") (number_literal "9") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);\n                  if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }\n                  piVar17[9] = 0;\n                }" ({ "{") (expression_statement "iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39);" (assignment_expression "iVar12 = (**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39)" (identifier "iVar12") (= "=") (call_expression "(**(code **)(pcVar35 + 0x206bf4))\n                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39)" (parenthesized_expression "(**(code **)(pcVar35 + 0x206bf4))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x206bf4)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x206bf4)" (* "*") (cast_expression "(code **)(pcVar35 + 0x206bf4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x206bf4)" (( "(") (binary_expression "pcVar35 + 0x206bf4" (identifier "pcVar35") (+ "+") (number_literal "0x206bf4")) () ")"))))) () ")")) (argument_list "(iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,\n                                      iVar13,1,iVar39)" (( "(") (identifier "iVar3") (, ",") (binary_expression "(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13" (parenthesized_expression "(*(int *)(iVar28 + 0x18) - iStack_188)" (( "(") (binary_expression "*(int *)(iVar28 + 0x18) - iStack_188" (pointer_expression "*(int *)(iVar28 + 0x18)" (* "*") (cast_expression "(int *)(iVar28 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + 0x18)" (( "(") (binary_expression "iVar28 + 0x18" (identifier "iVar28") (+ "+") (number_literal "0x18")) () ")")))) (- "-") (identifier "iStack_188")) () ")")) (- "-") (identifier "iVar13")) (, ",") (identifier "iVar29") (, ",") (identifier "iVar13") (, ",") (number_literal "1") (, ",") (identifier "iVar39") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar31 = *(int *)(iVar21 + 0x2c0);\n                    puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);\n                    if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }\n                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);\n                    if (iVar12 != 0) goto LAB_001a2344;\n                  }" ({ "{") (expression_statement "iVar31 = *(int *)(iVar21 + 0x2c0);" (assignment_expression "iVar31 = *(int *)(iVar21 + 0x2c0)" (identifier "iVar31") (= "=") (pointer_expression "*(int *)(iVar21 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar21 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x2c0)" (( "(") (binary_expression "iVar21 + 0x2c0" (identifier "iVar21") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (expression_statement "puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);" (assignment_expression "puVar23 = (undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25)" (identifier "puVar23") (= "=") (cast_expression "(undefined4 *)\n                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25)" (( "(") (binary_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25" (binary_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4" (binary_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31" (parenthesized_expression "(((iVar13 + -1) * iVar26 - iVar27) + iVar29)" (( "(") (binary_expression "((iVar13 + -1) * iVar26 - iVar27) + iVar29" (parenthesized_expression "((iVar13 + -1) * iVar26 - iVar27)" (( "(") (binary_expression "(iVar13 + -1) * iVar26 - iVar27" (binary_expression "(iVar13 + -1) * iVar26" (parenthesized_expression "(iVar13 + -1)" (( "(") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1")) () ")")) (* "*") (identifier "iVar26")) (- "-") (identifier "iVar27")) () ")")) (+ "+") (identifier "iVar29")) () ")")) (* "*") (identifier "iVar31")) (* "*") (number_literal "4")) (+ "+") (identifier "iVar25")) () ")")))) (; ";")) (if_statement "if (0 < iVar13) {\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }" (if "if") (parenthesized_expression "(0 < iVar13)" (( "(") (binary_expression "0 < iVar13" (number_literal "0") (< "<") (identifier "iVar13")) () ")")) (compound_statement "{\n                      iVar33 = *(int *)(iVar28 + 0x2c0);\n                      iVar24 = 0;\n                      do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);\n                    }" ({ "{") (expression_statement "iVar33 = *(int *)(iVar28 + 0x2c0);" (assignment_expression "iVar33 = *(int *)(iVar28 + 0x2c0)" (identifier "iVar33") (= "=") (pointer_expression "*(int *)(iVar28 + 0x2c0)" (* "*") (cast_expression "(int *)(iVar28 + 0x2c0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + 0x2c0)" (( "(") (binary_expression "iVar28 + 0x2c0" (identifier "iVar28") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      } while (iVar24 != iVar13);" (do "do") (compound_statement "{\n                        if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }\n                        iVar24 = iVar24 + 1;\n                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);\n                        iVar12 = iVar12 + iVar33 * 4;\n                      }" ({ "{") (if_statement "if (0 < iVar31) {\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }" (if "if") (parenthesized_expression "(0 < iVar31)" (( "(") (binary_expression "0 < iVar31" (number_literal "0") (< "<") (identifier "iVar31")) () ")")) (compound_statement "{\n                          piVar20 = *(int **)(iVar21 + 0x2d0);\n                          iVar22 = *(int *)(iVar28 + 0x2d0);\n                          piVar8 = piVar20;\n                          puVar19 = puVar23;\n                          do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);\n                        }" ({ "{") (expression_statement "piVar20 = *(int **)(iVar21 + 0x2d0);" (assignment_expression "piVar20 = *(int **)(iVar21 + 0x2d0)" (identifier "piVar20") (= "=") (pointer_expression "*(int **)(iVar21 + 0x2d0)" (* "*") (cast_expression "(int **)(iVar21 + 0x2d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar21 + 0x2d0)" (( "(") (binary_expression "iVar21 + 0x2d0" (identifier "iVar21") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "iVar22 = *(int *)(iVar28 + 0x2d0);" (assignment_expression "iVar22 = *(int *)(iVar28 + 0x2d0)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(iVar28 + 0x2d0)" (* "*") (cast_expression "(int *)(iVar28 + 0x2d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + 0x2d0)" (( "(") (binary_expression "iVar28 + 0x2d0" (identifier "iVar28") (+ "+") (number_literal "0x2d0")) () ")"))))) (; ";")) (expression_statement "piVar8 = piVar20;" (assignment_expression "piVar8 = piVar20" (identifier "piVar8") (= "=") (identifier "piVar20")) (; ";")) (expression_statement "puVar19 = puVar23;" (assignment_expression "puVar19 = puVar23" (identifier "puVar19") (= "=") (identifier "puVar23")) (; ";")) (do_statement "do {\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          } while (piVar8 != piVar20 + iVar31 * 3);" (do "do") (compound_statement "{\n                            iVar14 = iVar22 + *piVar8 * 0xc;\n                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }\n                            piVar8 = piVar8 + 3;\n                            puVar19 = puVar19 + 1;\n                          }" ({ "{") (expression_statement "iVar14 = iVar22 + *piVar8 * 0xc;" (assignment_expression "iVar14 = iVar22 + *piVar8 * 0xc" (identifier "iVar14") (= "=") (binary_expression "iVar22 + *piVar8 * 0xc" (identifier "iVar22") (+ "+") (binary_expression "*piVar8 * 0xc" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (* "*") (number_literal "0xc")))) (; ";")) (if_statement "if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }" (if "if") (parenthesized_expression "((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0))" (( "(") (binary_expression "(piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)" (parenthesized_expression "(piVar20[*piVar8 * 3 + 1] != 0)" (( "(") (binary_expression "piVar20[*piVar8 * 3 + 1] != 0" (subscript_expression "piVar20[*piVar8 * 3 + 1]" (identifier "piVar20") ([ "[") (binary_expression "*piVar8 * 3 + 1" (binary_expression "*piVar8 * 3" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (* "*") (number_literal "3")) (+ "+") (number_literal "1")) (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar14 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar14 + 4) != 0" (pointer_expression "*(int *)(iVar14 + 4)" (* "*") (cast_expression "(int *)(iVar14 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 4)" (( "(") (binary_expression "iVar14 + 4" (identifier "iVar14") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;\n                            }" ({ "{") (expression_statement "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;" (assignment_expression "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19" (pointer_expression "*(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4)" (* "*") (cast_expression "(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + *(int *)(iVar14 + 8) * 4)" (( "(") (binary_expression "iVar12 + *(int *)(iVar14 + 8) * 4" (identifier "iVar12") (+ "+") (binary_expression "*(int *)(iVar14 + 8) * 4" (pointer_expression "*(int *)(iVar14 + 8)" (* "*") (cast_expression "(int *)(iVar14 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 8)" (( "(") (binary_expression "iVar14 + 8" (identifier "iVar14") (+ "+") (number_literal "8")) () ")")))) (* "*") (number_literal "4"))) () ")")))) (= "=") (pointer_expression "*puVar19" (* "*") (identifier "puVar19"))) (; ";")) (} "}"))) (expression_statement "piVar8 = piVar8 + 3;" (assignment_expression "piVar8 = piVar8 + 3" (identifier "piVar8") (= "=") (binary_expression "piVar8 + 3" (identifier "piVar8") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar8 != piVar20 + iVar31 * 3)" (( "(") (binary_expression "piVar8 != piVar20 + iVar31 * 3" (identifier "piVar8") (!= "!=") (binary_expression "piVar20 + iVar31 * 3" (identifier "piVar20") (+ "+") (binary_expression "iVar31 * 3" (identifier "iVar31") (* "*") (number_literal "3")))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);" (assignment_expression "puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4)" (identifier "puVar23") (= "=") (cast_expression "(undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar23 - iVar26 * iVar31 * 4)" (( "(") (binary_expression "(int)puVar23 - iVar26 * iVar31 * 4" (cast_expression "(int)puVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar23")) (- "-") (binary_expression "iVar26 * iVar31 * 4" (binary_expression "iVar26 * iVar31" (identifier "iVar26") (* "*") (identifier "iVar31")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (expression_statement "iVar12 = iVar12 + iVar33 * 4;" (assignment_expression "iVar12 = iVar12 + iVar33 * 4" (identifier "iVar12") (= "=") (binary_expression "iVar12 + iVar33 * 4" (identifier "iVar12") (+ "+") (binary_expression "iVar33 * 4" (identifier "iVar33") (* "*") (number_literal "4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar24 != iVar13)" (( "(") (binary_expression "iVar24 != iVar13" (identifier "iVar24") (!= "!=") (identifier "iVar13")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);" (assignment_expression "iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39)" (identifier "iVar12") (= "=") (call_expression "(**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39)" (parenthesized_expression "(**(code **)(pcVar35 + 0x20749c))" (( "(") (pointer_expression "**(code **)(pcVar35 + 0x20749c)" (* "*") (pointer_expression "*(code **)(pcVar35 + 0x20749c)" (* "*") (cast_expression "(code **)(pcVar35 + 0x20749c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x20749c)" (( "(") (binary_expression "pcVar35 + 0x20749c" (identifier "pcVar35") (+ "+") (number_literal "0x20749c")) () ")"))))) () ")")) (argument_list "(iVar3,iVar39)" (( "(") (identifier "iVar3") (, ",") (identifier "iVar39") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) goto LAB_001a2344;" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001a2344;" (goto "goto") (statement_identifier "LAB_001a2344") (; ";"))) (} "}"))) (expression_statement "piVar17[9] = 0;" (assignment_expression "piVar17[9] = 0" (subscript_expression "piVar17[9]" (identifier "piVar17") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (labeled_statement "LAB_001a2344:\n                iVar29 = iVar29 + 1;" (statement_identifier "LAB_001a2344") (: ":") (expression_statement "iVar29 = iVar29 + 1;" (assignment_expression "iVar29 = iVar29 + 1" (identifier "iVar29") (= "=") (binary_expression "iVar29 + 1" (identifier "iVar29") (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar26 + iVar27 != iVar29)" (( "(") (binary_expression "iVar26 + iVar27 != iVar29" (binary_expression "iVar26 + iVar27" (identifier "iVar26") (+ "+") (identifier "iVar27")) (!= "!=") (identifier "iVar29")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar13 = *(int *)(iVar21 + 0x18);" (assignment_expression "iVar13 = *(int *)(iVar21 + 0x18)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar21 + 0x18)" (* "*") (cast_expression "(int *)(iVar21 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x18)" (( "(") (binary_expression "iVar21 + 0x18" (identifier "iVar21") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar26 = *(int *)piVar17[8];" (assignment_expression "iVar26 = *(int *)piVar17[8]" (identifier "iVar26") (= "=") (pointer_expression "*(int *)piVar17[8]" (* "*") (cast_expression "(int *)piVar17[8]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar17[8]" (identifier "piVar17") ([ "[") (number_literal "8") (] "]"))))) (; ";")) (expression_statement "iVar27 = iVar27 + iVar26;" (assignment_expression "iVar27 = iVar27 + iVar26" (identifier "iVar27") (= "=") (binary_expression "iVar27 + iVar26" (identifier "iVar27") (+ "+") (identifier "iVar26"))) (; ";")) (expression_statement "iVar25 = iVar26 + iVar27;" (assignment_expression "iVar25 = iVar26 + iVar27" (identifier "iVar25") (= "=") (binary_expression "iVar26 + iVar27" (identifier "iVar26") (+ "+") (identifier "iVar27"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar27 < iVar13)" (( "(") (binary_expression "iVar27 < iVar13" (identifier "iVar27") (< "<") (identifier "iVar13")) () ")")) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar21 + 0x328) != 0) {\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar21 + 0x328) != 0)" (( "(") (binary_expression "*(int *)(iVar21 + 0x328) != 0" (pointer_expression "*(int *)(iVar21 + 0x328)" (* "*") (cast_expression "(int *)(iVar21 + 0x328)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x328)" (( "(") (binary_expression "iVar21 + 0x328" (identifier "iVar21") (+ "+") (number_literal "0x328")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar15 = *(undefined4 *)(iVar21 + 0x1c);\n          uVar9 = *(uint *)piVar17[7];\n          pcVar36 = *(code **)(pcVar35 + 0x206c58);\n          uVar11 = uVar9 + piVar17[1];\n          piVar17[1] = uVar11;\n          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;\n          *piVar17 = iVar13;\n          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);\n          if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }\n        }" ({ "{") (expression_statement "uVar15 = *(undefined4 *)(iVar21 + 0x1c);" (assignment_expression "uVar15 = *(undefined4 *)(iVar21 + 0x1c)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(iVar21 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar21 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar21 + 0x1c)" (( "(") (binary_expression "iVar21 + 0x1c" (identifier "iVar21") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(uint *)piVar17[7];" (assignment_expression "uVar9 = *(uint *)piVar17[7]" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)piVar17[7]" (* "*") (cast_expression "(uint *)piVar17[7]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar17[7]" (identifier "piVar17") ([ "[") (number_literal "7") (] "]"))))) (; ";")) (expression_statement "pcVar36 = *(code **)(pcVar35 + 0x206c58);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + 0x206c58)" (identifier "pcVar36") (= "=") (pointer_expression "*(code **)(pcVar35 + 0x206c58)" (* "*") (cast_expression "(code **)(pcVar35 + 0x206c58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar35 + 0x206c58)" (( "(") (binary_expression "pcVar35 + 0x206c58" (identifier "pcVar35") (+ "+") (number_literal "0x206c58")) () ")"))))) (; ";")) (expression_statement "uVar11 = uVar9 + piVar17[1];" (assignment_expression "uVar11 = uVar9 + piVar17[1]" (identifier "uVar11") (= "=") (binary_expression "uVar9 + piVar17[1]" (identifier "uVar9") (+ "+") (subscript_expression "piVar17[1]" (identifier "piVar17") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "piVar17[1] = uVar11;" (assignment_expression "piVar17[1] = uVar11" (subscript_expression "piVar17[1]" (identifier "piVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "iVar13 = (uint)(uVar11 < uVar9) + *piVar17;" (assignment_expression "iVar13 = (uint)(uVar11 < uVar9) + *piVar17" (identifier "iVar13") (= "=") (binary_expression "(uint)(uVar11 < uVar9) + *piVar17" (call_expression "(uint)(uVar11 < uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 < uVar9)" (( "(") (binary_expression "uVar11 < uVar9" (identifier "uVar11") (< "<") (identifier "uVar9")) () ")"))) (+ "+") (pointer_expression "*piVar17" (* "*") (identifier "piVar17")))) (; ";")) (expression_statement "*piVar17 = iVar13;" (assignment_expression "*piVar17 = iVar13" (pointer_expression "*piVar17" (* "*") (identifier "piVar17")) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);" (assignment_expression "iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15)" (identifier "iVar13") (= "=") (call_expression "(*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15)" (( "(") (identifier "iVar21") (, ",") (binary_expression "iVar30 + -0x4820" (identifier "iVar30") (+ "+") (number_literal "-0x4820")) (, ",") (identifier "iVar13") (, ",") (identifier "uVar11") (, ",") (number_literal "0") (, ",") (identifier "uVar15") () ")")))) (; ";")) (if_statement "if (iVar13 == 0) {\n            piVar17[9] = 0;\n          }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            piVar17[9] = 0;\n          }" ({ "{") (expression_statement "piVar17[9] = 0;" (assignment_expression "piVar17[9] = 0" (subscript_expression "piVar17[9]" (identifier "piVar17") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "iStack_188 = iStack_188 + iVar38;" (assignment_expression "iStack_188 = iStack_188 + iVar38" (identifier "iStack_188") (= "=") (binary_expression "iStack_188 + iVar38" (identifier "iStack_188") (+ "+") (identifier "iVar38"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iStack_188 < iVar38 * (iVar18 + iVar7))" (( "(") (binary_expression "iStack_188 < iVar38 * (iVar18 + iVar7)" (identifier "iStack_188") (< "<") (binary_expression "iVar38 * (iVar18 + iVar7)" (identifier "iVar38") (* "*") (parenthesized_expression "(iVar18 + iVar7)" (( "(") (binary_expression "iVar18 + iVar7" (identifier "iVar18") (+ "+") (identifier "iVar7")) () ")")))) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */
/* DWARF original prototype: void RadonTransform._omp_fn.0(anon_struct_32_7_acf8c8cc * param_0) */

void __thiscall function_1(void *this)

{
  bool var_30;
  type_1 *puVar2;
  int var_1;
  int var_4;
  int *piVar5;
  int *var_46;
  type_2 uVar7;
  int var_10;
  type_3 var_19;
  type_3 var_27;
  type_3 var_23;
  int var_39;
  int var_28;
  int var_29;
  int var_31;
  int extraout_v1_02;
  int extraout_v1_03;
  int var_33;
  int var_43;
  int *var_44;
  int var_7;
  int in_a2;
  int var_8;
  type_2 *var_45;
  type_4 *in_a3;
  int var_42;
  type_2 *puVar19;
  int var_47;
  int var_34;
  int var_37;
  int var_24;
  int var_35;
  int var_38;
  type_4 *unaff_s4;
  type_2 unaff_s5;
  int var_40;
  int var_6;
  int var_15;
  type_4 *unaff_s7;
  int var_41;
  type_1 *var_12;
  int var_48;
  type_4 *var_3;
  type_5 *var_18;
  type_5 *pcVar33;
  double var_9;
  int var_5;
  int var_14;
  type_6 uVar37;
  int var_36;
  int var_22;
  type_3 var_20;
  int var_21;
  short var_26;
  type_4 *puStack_f0;
  type_1 *puStack_ec;
  int iStack_e8;
  int var_32;
  int iStack_e0;
  int iStack_dc;
  int iStack_d8;
  void *pvStack_d4;
  type_4 *puStack_d0;
  int iStack_cc;
  int iStack_c8;
  type_4 *puStack_c4;
  type_4 *puStack_c0;
  type_5 *pcStack_bc;
  type_4 *puStack_ac;
  type_1 *var_13;
  int var_16;
  int *piStack_9c;
  type_4 uStack_98;
  type_4 uStack_96;
  int var_17;
  int iStack_90;
  type_1 *puStack_8c;
  int iStack_88;
  void *pvStack_84;
  type_4 *puStack_80;
  type_2 uStack_7c;
  int iStack_78;
  type_4 *puStack_74;
  type_4 *puStack_70;
  type_5 *pcStack_6c;
  type_2 local_58;
  type_2 local_54;
  type_4 local_36;
  int var_11;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  var_11 = *(int *)PTR___stack_chk_guard_003a9230;
  var_3 = *(type_4 **)((int)this + 8);
  var_44 = (int *)this;
  var_1 = (*(type_5 *)PTR_omp_get_num_threads_003a990c)();
  var_4 = (*(type_5 *)PTR_omp_get_thread_num_003a9508)();
  if (var_1 == 0) {
    var_2(7);
  }
  var_5 = *(int *)(var_3 + 0xe) / var_1;
  var_1 = *(int *)(var_3 + 0xe) % var_1;
  if (var_4 < var_1) {
    var_5 = var_5 + 1;
    var_1 = 0;
  }
  var_1 = var_5 * var_4 + var_1;
  var_5 = var_5 + var_1;
  if (var_1 < var_5) {
    piVar5 = *(int **)((int)this + 0x14);
    unaff_s5 = 8;
                    /* WARNING: Load size is inaccurate */
    var_9 = *this;
    unaff_s4 = &local_36;
    var_46 = *(int **)((int)this + 0x10);
    uVar7 = *(type_2 *)((int)this + 0xc);
    do {
      while (*(int *)((int)this + 0x1c) == 0) {
LAB_001a1798:
        var_1 = var_1 + 1;
        if (var_5 == var_1) goto LAB_001a17a4;
      }
      var_7 = 0;
      in_a3 = *(type_4 **)(var_3 + 0xc);
      local_58 = 1;
      var_44 = var_46;
      in_a2 = var_1;
      local_54 = uVar7;
      var_6 = (*(type_5 *)PTR_GetCacheViewVirtualPixels_003a965c)();
      if (var_6 != 0) {
        var_7 = *(int *)(var_3 + 0xc);
        var_4 = var_7 + 7;
        if (var_4 < 0) {
          var_4 = var_7 + 0xe;
        }
        var_4 = var_4 >> 3;
        if (0 < var_7) {
          unaff_s7 = (type_4 *)0x0;
          var_44 = (int *)0x0;
          var_10 = 0;
          do {
            var_8 = *(int *)(var_3 + 0x168);
            var_44 = (int *)((int)var_44 << 1);
            if ((((double)*(float *)(var_6 + *(int *)(var_8 + 8) * 4) < var_9) ||
                ((double)*(float *)(var_6 + *(int *)(var_8 + 0x14) * 4) < var_9)) ||
               ((double)*(float *)(var_6 + *(int *)(var_8 + 0x20) * 4) < var_9)) {
              var_44 = (int *)((type_3)var_44 | 1);
            }
            var_10 = var_10 + 1;
            if (var_10 == 8) {
              var_4 = var_4 + -1;
              local_36 = *(type_4 *)(*(int *)((int)this + 0x18) + (int)var_44 * 2);
              in_a3 = unaff_s4;
              (*(type_5 *)PTR_SetMatrixElement_003a96a4)(piVar5,var_4,var_1);
              var_44 = (int *)0x0;
              var_10 = 0;
              var_7 = *(int *)(var_3 + 0xc);
            }
            unaff_s7 = (type_4 *)((int)unaff_s7 + 1);
            var_6 = var_6 + *(int *)(var_3 + 0x160) * 4;
          } while ((int)unaff_s7 < var_7);
          in_a2 = 0;
          if (var_10 != 0) {
            var_7 = var_4 + -1;
            local_36 = *(type_4 *)
                        (*(int *)((int)this + 0x18) + ((int)var_44 << (8U - var_10 & 0x1f)) * 2);
            var_44 = piVar5;
            in_a2 = var_1;
            in_a3 = unaff_s4;
            (*(type_5 *)PTR_SetMatrixElement_003a96a4)();
          }
        }
        goto LAB_001a1798;
      }
      var_1 = var_1 + 1;
      *(type_2 *)((int)this + 0x1c) = 0;
    } while (var_5 != var_1);
  }
LAB_001a17a4:
  if (var_11 == *(int *)puVar2) {
    return;
  }
  var_18 = RadonProjection__omp_fn_2;
  var_12 = PTR___stack_chk_fail_003a9064;
  (*(type_5 *)PTR___stack_chk_fail_003a9064)();
  var_13 = var_12 + 0x20f054;
  piStack_9c = *(int **)(var_12 + 0x2079d4);
  puStack_8c = puVar2;
  var_17 = *piStack_9c;
  var_24 = var_44[2];
  var_16 = var_44[1];
  var_15 = *var_44;
  var_4 = var_24;
  iStack_90 = var_5;
  iStack_88 = var_1;
  pvStack_84 = this;
  puStack_80 = unaff_s4;
  uStack_7c = unaff_s5;
  iStack_78 = var_6;
  puStack_74 = unaff_s7;
  puStack_70 = var_3;
  pcStack_6c = var_18;
  var_1 = (**(type_5 **)(var_12 + 0x2076dc))();
  var_10 = (**(type_5 **)(var_13 + -0x6fa4))();
  var_8 = (**(type_5 **)(var_13 + -0x73a8))();
  if (var_10 == 0) {
    var_2(7);
  }
  var_14 = var_1 / var_10;
  var_1 = var_1 % var_10;
  if (var_8 < var_1) {
    var_14 = var_14 + 1;
    var_1 = 0;
  }
  var_1 = var_14 * var_8 + var_1;
  var_14 = var_14 + var_1;
  if (var_1 < var_14) {
    unaff_s7 = &uStack_98;
    var_3 = &uStack_96;
    unaff_s4 = (type_4 *)(var_15 * var_1 + 0x3fffffff);
    do {
      var_5 = 0;
      this = (void *)0x0;
      while (var_4 = (**(type_5 **)(var_13 + -0x7288))(var_24), var_5 < var_4 + -1) {
        while( true ) {
          var_7 = var_1;
          in_a2 = var_5;
          in_a3 = unaff_s7;
          var_4 = (**(type_5 **)(var_13 + -0x7644))(var_24);
          var_5 = var_5 + 1;
          if ((var_4 == 0) ||
             (var_7 = var_1, in_a2 = var_5, in_a3 = var_3,
             var_4 = (**(type_5 **)(var_13 + -0x7644))(var_24), var_4 == 0)) break;
          this = (void *)(((type_3)uStack_98 - (type_3)uStack_96) * ((type_3)uStack_98 - (type_3)uStack_96)
                         + (int)this);
          var_4 = (**(type_5 **)(var_13 + -0x7288))(var_24);
          if (var_4 + -1 <= var_5) goto LAB_001a19d0;
        }
      }
LAB_001a19d0:
      var_1 = var_1 + 1;
      var_4 = var_24;
      var_10 = (**(type_5 **)(var_13 + -0x7978))();
      var_10 = (int)unaff_s4 + var_10;
      unaff_s4 = (type_4 *)((int)unaff_s4 + var_15);
      *(void **)(var_16 + var_10 * 4) = this;
    } while (var_14 != var_1);
  }
  if (var_17 == *piStack_9c) {
    return;
  }
  var_18 = *(type_5 **)(var_13 + -0x784c);
  pcVar33 = RadonProjection;
  (*var_18)();
  puVar2 = var_13;
  var_44 = *(int **)(var_18 + 0x2077e4);
  var_20 = 1;
  var_32 = *var_44;
  iStack_e0 = var_5;
  iStack_dc = var_24;
  iStack_d8 = var_1;
  pvStack_d4 = this;
  puStack_d0 = unaff_s4;
  iStack_cc = var_14;
  iStack_c8 = var_15;
  puStack_c4 = unaff_s7;
  puStack_c0 = var_3;
  pcStack_bc = pcVar33;
  puStack_ac = in_a3;
  var_19 = (**(type_5 **)(var_18 + 0x2074ec))(var_7);
  var_1 = var_7;
  if (1 < var_19) {
    do {
      var_7 = in_a2;
      in_a2 = var_1;
      var_19 = var_20 * 2;
      var_21 = 0;
      var_1 = (**(type_5 **)(var_18 + 0x2074ec))(in_a2);
      if (0 < var_1) {
        do {
          if (0 < (int)var_20) {
            var_22 = var_21 + 1;
            var_5 = var_21 + var_20;
            var_1 = var_21;
            var_23 = 0;
            do {
              var_24 = 0;
              var_10 = var_22 + -1;
              var_27 = var_23 + 1;
              var_8 = (**(type_5 **)(var_18 + 0x207bdc))(in_a2);
              if (0 < (int)(var_8 + ~var_23)) {
                do {
                  var_8 = (**(type_5 **)(var_18 + 0x207820))(in_a2,var_1,var_24,&var_26);
                  if ((var_8 != 0) &&
                     (var_8 = (**(type_5 **)(var_18 + 0x207820))
                                         (in_a2,var_5,var_23 + var_24,&puStack_f0), var_8 != 0)) {
                    puStack_f0 = (type_4 *)var_25(puStack_f0._0_2_ + var_26,puStack_f0._2_2_);
                    var_8 = (**(type_5 **)(var_18 + 0x207c58))(var_7,var_10,var_24,&puStack_f0);
                    if ((var_8 != 0) &&
                       (var_8 = (**(type_5 **)(var_18 + 0x207820))
                                           (in_a2,var_5,var_27 + var_24,&puStack_f0), var_8 != 0))
                    {
                      puStack_f0 = (type_4 *)var_25(puStack_f0._0_2_ + var_26,puStack_f0._2_2_)
                      ;
                      (**(type_5 **)(var_18 + 0x207c58))(var_7,var_22,var_24,&puStack_f0);
                    }
                  }
                  var_24 = var_24 + 1;
                  var_8 = (**(type_5 **)(var_18 + 0x207bdc))(in_a2);
                } while (var_24 < (int)(var_8 + ~var_23));
              }
              var_8 = (**(type_5 **)(var_18 + 0x207bdc))(in_a2);
              if (var_24 < (int)(var_8 - var_23)) {
                do {
                  var_8 = (**(type_5 **)(var_18 + 0x207820))(in_a2,var_1,var_24,&var_26);
                  if ((var_8 != 0) &&
                     (var_8 = (**(type_5 **)(var_18 + 0x207820))
                                         (in_a2,var_5,var_24 + var_23,&puStack_f0), var_8 != 0)) {
                    puStack_f0 = (type_4 *)var_25(puStack_f0._0_2_ + var_26,puStack_f0._2_2_);
                    var_8 = (**(type_5 **)(var_18 + 0x207c58))(var_7,var_10,var_24,&puStack_f0);
                    if (var_8 != 0) {
                      (**(type_5 **)(var_18 + 0x207c58))(var_7,var_22,var_24,&var_26);
                    }
                  }
                  var_24 = var_24 + 1;
                  var_8 = (**(type_5 **)(var_18 + 0x207bdc))(in_a2);
                } while (var_24 < (int)(var_8 - var_23));
              }
              var_8 = (**(type_5 **)(var_18 + 0x207bdc))(in_a2);
              if (var_24 < var_8) {
                do {
                  var_8 = (**(type_5 **)(var_18 + 0x207820))(in_a2,var_1,var_24,&var_26);
                  if ((var_8 != 0) &&
                     (var_8 = (**(type_5 **)(var_18 + 0x207c58))(var_7,var_10,var_24,&var_26),
                     var_8 != 0)) {
                    (**(type_5 **)(var_18 + 0x207c58))(var_7,var_22,var_24,&var_26);
                  }
                  var_24 = var_24 + 1;
                  var_8 = (**(type_5 **)(var_18 + 0x207bdc))(in_a2);
                } while (var_24 < var_8);
              }
              var_1 = var_1 + 1;
              var_22 = var_22 + 2;
              var_5 = var_5 + 1;
              var_23 = var_27;
            } while (var_20 != var_27);
          }
          var_21 = var_21 + var_19;
          var_1 = (**(type_5 **)(var_18 + 0x2074ec))(in_a2);
        } while (var_21 < var_1);
      }
      var_23 = (**(type_5 **)(var_18 + 0x2074ec))(var_7);
      var_1 = var_7;
      var_20 = var_19;
    } while (var_19 < var_23);
  }
  var_1 = (**(type_5 **)(var_18 + 0x207a68))(var_4);
  if (((var_1 == 4) || (var_1 = (**(type_5 **)(var_18 + 0x207a68))(var_4), var_1 == 3)) &&
     ((var_1 = (**(type_5 **)(var_18 + 0x207a68))(var_4), var_1 == 4 ||
      (var_1 = (**(type_5 **)(var_18 + 0x207a68))(var_4), var_1 == 3)))) {
    (**(type_5 **)(var_18 + 0x2076f0))(7);
    var_1 = (**(type_5 **)(var_18 + 0x2074ec))(var_7);
    if (var_1 < 0) {
      var_1 = var_1 + 0x3f;
    }
    if (var_28 < var_1 >> 6) {
      (**(type_5 **)(var_18 + 0x2076f0))(7);
      var_30 = var_29 < 2;
    }
    else {
      var_1 = (**(type_5 **)(var_18 + 0x2074ec))(var_7);
      var_30 = var_1 < 0x80;
    }
    var_1 = 1;
    if ((bool)(var_30 ^ 1)) {
      (**(type_5 **)(var_18 + 0x2076f0))(7);
      var_1 = (**(type_5 **)(var_18 + 0x2074ec))(var_7);
      if (var_1 < 0) {
        var_1 = var_1 + 0x3f;
      }
      if (var_31 < var_1 >> 6) {
        (**(type_5 **)(var_18 + 0x2076f0))(7);
        var_1 = extraout_v1_02;
      }
      else {
        var_1 = (**(type_5 **)(var_18 + 0x2074ec))(var_7);
        if (var_1 < 0) {
          var_1 = var_1 + 0x3f;
        }
        var_1 = var_1 >> 6;
      }
    }
    goto LAB_001a1e70;
  }
  uVar37 = (**(type_5 **)(var_18 + 0x2076f0))(7);
  if ((int)((type_7)uVar37 >> 0x20) == 0) {
    pcVar33 = *(type_5 **)(var_18 + 0x2076f0);
    if ((type_3)uVar37 < 2) {
      uVar37 = (*pcVar33)(7);
      if ((int)((type_7)uVar37 >> 0x20) != 0) goto LAB_001a1e58;
      pcVar33 = *(type_5 **)(var_18 + 0x2076f0);
      if ((type_3)uVar37 < 2) {
        var_1 = 1;
        goto LAB_001a1e70;
      }
    }
  }
  else {
LAB_001a1e58:
    pcVar33 = *(type_5 **)(var_18 + 0x2076f0);
  }
  uVar37 = (*pcVar33)(7);
  if (((int)((type_7)uVar37 >> 0x20) == 0) && ((type_3)uVar37 < 2)) {
    (**(type_5 **)(var_18 + 0x2076f0))(7);
    var_1 = extraout_v1_03;
  }
  else {
    var_1 = 2;
  }
LAB_001a1e70:
  puStack_ec = puVar2;
  piVar5 = (int *)(*(int *)(var_18 + 0x207140) + 0x185c);
  puStack_f0 = puStack_ac;
  iStack_e8 = var_7;
  (**(type_5 **)(var_18 + 0x20774c))(piVar5,&puStack_f0,var_1,0);
  if (var_32 == *var_44) {
    return;
  }
  var_18 = *(type_5 **)(var_18 + 0x207618);
  (*var_18)();
  var_5 = *(int *)piVar5[7];
  var_10 = piVar5[2];
  var_1 = (**(type_5 **)(var_18 + 0x2078b0))();
  var_4 = (**(type_5 **)(var_18 + 0x2074ac))();
  if (var_5 == 0) {
    var_2(7);
  }
  var_8 = (var_5 + -1 + *(int *)(var_10 + 0x1c)) / var_5;
  if (var_1 == 0) {
    var_2(7);
  }
  var_24 = var_8 / var_1;
  var_8 = var_8 % var_1;
  if (var_4 < var_8) {
    var_24 = var_24 + 1;
    var_8 = 0;
  }
  var_8 = var_24 * var_4 + var_8;
  if (var_8 < var_24 + var_8) {
    var_38 = piVar5[6];
    var_36 = var_5 * var_8;
    var_1 = piVar5[5];
    var_4 = piVar5[4];
    var_15 = *(int *)(var_18 + 0x206890);
    var_14 = piVar5[3];
    do {
      if (piVar5[9] != 0) {
        var_33 = *(int *)(var_10 + 0x18);
        if (0 < var_33) {
          var_35 = 0;
          var_34 = *(int *)piVar5[8];
          var_37 = var_34;
          do {
            if (var_33 < var_34) {
              var_37 = var_33 - var_35;
            }
            var_33 = *(int *)piVar5[7];
            if (*(int *)(var_10 + 0x1c) < var_33 + var_36) {
              var_33 = *(int *)(var_10 + 0x1c) - var_36;
            }
            var_34 = (**(type_5 **)(var_18 + 0x207600))(var_4,var_35,var_36,var_37,var_33,var_14)
            ;
            if (var_34 == 0) {
              piVar5[9] = 0;
              break;
            }
            if (0 < var_37) {
              var_40 = var_35;
              do {
                if (piVar5[9] != 0) {
                  var_39 = (**(type_5 **)(var_18 + 0x206bf4))
                                     (var_1,(*(int *)(var_38 + 0x18) - var_36) - var_33,var_40,
                                      var_33,1,var_14);
                  if (var_39 != 0) {
                    var_41 = *(int *)(var_10 + 0x2c0);
                    puVar19 = (type_2 *)
                              ((((var_33 + -1) * var_37 - var_35) + var_40) * var_41 * 4 + var_34);
                    if (0 < var_33) {
                      var_48 = *(int *)(var_38 + 0x2c0);
                      var_47 = 0;
                      do {
                        if (0 < var_41) {
                          var_46 = *(int **)(var_10 + 0x2d0);
                          var_42 = *(int *)(var_38 + 0x2d0);
                          var_44 = var_46;
                          var_45 = puVar19;
                          do {
                            var_43 = var_42 + *var_44 * 0xc;
                            if ((var_46[*var_44 * 3 + 1] != 0) && (*(int *)(var_43 + 4) != 0)) {
                              *(type_2 *)(var_39 + *(int *)(var_43 + 8) * 4) = *var_45;
                            }
                            var_44 = var_44 + 3;
                            var_45 = var_45 + 1;
                          } while (var_44 != var_46 + var_41 * 3);
                        }
                        var_47 = var_47 + 1;
                        puVar19 = (type_2 *)((int)puVar19 - var_37 * var_41 * 4);
                        var_39 = var_39 + var_48 * 4;
                      } while (var_47 != var_33);
                    }
                    var_39 = (**(type_5 **)(var_18 + 0x20749c))(var_1,var_14);
                    if (var_39 != 0) goto LAB_001a2344;
                  }
                  piVar5[9] = 0;
                }
LAB_001a2344:
                var_40 = var_40 + 1;
              } while (var_37 + var_35 != var_40);
            }
            var_33 = *(int *)(var_10 + 0x18);
            var_37 = *(int *)piVar5[8];
            var_35 = var_35 + var_37;
            var_34 = var_37 + var_35;
          } while (var_35 < var_33);
        }
        if (*(int *)(var_10 + 0x328) != 0) {
          uVar7 = *(type_2 *)(var_10 + 0x1c);
          var_19 = *(type_3 *)piVar5[7];
          pcVar33 = *(type_5 **)(var_18 + 0x206c58);
          var_23 = var_19 + piVar5[1];
          piVar5[1] = var_23;
          var_33 = (type_3)(var_23 < var_19) + *piVar5;
          *piVar5 = var_33;
          var_33 = (*pcVar33)(var_10,var_15 + -0x4820,var_33,var_23,0,uVar7);
          if (var_33 == 0) {
            piVar5[9] = 0;
          }
        }
      }
      var_36 = var_36 + var_5;
    } while (var_36 < var_5 * (var_24 + var_8));
  }
  return;
}


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

void MASKED(double *param_1,int param_2,int param_3,ushort *param_4)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  int iVar4;
  double *pdVar5;
  double *pdVar6;
  int iVar7;
  int *piVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  int iVar12;
  int extraout_v1;
  int extraout_v1_00;
  int extraout_v1_01;
  int extraout_v1_02;
  int extraout_v1_03;
  int iVar13;
  int iVar14;
  undefined4 uVar15;
  double *pdVar16;
  int *piVar17;
  int iVar18;
  undefined4 *puVar19;
  int *piVar20;
  int iVar21;
  int iVar22;
  undefined4 *puVar23;
  int iVar24;
  int iVar25;
  int iVar26;
  int iVar27;
  int iVar28;
  ushort *unaff_s4;
  undefined4 unaff_s5;
  int iVar29;
  int unaff_s6;
  int iVar30;
  ushort *unaff_s7;
  int iVar31;
  undefined *puVar32;
  int iVar33;
  ushort *puVar34;
  code *pcVar35;
  code *pcVar36;
  double dVar37;
  int iVar38;
  int iVar39;
  undefined8 uVar40;
  int iStack_188;
  int iStack_118;
  uint uStack_110;
  int iStack_10c;
  short sStack_f2;
  ushort *puStack_f0;
  undefined *puStack_ec;
  int iStack_e8;
  int iStack_e4;
  int iStack_e0;
  int iStack_dc;
  int iStack_d8;
  double *pdStack_d4;
  ushort *puStack_d0;
  int iStack_cc;
  int iStack_c8;
  ushort *puStack_c4;
  ushort *puStack_c0;
  code *pcStack_bc;
  ushort *puStack_ac;
  undefined *puStack_a8;
  int iStack_a0;
  int *piStack_9c;
  ushort uStack_98;
  ushort uStack_96;
  int iStack_94;
  int iStack_90;
  undefined *puStack_8c;
  int iStack_88;
  double *pdStack_84;
  ushort *puStack_80;
  undefined4 uStack_7c;
  int iStack_78;
  ushort *puStack_74;
  ushort *puStack_70;
  code *pcStack_6c;
  undefined4 local_58;
  int local_54;
  ushort local_36;
  int local_34;
  
  puVar2 = PTR___stack_chk_guard_003a9230;
  local_34 = *(int *)PTR___stack_chk_guard_003a9230;
  puVar34 = *(ushort **)(param_1 + 1);
  pdVar16 = param_1;
  iVar3 = (*(code *)PTR_omp_get_num_threads_003a990c)();
  iVar4 = (*(code *)PTR_omp_get_thread_num_003a9508)();
  if (iVar3 == 0) {
    trap(7);
  }
  iVar38 = *(int *)(puVar34 + 0xe) / iVar3;
  iVar3 = *(int *)(puVar34 + 0xe) % iVar3;
  if (iVar4 < iVar3) {
    iVar38 = iVar38 + 1;
    iVar3 = 0;
  }
  iVar3 = iVar38 * iVar4 + iVar3;
  iVar38 = iVar38 + iVar3;
  if (iVar3 < iVar38) {
    pdVar5 = *(double **)((int)param_1 + 0x14);
    unaff_s5 = 8;
    dVar37 = *param_1;
    unaff_s4 = &local_36;
    pdVar6 = *(double **)(param_1 + 2);
    iVar4 = *(int *)((int)param_1 + 0xc);
    do {
      while (*(int *)((int)param_1 + 0x1c) == 0) {
LAB_001a1798:
        iVar3 = iVar3 + 1;
        if (iVar38 == iVar3) goto LAB_001a17a4;
      }
      param_2 = 0;
      param_4 = *(ushort **)(puVar34 + 0xc);
      local_58 = 1;
      pdVar16 = pdVar6;
      param_3 = iVar3;
      local_54 = iVar4;
      unaff_s6 = (*(code *)PTR_GetCacheViewVirtualPixels_003a965c)();
      if (unaff_s6 != 0) {
        param_2 = *(int *)(puVar34 + 0xc);
        iVar21 = param_2 + 7;
        if (iVar21 < 0) {
          iVar21 = param_2 + 0xe;
        }
        iVar21 = iVar21 >> 3;
        if (0 < param_2) {
          unaff_s7 = (ushort *)0x0;
          pdVar16 = (double *)0x0;
          iVar7 = 0;
          do {
            iVar18 = *(int *)(puVar34 + 0x168);
            pdVar16 = (double *)((int)pdVar16 << 1);
            if ((((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 8) * 4) < dVar37) ||
                ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x14) * 4) < dVar37)) ||
               ((double)*(float *)(unaff_s6 + *(int *)(iVar18 + 0x20) * 4) < dVar37)) {
              pdVar16 = (double *)((uint)pdVar16 | 1);
            }
            iVar7 = iVar7 + 1;
            if (iVar7 == 8) {
              iVar21 = iVar21 + -1;
              local_36 = *(ushort *)(*(int *)(param_1 + 3) + (int)pdVar16 * 2);
              param_4 = unaff_s4;
              (*(code *)PTR_SetMatrixElement_003a96a4)(pdVar5,iVar21,iVar3);
              pdVar16 = (double *)0x0;
              iVar7 = 0;
              param_2 = *(int *)(puVar34 + 0xc);
            }
            unaff_s7 = (ushort *)((int)unaff_s7 + 1);
            unaff_s6 = unaff_s6 + *(int *)(puVar34 + 0x160) * 4;
          } while ((int)unaff_s7 < param_2);
          param_3 = 0;
          if (iVar7 != 0) {
            param_2 = iVar21 + -1;
            local_36 = *(ushort *)
                        (*(int *)(param_1 + 3) + ((int)pdVar16 << (8U - iVar7 & 0x1f)) * 2);
            pdVar16 = pdVar5;
            param_3 = iVar3;
            param_4 = unaff_s4;
            (*(code *)PTR_SetMatrixElement_003a96a4)();
          }
        }
        goto LAB_001a1798;
      }
      iVar3 = iVar3 + 1;
      *(int *)((int)param_1 + 0x1c) = 0;
    } while (iVar38 != iVar3);
  }
LAB_001a17a4:
  if (local_34 == *(int *)puVar2) {
    return;
  }
  pcVar35 = FUN_001a185c;
  puVar32 = PTR___stack_chk_fail_003a9064;
  (*(code *)PTR___stack_chk_fail_003a9064)();
  puStack_a8 = puVar32 + 0x20f054;
  piStack_9c = *(int **)(puVar32 + 0x2079d4);
  puStack_8c = puVar2;
  iStack_94 = *piStack_9c;
  iVar18 = *(int *)(pdVar16 + 1);
  iStack_a0 = *(int *)((int)pdVar16 + 4);
  iVar30 = *(int *)pdVar16;
  iVar4 = iVar18;
  iStack_90 = iVar38;
  iStack_88 = iVar3;
  pdStack_84 = param_1;
  puStack_80 = unaff_s4;
  uStack_7c = unaff_s5;
  iStack_78 = unaff_s6;
  puStack_74 = unaff_s7;
  puStack_70 = puVar34;
  pcStack_6c = pcVar35;
  iVar3 = (**(code **)(puVar32 + 0x2076dc))();
  iVar21 = (**(code **)(puStack_a8 + -0x6fa4))();
  iVar7 = (**(code **)(puStack_a8 + -0x73a8))();
  if (iVar21 == 0) {
    trap(7);
  }
  iVar39 = iVar3 / iVar21;
  iVar3 = iVar3 % iVar21;
  if (iVar7 < iVar3) {
    iVar39 = iVar39 + 1;
    iVar3 = 0;
  }
  iVar3 = iVar39 * iVar7 + iVar3;
  iVar39 = iVar39 + iVar3;
  if (iVar3 < iVar39) {
    unaff_s7 = &uStack_98;
    puVar34 = &uStack_96;
    unaff_s4 = (ushort *)(iVar30 * iVar3 + 0x3fffffff);
    do {
      iVar38 = 0;
      param_1 = (double *)0x0;
      while (iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18), iVar38 < iVar4 + -1) {
        while( true ) {
          param_2 = iVar3;
          param_3 = iVar38;
          param_4 = unaff_s7;
          iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18);
          iVar38 = iVar38 + 1;
          if ((iVar4 == 0) ||
             (param_2 = iVar3, param_3 = iVar38, param_4 = puVar34,
             iVar4 = (**(code **)(puStack_a8 + -0x7644))(iVar18), iVar4 == 0)) break;
          param_1 = (double *)
                    (((uint)uStack_98 - (uint)uStack_96) * ((uint)uStack_98 - (uint)uStack_96) +
                    (int)param_1);
          iVar4 = (**(code **)(puStack_a8 + -0x7288))(iVar18);
          if (iVar4 + -1 <= iVar38) goto LAB_001a19d0;
        }
      }
LAB_001a19d0:
      iVar3 = iVar3 + 1;
      iVar4 = iVar18;
      iVar21 = (**(code **)(puStack_a8 + -0x7978))();
      iVar21 = (int)unaff_s4 + iVar21;
      unaff_s4 = (ushort *)((int)unaff_s4 + iVar30);
      *(double **)(iStack_a0 + iVar21 * 4) = param_1;
    } while (iVar39 != iVar3);
  }
  if (iStack_94 == *piStack_9c) {
    return;
  }
  pcVar35 = *(code **)(puStack_a8 + -0x784c);
  pcVar36 = FUN_001a1a4c;
  (*pcVar35)();
  puVar2 = puStack_a8;
  piVar8 = *(int **)(pcVar35 + 0x2077e4);
  uStack_110 = 1;
  iStack_e4 = *piVar8;
  iStack_e0 = iVar38;
  iStack_dc = iVar18;
  iStack_d8 = iVar3;
  pdStack_d4 = param_1;
  puStack_d0 = unaff_s4;
  iStack_cc = iVar39;
  iStack_c8 = iVar30;
  puStack_c4 = unaff_s7;
  puStack_c0 = puVar34;
  pcStack_bc = pcVar36;
  puStack_ac = param_4;
  uVar9 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
  iVar3 = param_2;
  if (1 < uVar9) {
    do {
      param_2 = param_3;
      param_3 = iVar3;
      uVar9 = uStack_110 * 2;
      iStack_10c = 0;
      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);
      if (0 < iVar3) {
        do {
          if (0 < (int)uStack_110) {
            iStack_118 = iStack_10c + 1;
            iVar38 = iStack_10c + uStack_110;
            iVar3 = iStack_10c;
            uVar11 = 0;
            do {
              iVar18 = 0;
              iVar21 = iStack_118 + -1;
              uVar10 = uVar11 + 1;
              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
              if (0 < (int)(iVar7 + ~uVar11)) {
                do {
                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);
                  if ((iVar7 != 0) &&
                     (iVar7 = (**(code **)(pcVar35 + 0x207820))
                                        (param_3,iVar38,uVar11 + iVar18,&puStack_f0), iVar7 != 0)) {
                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);
                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);
                    if ((iVar7 != 0) &&
                       (iVar7 = (**(code **)(pcVar35 + 0x207820))
                                          (param_3,iVar38,uVar10 + iVar18,&puStack_f0), iVar7 != 0))
                    {
                      puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_)
                      ;
                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&puStack_f0);
                    }
                  }
                  iVar18 = iVar18 + 1;
                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
                } while (iVar18 < (int)(iVar7 + ~uVar11));
              }
              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
              if (iVar18 < (int)(iVar7 - uVar11)) {
                do {
                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);
                  if ((iVar7 != 0) &&
                     (iVar7 = (**(code **)(pcVar35 + 0x207820))
                                        (param_3,iVar38,iVar18 + uVar11,&puStack_f0), iVar7 != 0)) {
                    puStack_f0 = (ushort *)CONCAT22(puStack_f0._0_2_ + sStack_f2,puStack_f0._2_2_);
                    iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&puStack_f0);
                    if (iVar7 != 0) {
                      (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);
                    }
                  }
                  iVar18 = iVar18 + 1;
                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
                } while (iVar18 < (int)(iVar7 - uVar11));
              }
              iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
              if (iVar18 < iVar7) {
                do {
                  iVar7 = (**(code **)(pcVar35 + 0x207820))(param_3,iVar3,iVar18,&sStack_f2);
                  if ((iVar7 != 0) &&
                     (iVar7 = (**(code **)(pcVar35 + 0x207c58))(param_2,iVar21,iVar18,&sStack_f2),
                     iVar7 != 0)) {
                    (**(code **)(pcVar35 + 0x207c58))(param_2,iStack_118,iVar18,&sStack_f2);
                  }
                  iVar18 = iVar18 + 1;
                  iVar7 = (**(code **)(pcVar35 + 0x207bdc))(param_3);
                } while (iVar18 < iVar7);
              }
              iVar3 = iVar3 + 1;
              iStack_118 = iStack_118 + 2;
              iVar38 = iVar38 + 1;
              uVar11 = uVar10;
            } while (uStack_110 != uVar10);
          }
          iStack_10c = iStack_10c + uVar9;
          iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_3);
        } while (iStack_10c < iVar3);
      }
      uVar11 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
      iVar3 = param_2;
      uStack_110 = uVar9;
    } while (uVar9 < uVar11);
  }
  iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4);
  if (((iVar3 == 4) || (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)) &&
     ((iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 4 ||
      (iVar3 = (**(code **)(pcVar35 + 0x207a68))(iVar4), iVar3 == 3)))) {
    (**(code **)(pcVar35 + 0x2076f0))(7);
    iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
    if (iVar3 < 0) {
      iVar3 = iVar3 + 0x3f;
    }
    if (extraout_v1 < iVar3 >> 6) {
      (**(code **)(pcVar35 + 0x2076f0))(7);
      bVar1 = extraout_v1_00 < 2;
    }
    else {
      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
      bVar1 = iVar3 < 0x80;
    }
    iVar3 = 1;
    if ((bool)(bVar1 ^ 1)) {
      (**(code **)(pcVar35 + 0x2076f0))(7);
      iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
      if (iVar3 < 0) {
        iVar3 = iVar3 + 0x3f;
      }
      if (extraout_v1_01 < iVar3 >> 6) {
        (**(code **)(pcVar35 + 0x2076f0))(7);
        iVar3 = extraout_v1_02;
      }
      else {
        iVar3 = (**(code **)(pcVar35 + 0x2074ec))(param_2);
        if (iVar3 < 0) {
          iVar3 = iVar3 + 0x3f;
        }
        iVar3 = iVar3 >> 6;
      }
    }
    goto LAB_001a1e70;
  }
  uVar40 = (**(code **)(pcVar35 + 0x2076f0))(7);
  if ((int)((ulonglong)uVar40 >> 0x20) == 0) {
    pcVar36 = *(code **)(pcVar35 + 0x2076f0);
    if ((uint)uVar40 < 2) {
      uVar40 = (*pcVar36)(7);
      if ((int)((ulonglong)uVar40 >> 0x20) != 0) goto LAB_001a1e58;
      pcVar36 = *(code **)(pcVar35 + 0x2076f0);
      if ((uint)uVar40 < 2) {
        iVar3 = 1;
        goto LAB_001a1e70;
      }
    }
  }
  else {
LAB_001a1e58:
    pcVar36 = *(code **)(pcVar35 + 0x2076f0);
  }
  uVar40 = (*pcVar36)(7);
  if (((int)((ulonglong)uVar40 >> 0x20) == 0) && ((uint)uVar40 < 2)) {
    (**(code **)(pcVar35 + 0x2076f0))(7);
    iVar3 = extraout_v1_03;
  }
  else {
    iVar3 = 2;
  }
LAB_001a1e70:
  puStack_ec = puVar2;
  piVar17 = (int *)(*(int *)(pcVar35 + 0x207140) + 0x185c);
  puStack_f0 = puStack_ac;
  iStack_e8 = param_2;
  (**(code **)(pcVar35 + 0x20774c))(piVar17,&puStack_f0,iVar3,0);
  if (iStack_e4 == *piVar8) {
    return;
  }
  pcVar35 = *(code **)(pcVar35 + 0x207618);
  (*pcVar35)();
  iVar38 = *(int *)piVar17[7];
  iVar21 = piVar17[2];
  iVar3 = (**(code **)(pcVar35 + 0x2078b0))();
  iVar4 = (**(code **)(pcVar35 + 0x2074ac))();
  if (iVar38 == 0) {
    trap(7);
  }
  iVar7 = (iVar38 + -1 + *(int *)(iVar21 + 0x1c)) / iVar38;
  if (iVar3 == 0) {
    trap(7);
  }
  iVar18 = iVar7 / iVar3;
  iVar7 = iVar7 % iVar3;
  if (iVar4 < iVar7) {
    iVar18 = iVar18 + 1;
    iVar7 = 0;
  }
  iVar7 = iVar18 * iVar4 + iVar7;
  if (iVar7 < iVar18 + iVar7) {
    iVar28 = piVar17[6];
    iStack_188 = iVar38 * iVar7;
    iVar3 = piVar17[5];
    iVar4 = piVar17[4];
    iVar30 = *(int *)(pcVar35 + 0x206890);
    iVar39 = piVar17[3];
    do {
      if (piVar17[9] != 0) {
        iVar13 = *(int *)(iVar21 + 0x18);
        if (0 < iVar13) {
          iVar27 = 0;
          iVar25 = *(int *)piVar17[8];
          iVar26 = iVar25;
          do {
            if (iVar13 < iVar25) {
              iVar26 = iVar13 - iVar27;
            }
            iVar13 = *(int *)piVar17[7];
            if (*(int *)(iVar21 + 0x1c) < iVar13 + iStack_188) {
              iVar13 = *(int *)(iVar21 + 0x1c) - iStack_188;
            }
            iVar25 = (**(code **)(pcVar35 + 0x207600))(iVar4,iVar27,iStack_188,iVar26,iVar13,iVar39)
            ;
            if (iVar25 == 0) {
              piVar17[9] = 0;
              break;
            }
            if (0 < iVar26) {
              iVar29 = iVar27;
              do {
                if (piVar17[9] != 0) {
                  iVar12 = (**(code **)(pcVar35 + 0x206bf4))
                                     (iVar3,(*(int *)(iVar28 + 0x18) - iStack_188) - iVar13,iVar29,
                                      iVar13,1,iVar39);
                  if (iVar12 != 0) {
                    iVar31 = *(int *)(iVar21 + 0x2c0);
                    puVar23 = (undefined4 *)
                              ((((iVar13 + -1) * iVar26 - iVar27) + iVar29) * iVar31 * 4 + iVar25);
                    if (0 < iVar13) {
                      iVar33 = *(int *)(iVar28 + 0x2c0);
                      iVar24 = 0;
                      do {
                        if (0 < iVar31) {
                          piVar20 = *(int **)(iVar21 + 0x2d0);
                          iVar22 = *(int *)(iVar28 + 0x2d0);
                          piVar8 = piVar20;
                          puVar19 = puVar23;
                          do {
                            iVar14 = iVar22 + *piVar8 * 0xc;
                            if ((piVar20[*piVar8 * 3 + 1] != 0) && (*(int *)(iVar14 + 4) != 0)) {
                              *(undefined4 *)(iVar12 + *(int *)(iVar14 + 8) * 4) = *puVar19;
                            }
                            piVar8 = piVar8 + 3;
                            puVar19 = puVar19 + 1;
                          } while (piVar8 != piVar20 + iVar31 * 3);
                        }
                        iVar24 = iVar24 + 1;
                        puVar23 = (undefined4 *)((int)puVar23 - iVar26 * iVar31 * 4);
                        iVar12 = iVar12 + iVar33 * 4;
                      } while (iVar24 != iVar13);
                    }
                    iVar12 = (**(code **)(pcVar35 + 0x20749c))(iVar3,iVar39);
                    if (iVar12 != 0) goto LAB_001a2344;
                  }
                  piVar17[9] = 0;
                }
LAB_001a2344:
                iVar29 = iVar29 + 1;
              } while (iVar26 + iVar27 != iVar29);
            }
            iVar13 = *(int *)(iVar21 + 0x18);
            iVar26 = *(int *)piVar17[8];
            iVar27 = iVar27 + iVar26;
            iVar25 = iVar26 + iVar27;
          } while (iVar27 < iVar13);
        }
        if (*(int *)(iVar21 + 0x328) != 0) {
          uVar15 = *(undefined4 *)(iVar21 + 0x1c);
          uVar9 = *(uint *)piVar17[7];
          pcVar36 = *(code **)(pcVar35 + 0x206c58);
          uVar11 = uVar9 + piVar17[1];
          piVar17[1] = uVar11;
          iVar13 = (uint)(uVar11 < uVar9) + *piVar17;
          *piVar17 = iVar13;
          iVar13 = (*pcVar36)(iVar21,iVar30 + -0x4820,iVar13,uVar11,0,uVar15);
          if (iVar13 == 0) {
            piVar17[9] = 0;
          }
        }
      }
      iStack_188 = iStack_188 + iVar38;
    } while (iStack_188 < iVar38 * (iVar18 + iVar7));
  }
  return;
}

