
/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void __regparm1 ExpandRotateKernelInfo(KernelInfo *kernel,double angle)

{
  float fVar1;
  MagickRealType MVar2;
  size_t sVar3;
  ssize_t sVar4;
  float fVar5;
  KernelInfo *last;
  KernelInfo *kernel_00;
  size_t sVar6;
  MagickRealType *pMVar7;
  int iVar8;
  MagickRealType *pMVar9;
  int iVar10;
  MagickRealType *pMVar11;
  int iVar12;
  MagickRealType *pMVar13;
  int iVar14;
  _KernelInfo *kernel_01;
  KernelInfo *pKVar15;
  double dVar16;
  double dVar17;
  double local_5c;
  double local_54;
  int local_40;
  MagickRealType *local_3c;
  MagickRealType *local_38;
  MagickRealType *local_34;
  
  kernel_01 = kernel;
  do {
    kernel_00 = CloneKernelInfo(kernel_01);
    if (kernel_00 == (KernelInfo *)0x0) {
      return;
    }
    if (kernel_00->next != (KernelInfo *)0x0) {
      RotateKernelInfo(kernel_00->next,angle);
    }
    dVar17 = (double)DAT_002e8154;
    local_5c = fmod(angle,(double)DAT_002e8154);
    if (local_5c < 0.0) {
      local_5c = local_5c + dVar17;
    }
    if (((double)DAT_002fbea8 < local_5c) || (local_5c <= (double)DAT_002fbeac)) {
LAB_001143e8:
      sVar6 = kernel_00->width;
LAB_00114400:
      if (kernel->width == sVar6) {
LAB_00114598:
        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&
           (kernel->y == kernel_00->y)) {
          iVar10 = sVar6 * kernel->height;
          if (iVar10 == 0) {
LAB_0011462a:
            DestroyKernelInfo(kernel_00);
            return;
          }
          iVar8 = 0;
          do {
            dVar17 = kernel_00->values[iVar8];
            if (NAN(kernel->values[iVar8])) {
              if (!NAN(dVar17)) break;
            }
            else if (NAN(dVar17)) break;
            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;
            iVar8 = iVar8 + 1;
            if (iVar8 == iVar10) goto LAB_0011462a;
          } while( true );
        }
      }
    }
    else {
      switch(kernel_00->type) {
      case GaussianKernel:
      case DoGKernel:
      case LoGKernel:
      case LaplacianKernel:
      case DiamondKernel:
      case SquareKernel:
      case DiskKernel:
      case PlusKernel:
      case CrossKernel:
      case PeaksKernel:
      case ChebyshevKernel:
      case ManhattanKernel:
      case EuclideanKernel:
        goto LAB_001143e8;
      case BlurKernel:
        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))
        goto LAB_001143e8;
        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {
          local_5c = local_5c - (double)DAT_002df8cc;
        }
      }
      dVar17 = (double)DAT_002df8c4;
      dVar16 = fmod(local_5c,(double)DAT_002df8c4);
      if (((double)DAT_002fbeac < dVar16) &&
         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)) {
        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {
          pMVar7 = kernel_00->values;
          iVar10 = kernel_00->x;
          MVar2 = *pMVar7;
          *pMVar7 = pMVar7[3];
          pMVar7[3] = pMVar7[6];
          pMVar7[6] = pMVar7[7];
          pMVar7[7] = pMVar7[8];
          pMVar7[8] = pMVar7[5];
          pMVar7[5] = pMVar7[2];
          pMVar7[2] = pMVar7[1];
          pMVar7[1] = MVar2;
          iVar8 = kernel_00->y;
          if (iVar10 == 1) {
            iVar14 = 1 - iVar8;
            if (iVar8 != 1) {
LAB_001149a8:
              iVar12 = iVar14 + 1;
              goto LAB_00114949;
            }
          }
          else {
            if (iVar10 + -1 == iVar8 + -1) {
              iVar12 = 1;
              iVar8 = iVar10;
            }
            else {
              iVar14 = 1 - iVar8;
              if (iVar10 == 1) goto LAB_001149a8;
              iVar12 = iVar10;
              if (iVar10 + -1 == iVar14) {
                iVar8 = 1;
              }
              else if (iVar8 == 1) {
                iVar8 = iVar10;
              }
            }
LAB_00114949:
            kernel_00->x = iVar12;
            kernel_00->y = iVar8;
          }
          dVar17 = (double)DAT_002e8154;
          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);
          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);
          kernel_00->angle = dVar17;
        }
        else {
          perror("Unable to rotate non-3x3 kernel by 45 degrees");
        }
      }
      dVar17 = (double)DAT_002df8cc;
      dVar16 = fmod(local_5c,(double)DAT_002df8cc);
      if (((double)_DAT_002f1394 < dVar16) &&
         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)) {
        sVar6 = kernel_00->width;
        sVar3 = kernel_00->height;
        if (sVar6 == 1) {
          kernel_00->width = sVar3;
          sVar4 = kernel_00->y;
          kernel_00->height = 1;
          kernel_00->y = kernel_00->x;
          kernel_00->x = sVar4;
          fVar1 = DAT_002e8154;
          if (sVar3 == 1) goto LAB_001147a7;
          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);
          fVar5 = _DAT_002f250c;
        }
        else {
          if (sVar3 == 1) {
            kernel_00->height = sVar6;
            sVar4 = kernel_00->x;
            kernel_00->width = 1;
            kernel_00->x = kernel_00->y;
            kernel_00->y = sVar4;
          }
          else {
            if (sVar6 != sVar3) {
              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");
              goto LAB_001144d0;
            }
            local_34 = kernel_00->values;
            iVar10 = sVar6 - 1;
            if ((-1 < iVar10) && (1 < (int)sVar6)) {
              local_40 = 0;
              local_38 = local_34 + sVar6 * sVar6 + -1;
              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);
              local_3c = local_34;
              do {
                local_3c = local_3c + sVar6;
                iVar8 = 0;
                pMVar9 = local_38;
                pMVar11 = local_34;
                pMVar13 = local_3c;
                do {
                  pMVar13 = pMVar13 + -1;
                  MVar2 = *pMVar11;
                  *pMVar11 = pMVar7[iVar8];
                  pMVar7[iVar8] = *pMVar9;
                  iVar8 = iVar8 + 1;
                  *pMVar9 = *pMVar13;
                  pMVar11 = pMVar11 + sVar6;
                  *pMVar13 = MVar2;
                  pMVar9 = pMVar9 + -sVar6;
                } while (iVar8 < iVar10 - iVar8);
                local_40 = local_40 + 1;
                local_34 = local_34 + 1;
                local_38 = local_38 + -1;
                pMVar7 = pMVar7 + -sVar6;
              } while (local_40 <= iVar10 - local_40);
            }
            iVar10 = kernel_00->x;
            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;
            kernel_00->y = (iVar10 * 2) / 2;
          }
LAB_001147a7:
          fVar1 = DAT_002e8154;
          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);
          fVar5 = DAT_002df8c4;
        }
        local_54 = (double)fVar1;
        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);
        kernel_00->angle = dVar17;
      }
LAB_001144d0:
      sVar6 = kernel_00->width;
      if ((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))
      goto LAB_00114400;
      sVar3 = kernel_00->height;
      pMVar7 = kernel_00->values;
      iVar10 = sVar3 * sVar6 + -1;
      if (0 < iVar10) {
        iVar8 = 0;
        do {
          MVar2 = pMVar7[iVar8];
          pMVar7[iVar8] = pMVar7[iVar10];
          iVar8 = iVar8 + 1;
          pMVar7[iVar10] = MVar2;
          iVar10 = iVar10 + -1;
        } while (iVar8 < iVar10);
      }
      fVar1 = DAT_002e8154;
      kernel_00->x = (sVar6 - kernel_00->x) + -1;
      kernel_00->y = (sVar3 - kernel_00->y) + -1;
      dVar17 = (double)DAT_002df8cc;
      fmod(local_5c - dVar17,(double)fVar1);
      dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1);
      kernel_00->angle = dVar17;
      sVar6 = kernel_00->width;
      if (kernel->width == sVar6) goto LAB_00114598;
    }
    do {
      pKVar15 = kernel_01;
      kernel_01 = pKVar15->next;
    } while (kernel_01 != (_KernelInfo *)0x0);
    pKVar15->next = kernel_00;
    kernel_01 = kernel_00;
  } while( true );
}



void FUN_00114300(double param_1)

{
  float fVar1;
  float fVar2;
  undefined8 uVar3;
  double dVar4;
  uint *puVar5;
  uint *puVar6;
  uint uVar7;
  undefined8 *puVar8;
  uint uVar9;
  int iVar10;
  undefined8 *puVar11;
  int iVar12;
  undefined8 *puVar13;
  uint uVar14;
  undefined8 *puVar15;
  int unaff_EBP;
  uint *puVar16;
  uint *puVar17;
  double dVar18;
  undefined4 local_64;
  double local_5c;
  double local_54;
  int local_40;
  undefined8 *local_3c;
  undefined8 *local_38;
  undefined8 *local_34;
  
  puVar5 = (uint *)FUN_00045159();
  puVar16 = puVar5;
  do {
    puVar6 = (uint *)CloneKernelInfo(puVar16);
    if (puVar6 == (uint *)0x0) {
      return;
    }
    local_64 = SUB84(param_1,0);
    if (puVar6[0x10] != 0) {
      FUN_001120d0(local_64);
    }
    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);
    local_5c = fmod(param_1,(double)fVar1);
    if (local_5c < 0.0) {
      local_5c = local_5c + (double)fVar1;
    }
    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||
       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {
      uVar7 = puVar6[1];
LAB_00114400:
      if (puVar5[1] == uVar7) {
LAB_00114598:
        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {
          iVar12 = uVar7 * puVar5[2];
          if (iVar12 == 0) {
LAB_0011462a:
            DestroyKernelInfo(puVar6);
            return;
          }
          iVar10 = 0;
          do {
            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);
            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);
            if (NAN(dVar4)) {
              if (!NAN(dVar18)) break;
            }
            else if (NAN(dVar18)) break;
            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;
            iVar10 = iVar10 + 1;
            if (iVar10 == iVar12) goto LAB_0011462a;
          } while( true );
        }
      }
    }
    else {
      if (*puVar6 < 0x25) {
                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();
        return;
      }
      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);
      dVar18 = fmod(local_5c,(double)fVar1);
      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&
         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))
         ) {
        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {
          puVar8 = (undefined8 *)puVar6[5];
          uVar7 = puVar6[3];
          uVar3 = *puVar8;
          *puVar8 = puVar8[3];
          puVar8[3] = puVar8[6];
          puVar8[6] = puVar8[7];
          puVar8[7] = puVar8[8];
          puVar8[8] = puVar8[5];
          puVar8[5] = puVar8[2];
          puVar8[2] = puVar8[1];
          puVar8[1] = uVar3;
          uVar9 = puVar6[4];
          if (uVar7 == 1) {
            iVar12 = 1 - uVar9;
            if (uVar9 != 1) {
LAB_001149a8:
              uVar14 = iVar12 + 1;
              goto LAB_00114949;
            }
          }
          else {
            if (uVar7 - 1 == uVar9 - 1) {
              uVar14 = 1;
              uVar9 = uVar7;
            }
            else {
              iVar12 = 1 - uVar9;
              if (uVar7 == 1) goto LAB_001149a8;
              uVar14 = uVar7;
              if (uVar7 - 1 == iVar12) {
                uVar9 = 1;
              }
              else if (uVar9 == 1) {
                uVar9 = uVar7;
              }
            }
LAB_00114949:
            puVar6[3] = uVar14;
            puVar6[4] = uVar9;
          }
          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);
          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);
          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)
                                ),(double)fVar1);
          *(double *)(puVar6 + 0xe) = dVar18;
        }
        else {
          perror((char *)(unaff_EBP + 0x1e694e));
        }
      }
      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);
      dVar18 = fmod(local_5c,(double)fVar1);
      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&
         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))
         ) {
        uVar7 = puVar6[1];
        uVar9 = puVar6[2];
        if (uVar7 == 1) {
          puVar6[1] = uVar9;
          uVar7 = puVar6[4];
          puVar6[2] = 1;
          puVar6[4] = puVar6[3];
          puVar6[3] = uVar7;
          if (uVar9 == 1) goto LAB_001147a7;
          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);
          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);
          fVar1 = *(float *)(unaff_EBP + 0x1de206);
        }
        else {
          if (uVar9 == 1) {
            puVar6[2] = uVar7;
            uVar7 = puVar6[3];
            puVar6[1] = 1;
            puVar6[3] = puVar6[4];
            puVar6[4] = uVar7;
          }
          else {
            if (uVar7 != uVar9) {
              perror((char *)(unaff_EBP + 0x1e697e));
              goto LAB_001144d0;
            }
            local_34 = (undefined8 *)puVar6[5];
            iVar12 = uVar7 - 1;
            if ((-1 < iVar12) && (1 < (int)uVar7)) {
              local_40 = 0;
              local_38 = local_34 + uVar7 * uVar7 + -1;
              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);
              local_3c = local_34;
              do {
                local_3c = local_3c + uVar7;
                iVar10 = 0;
                puVar11 = local_38;
                puVar13 = local_34;
                puVar15 = local_3c;
                do {
                  puVar15 = puVar15 + -1;
                  uVar3 = *puVar13;
                  *puVar13 = puVar8[iVar10];
                  puVar8[iVar10] = *puVar11;
                  iVar10 = iVar10 + 1;
                  *puVar11 = *puVar15;
                  puVar13 = puVar13 + uVar7;
                  *puVar15 = uVar3;
                  puVar11 = puVar11 + -uVar7;
                } while (iVar10 < iVar12 - iVar10);
                local_40 = local_40 + 1;
                local_34 = local_34 + 1;
                local_38 = local_38 + -1;
                puVar8 = puVar8 + -uVar7;
              } while (local_40 <= iVar12 - local_40);
            }
            uVar14 = puVar6[3];
            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;
            puVar6[4] = (int)(uVar14 * 2) / 2;
          }
LAB_001147a7:
          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);
          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);
          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);
        }
        local_54 = (double)fVar2;
        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);
        *(double *)(puVar6 + 0xe) = dVar18;
      }
LAB_001144d0:
      uVar7 = puVar6[1];
      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||
         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;
      uVar9 = puVar6[2];
      uVar14 = puVar6[5];
      iVar12 = uVar9 * uVar7 + -1;
      if (0 < iVar12) {
        iVar10 = 0;
        do {
          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);
          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);
          iVar10 = iVar10 + 1;
          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;
          iVar12 = iVar12 + -1;
        } while (iVar10 < iVar12);
      }
      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);
      puVar6[3] = (uVar7 - puVar6[3]) - 1;
      puVar6[4] = (uVar9 - puVar6[4]) - 1;
      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);
      fmod(local_5c - (double)fVar2,(double)fVar1);
      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);
      *(double *)(puVar6 + 0xe) = dVar18;
      uVar7 = puVar6[1];
      if (puVar5[1] == uVar7) goto LAB_00114598;
    }
    do {
      puVar17 = puVar16;
      puVar16 = (uint *)puVar17[0x10];
    } while (puVar16 != (uint *)0x0);
    puVar17[0x10] = (uint)puVar6;
    puVar16 = puVar6;
  } while( true );
}


PUSH EBP
CALL 0x00045159
ADD EBP,0x309cfa
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
SUB ESP,0x5c
MOV dword ptr [ESP + 0x20],EAX
FLD qword ptr [ESP + 0x70]
FSTP qword ptr [ESP + 0x8]
LEA EAX,[EBP + 0xffedcc84]
MOV dword ptr [ESP + 0x28],EAX
LEA ESI,[ESI]
SUB ESP,0xc
MOV EBX,EBP
PUSH ESI
CALL 0x00033310
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x00114638
MOV EAX,dword ptr [EAX + 0x40]
TEST EAX,EAX
JNZ 0x00114610
FLD dword ptr [EBP + 0xffeca154]
SUB ESP,0x8
MOV EBX,EBP
FST qword ptr [ESP + 0x18]
FSTP qword ptr [ESP]
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
CALL 0x000305d0
ADD ESP,0x10
FLDZ
FUCOMIP ST0,ST1
JBE 0x0011437f
FADD qword ptr [ESP + 0x10]
FLD dword ptr [EBP + 0xffeddea8]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JA 0x001143d0
FLD dword ptr [EBP + 0xffeddeac]
FUCOMIP ST0,ST1
JNC 0x001143d8
CMP dword ptr [EDI],0x24
JA 0x00114460
MOV EAX,dword ptr [EDI]
MOV ECX,dword ptr [EBP + EAX*0x4 + 0xffedd3d4]
ADD ECX,EBP
JMP ECX
FSTP ST0
JMP 0x001143e8
FSTP ST0
JMP 0x001143e8
MOV EAX,dword ptr [EDI + 0x4]
JMP 0x00114400
FSTP ST0
JMP 0x00114400
FSTP ST0
LEA ESI,[ESI]
LEA EDI,[EDI]
MOV ECX,dword ptr [ESP + 0x20]
CMP dword ptr [ECX + 0x4],EAX
JNZ 0x00114428
JMP 0x00114598
MOV ESI,EAX
JMP 0x00114428
FSTP ST0
FSTP ST0
FSTP ST0
JMP 0x00114428
FSTP ST0
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI + 0x40]
TEST EAX,EAX
JNZ 0x00114410
MOV dword ptr [ESI + 0x40],EDI
MOV ESI,EDI
JMP 0x00114330
FLD dword ptr [EBP + 0xffec18c4]
SUB ESP,0x10
MOV EBX,EBP
FST qword ptr [ESP + 0x28]
FSTP qword ptr [ESP + 0x8]
FST qword ptr [ESP]
FSTP qword ptr [ESP + 0x20]
CALL 0x000305d0
FLD dword ptr [EBP + 0xffeddeac]
FXCH
ADD ESP,0x10
FUCOMIP ST0,ST1
FSTP ST0
FLD qword ptr [ESP + 0x10]
JA 0x001147e2
FLD dword ptr [EBP + 0xffec18cc]
SUB ESP,0x10
MOV EBX,EBP
FST qword ptr [ESP + 0x28]
FSTP qword ptr [ESP + 0x8]
FST qword ptr [ESP]
FSTP qword ptr [ESP + 0x20]
CALL 0x000305d0
FLD dword ptr [EBP + 0xffed3394]
FXCH
ADD ESP,0x10
FUCOMIP ST0,ST1
FSTP ST0
FLD qword ptr [ESP + 0x10]
JA 0x00114640
FLD dword ptr [EBP + 0xffeddeb0]
FXCH
FUCOMI ST0,ST1
FSTP ST1
MOV EAX,dword ptr [EDI + 0x4]
JBE 0x001143f0
FLD dword ptr [EBP + 0xffeddeb4]
FUCOMIP ST0,ST1
JC 0x001143f4
MOV EDX,dword ptr [EDI + 0x8]
MOV EBX,dword ptr [EDI + 0x14]
MOV dword ptr [ESP + 0x10],EDX
IMUL EDX,EAX
SUB EDX,0x1
TEST EDX,EDX
JLE 0x00114526
XOR ECX,ECX
LEA ESI,[ESI]
FLD qword ptr [EBX + ECX*0x8]
FLD qword ptr [EBX + EDX*0x8]
FSTP qword ptr [EBX + ECX*0x8]
ADD ECX,0x1
FSTP qword ptr [EBX + EDX*0x8]
SUB EDX,0x1
CMP ECX,EDX
JL 0x00114510
SUB EAX,dword ptr [EDI + 0xc]
SUB ESP,0x10
MOV EBX,EBP
FLD dword ptr [EBP + 0xffeca154]
SUB EAX,0x1
MOV dword ptr [EDI + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x20]
SUB EAX,dword ptr [EDI + 0x10]
SUB EAX,0x1
MOV dword ptr [EDI + 0x10],EAX
FST qword ptr [ESP + 0x8]
FSTP qword ptr [ESP + 0x28]
FLD dword ptr [EBP + 0xffec18cc]
FSUB ST1,ST0
FSTP qword ptr [ESP + 0x20]
FSTP qword ptr [ESP]
CALL 0x000305d0
FSTP ST0
SUB ESP,0x10
FLD qword ptr [ESP + 0x38]
FSTP qword ptr [ESP + 0x8]
FLD qword ptr [ESP + 0x30]
FADD qword ptr [EDI + 0x38]
FSTP qword ptr [ESP]
CALL 0x000305d0
ADD ESP,0x20
MOV ECX,dword ptr [ESP + 0x20]
FSTP qword ptr [EDI + 0x38]
MOV EAX,dword ptr [EDI + 0x4]
CMP dword ptr [ECX + 0x4],EAX
JNZ 0x00114428
LEA ESI,[ESI]
MOV EDX,dword ptr [ECX + 0x8]
CMP EDX,dword ptr [EDI + 0x8]
JNZ 0x00114428
MOV EBX,dword ptr [EDI + 0xc]
CMP dword ptr [ECX + 0xc],EBX
JNZ 0x00114428
MOV EBX,dword ptr [EDI + 0x10]
CMP dword ptr [ECX + 0x10],EBX
JNZ 0x00114428
IMUL EAX,EDX
TEST EAX,EAX
JZ 0x0011462a
MOV EBX,dword ptr [ECX + 0x14]
XOR EDX,EDX
MOV ECX,dword ptr [EDI + 0x14]
FLD qword ptr [EBP + 0xffec12d0]
JMP 0x001145f5
FXCH
FUCOMI ST0,ST0
JP 0x00114414
FSUBP
FABS
FUCOMIP ST0,ST1
JNC 0x00114420
ADD EDX,0x1
CMP EDX,EAX
JZ 0x00114628
FLD qword ptr [ECX + EDX*0x8]
FLD qword ptr [EBX + EDX*0x8]
FUCOMI ST0,ST0
JNP 0x001145d8
FXCH
FUCOMI ST0,ST0
JP 0x001145e2
FSTP ST0
FSTP ST0
FSTP ST0
JMP 0x00114428
SUB ESP,0x8
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
CALL 0x001120d0
ADD ESP,0x10
JMP 0x00114353
FSTP ST0
SUB ESP,0xc
MOV EBX,EBP
PUSH EDI
CALL 0x00031150
ADD ESP,0x10
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
SUB ESP,0x8
FST qword ptr [ESP]
FSTP qword ptr [ESP + 0x20]
CALL 0x000305d0
FLD dword ptr [EBP + 0xffeddeb0]
ADD ESP,0x10
FUCOMIP ST0,ST1
FSTP ST0
FLD qword ptr [ESP + 0x10]
JC 0x001144d0
MOV EAX,dword ptr [EDI + 0x4]
MOV ECX,dword ptr [EDI + 0x8]
MOV dword ptr [ESP + 0x3c],EAX
MOV dword ptr [ESP + 0x40],ECX
CMP EAX,0x1
JZ 0x00114841
CMP ECX,0x1
JZ 0x001148cc
MOV EBX,EAX
MOV EAX,dword ptr [ESP + 0x40]
CMP EBX,EAX
JNZ 0x001148ae
MOV ECX,EBX
MOV EAX,dword ptr [EDI + 0x14]
SUB ECX,0x1
MOV dword ptr [ESP + 0x44],ECX
JS 0x0011476b
CMP EBX,0x1
JLE 0x0011476b
MOV EDX,EAX
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,EBX
IMUL EAX,EBX
SHL EBX,0x3
MOV dword ptr [ESP + 0x48],ESI
MOV dword ptr [ESP + 0x18],EBX
MOV dword ptr [ESP + 0x2c],0x0
LEA EAX,[EDX + EAX*0x8 + -0x8]
MOV dword ptr [ESP + 0x24],ECX
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,EDX
ADD EAX,EBX
MOV dword ptr [ESP + 0x4c],EDI
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,EBX
NEG EAX
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,ECX
IMUL EAX,EBX
ADD EAX,EDX
MOV ESI,EAX
MOV EBX,dword ptr [ESP + 0x30]
XOR EAX,EAX
MOV ECX,dword ptr [ESP + 0x34]
MOV EDX,dword ptr [ESP + 0x38]
LEA ESI,[ESI]
MOV EDI,dword ptr [ESP + 0x24]
SUB EBX,0x8
FLD qword ptr [EDX]
FLD qword ptr [ESI + EAX*0x8]
FSTP qword ptr [EDX]
FLD qword ptr [ECX]
FSTP qword ptr [ESI + EAX*0x8]
ADD EAX,0x1
FLD qword ptr [EBX]
FSTP qword ptr [ECX]
SUB EDI,EAX
ADD EDX,dword ptr [ESP + 0x18]
FSTP qword ptr [EBX]
ADD ECX,dword ptr [ESP + 0x10]
CMP EAX,EDI
JL 0x00114710
ADD dword ptr [ESP + 0x2c],0x1
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ESP + 0x2c]
ADD dword ptr [ESP + 0x38],0x8
SUB dword ptr [ESP + 0x34],0x8
MOV EBX,dword ptr [ESP + 0x18]
SUB EAX,EDX
ADD ESI,dword ptr [ESP + 0x10]
ADD dword ptr [ESP + 0x30],EBX
CMP EDX,EAX
JLE 0x001146fe
MOV ESI,dword ptr [ESP + 0x48]
MOV EDI,dword ptr [ESP + 0x4c]
MOV ECX,dword ptr [EDI + 0x10]
MOV EDX,0x1
SUB EDX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EDI + 0xc]
LEA EDX,[EDX + ECX*0x2]
MOV ECX,dword ptr [ESP + 0x3c]
SUB ECX,EDX
LEA ECX,[ECX + -0x1]
MOV EDX,ECX
SHR EDX,0x1f
ADD EDX,ECX
SAR EDX,0x1
MOV dword ptr [EDI + 0xc],EDX
MOV EDX,0x1
LEA EDX,[EDX + EAX*0x2 + -0x1]
MOV EAX,EDX
SHR EAX,0x1f
ADD EAX,EDX
SAR EAX,0x1
MOV dword ptr [EDI + 0x10],EAX
FADD dword ptr [EBP + 0xffed450c]
SUB ESP,0x10
MOV EBX,EBP
FLD dword ptr [EBP + 0xffeca154]
FST qword ptr [ESP + 0x8]
FSTP qword ptr [ESP + 0x28]
FSTP qword ptr [ESP]
CALL 0x000305d0
SUB ESP,0x10
FSTP qword ptr [ESP + 0x30]
FLD qword ptr [ESP + 0x38]
FSTP qword ptr [ESP + 0x8]
FLD dword ptr [EBP + 0xffec18c4]
JMP 0x00114894
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
SUB ESP,0x8
FST qword ptr [ESP]
FSTP qword ptr [ESP + 0x20]
CALL 0x000305d0
FLD dword ptr [EBP + 0xffeddebc]
ADD ESP,0x10
FUCOMIP ST0,ST1
FSTP ST0
FLD qword ptr [ESP + 0x10]
JC 0x00114498
CMP dword ptr [EDI + 0x4],0x3
JNZ 0x00114820
CMP dword ptr [EDI + 0x8],0x3
JZ 0x001148e7
FSTP qword ptr [ESP + 0x10]
LEA EAX,[EBP + 0xffedcc54]
SUB ESP,0xc
MOV EBX,EBP
PUSH EAX
CALL 0x00031590
ADD ESP,0x10
FLD qword ptr [ESP + 0x10]
JMP 0x00114498
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [EDI + 0x4],ECX
MOV EDX,dword ptr [EDI + 0x10]
MOV dword ptr [EDI + 0x8],0x1
MOV dword ptr [EDI + 0x10],EAX
MOV dword ptr [EDI + 0xc],EDX
CMP ECX,0x1
JZ 0x001147a7
FADD dword ptr [EBP + 0xffec18c4]
SUB ESP,0x10
FLD dword ptr [EBP + 0xffeca154]
FST qword ptr [ESP + 0x8]
FSTP qword ptr [ESP + 0x28]
FSTP qword ptr [ESP]
CALL 0x000305d0
SUB ESP,0x10
FSTP qword ptr [ESP + 0x30]
FLD qword ptr [ESP + 0x38]
FSTP qword ptr [ESP + 0x8]
FLD dword ptr [EBP + 0xffed450c]
FADD qword ptr [EDI + 0x38]
FSTP qword ptr [ESP]
CALL 0x000305d0
ADD ESP,0x20
FSTP qword ptr [EDI + 0x38]
FLD qword ptr [ESP + 0x10]
JMP 0x001144d0
FSTP qword ptr [ESP + 0x10]
SUB ESP,0xc
MOV EBX,EBP
PUSH dword ptr [ESP + 0x34]
CALL 0x00031590
ADD ESP,0x10
FLD qword ptr [ESP + 0x10]
JMP 0x001144d0
MOV EDX,dword ptr [EDI + 0x10]
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [EDI + 0xc]
MOV dword ptr [EDI + 0x4],0x1
MOV dword ptr [EDI + 0xc],EDX
MOV dword ptr [EDI + 0x10],EAX
JMP 0x001147a7
MOV EAX,dword ptr [EDI + 0x14]
MOV EDX,dword ptr [EDI + 0xc]
FLD qword ptr [EAX]
FLD qword ptr [EAX + 0x18]
FSTP qword ptr [EAX]
FLD qword ptr [EAX + 0x30]
FSTP qword ptr [EAX + 0x18]
FLD qword ptr [EAX + 0x38]
FSTP qword ptr [EAX + 0x30]
FLD qword ptr [EAX + 0x40]
FSTP qword ptr [EAX + 0x38]
FLD qword ptr [EAX + 0x28]
FSTP qword ptr [EAX + 0x40]
FLD qword ptr [EAX + 0x10]
FSTP qword ptr [EAX + 0x28]
FLD qword ptr [EAX + 0x8]
FSTP qword ptr [EAX + 0x10]
FSTP qword ptr [EAX + 0x8]
MOV EAX,dword ptr [EDI + 0x10]
CMP EDX,0x1
JZ 0x0011499f
LEA EBX,[EAX + -0x1]
LEA ECX,[EDX + -0x1]
MOV dword ptr [ESP + 0x10],EBX
CMP ECX,EBX
JZ 0x001149ad
MOV EBX,0x1
SUB EBX,EAX
TEST ECX,ECX
JZ 0x001149a8
CMP ECX,EBX
JZ 0x001149b6
MOV ECX,dword ptr [ESP + 0x10]
TEST ECX,ECX
CMOVZ EAX,EDX
MOV dword ptr [EDI + 0xc],EDX
MOV dword ptr [EDI + 0x10],EAX
FADD dword ptr [EBP + 0xffeddeb8]
SUB ESP,0x10
MOV EBX,EBP
FLD dword ptr [EBP + 0xffeca154]
FST qword ptr [ESP + 0x8]
FSTP qword ptr [ESP + 0x28]
FSTP qword ptr [ESP]
CALL 0x000305d0
SUB ESP,0x10
FSTP qword ptr [ESP + 0x30]
FLD qword ptr [ESP + 0x38]
FSTP qword ptr [ESP + 0x8]
FLD dword ptr [EBP + 0xffed3394]
FADD qword ptr [EDI + 0x38]
FSTP qword ptr [ESP]
CALL 0x000305d0
ADD ESP,0x20
FSTP qword ptr [EDI + 0x38]
FLD qword ptr [ESP + 0x10]
JMP 0x00114498
SUB EDX,EAX
MOV EBX,EDX
CMP EAX,0x1
JZ 0x0011494f
LEA EDX,[EBX + 0x1]
JMP 0x00114949
MOV EAX,EDX
MOV EDX,0x1
JMP 0x00114949
MOV EAX,0x1
JMP 0x00114949
(translation_unit "void FUN_00114300(double param_1)\n\n{\n  float fVar1;\n  float fVar2;\n  undefined8 uVar3;\n  double dVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  int iVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  int unaff_EBP;\n  uint *puVar16;\n  uint *puVar17;\n  double dVar18;\n  undefined4 local_64;\n  double local_5c;\n  double local_54;\n  int local_40;\n  undefined8 *local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  \n  puVar5 = (uint *)FUN_00045159();\n  puVar16 = puVar5;\n  do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );\n}\n\n" (function_definition "void FUN_00114300(double param_1)\n\n{\n  float fVar1;\n  float fVar2;\n  undefined8 uVar3;\n  double dVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  int iVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  int unaff_EBP;\n  uint *puVar16;\n  uint *puVar17;\n  double dVar18;\n  undefined4 local_64;\n  double local_5c;\n  double local_54;\n  int local_40;\n  undefined8 *local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  \n  puVar5 = (uint *)FUN_00045159();\n  puVar16 = puVar5;\n  do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00114300(double param_1)" identifier (parameter_list "(double param_1)" ( (parameter_declaration "double param_1" primitive_type identifier) ))) (compound_statement "{\n  float fVar1;\n  float fVar2;\n  undefined8 uVar3;\n  double dVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  int iVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  int unaff_EBP;\n  uint *puVar16;\n  uint *puVar17;\n  double dVar18;\n  undefined4 local_64;\n  double local_5c;\n  double local_54;\n  int local_40;\n  undefined8 *local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  \n  puVar5 = (uint *)FUN_00045159();\n  puVar16 = puVar5;\n  do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "float fVar2;" primitive_type identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "double local_5c;" primitive_type identifier ;) (declaration "double local_54;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined8 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined8 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined8 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (expression_statement "puVar5 = (uint *)FUN_00045159();" (assignment_expression "puVar5 = (uint *)FUN_00045159()" identifier = (cast_expression "(uint *)FUN_00045159()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00045159()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar16 = puVar5;" (assignment_expression "puVar16 = puVar5" identifier = identifier) ;) (do_statement "do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );" do (compound_statement "{\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  }" { (expression_statement "puVar6 = (uint *)CloneKernelInfo(puVar16);" (assignment_expression "puVar6 = (uint *)CloneKernelInfo(puVar16)" identifier = (cast_expression "(uint *)CloneKernelInfo(puVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CloneKernelInfo(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))))) ;) (if_statement "if (puVar6 == (uint *)0x0) {\n      return;\n    }" if (parenthesized_expression "(puVar6 == (uint *)0x0)" ( (binary_expression "puVar6 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = SUB84(param_1,0);" (assignment_expression "local_64 = SUB84(param_1,0)" identifier = (call_expression "SUB84(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (if_statement "if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }" if (parenthesized_expression "(puVar6[0x10] != 0)" ( (binary_expression "puVar6[0x10] != 0" (subscript_expression "puVar6[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_001120d0(local_64);\n    }" { (expression_statement "FUN_001120d0(local_64);" (call_expression "FUN_001120d0(local_64)" identifier (argument_list "(local_64)" ( identifier ))) ;) })) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" * (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" ( (binary_expression "unaff_EBP + 0x1d3e4e" identifier + number_literal) ))))) ;) (expression_statement "local_5c = fmod(param_1,(double)fVar1);" (assignment_expression "local_5c = fmod(param_1,(double)fVar1)" identifier = (call_expression "fmod(param_1,(double)fVar1)" identifier (argument_list "(param_1,(double)fVar1)" ( identifier , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }" if (parenthesized_expression "(local_5c < 0.0)" ( (binary_expression "local_5c < 0.0" identifier < number_literal) )) (compound_statement "{\n      local_5c = local_5c + (double)fVar1;\n    }" { (expression_statement "local_5c = local_5c + (double)fVar1;" (assignment_expression "local_5c = local_5c + (double)fVar1" identifier = (binary_expression "local_5c + (double)fVar1" identifier + (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier))) ;) })) (if_statement "if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }" if (parenthesized_expression "(((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6)))" ( (binary_expression "((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))" (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c)" ( (binary_expression "(double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c" (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7ba2)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7ba2)" * (cast_expression "(float *)(unaff_EBP + 0x1e7ba2)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7ba2)" ( (binary_expression "unaff_EBP + 0x1e7ba2" identifier + number_literal) ))))) < identifier) )) || (parenthesized_expression "(local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))" ( (binary_expression "local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6)" identifier <= (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7ba6)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7ba6)" * (cast_expression "(float *)(unaff_EBP + 0x1e7ba6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7ba6)" ( (binary_expression "unaff_EBP + 0x1e7ba6" identifier + number_literal) )))))) ))) )) (compound_statement "{\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }" { (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }" statement_identifier : (if_statement "if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }" if (parenthesized_expression "(puVar5[1] == uVar7)" ( (binary_expression "puVar5[1] == uVar7" (subscript_expression "puVar5[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }" { (labeled_statement "LAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }" statement_identifier : (if_statement "if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }" if (parenthesized_expression "(((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4]))" ( (binary_expression "((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])" (parenthesized_expression "((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3]))" ( (binary_expression "(puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])" (parenthesized_expression "(puVar5[2] == puVar6[2])" ( (binary_expression "puVar5[2] == puVar6[2]" (subscript_expression "puVar5[2]" identifier [ number_literal ]) == (subscript_expression "puVar6[2]" identifier [ number_literal ])) )) && (parenthesized_expression "(puVar5[3] == puVar6[3])" ( (binary_expression "puVar5[3] == puVar6[3]" (subscript_expression "puVar5[3]" identifier [ number_literal ]) == (subscript_expression "puVar6[3]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(puVar5[4] == puVar6[4])" ( (binary_expression "puVar5[4] == puVar6[4]" (subscript_expression "puVar5[4]" identifier [ number_literal ]) == (subscript_expression "puVar6[4]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }" { (expression_statement "iVar12 = uVar7 * puVar5[2];" (assignment_expression "iVar12 = uVar7 * puVar5[2]" identifier = (binary_expression "uVar7 * puVar5[2]" identifier * (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (if_statement "if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }" { (labeled_statement "LAB_0011462a:\n            DestroyKernelInfo(puVar6);" statement_identifier : (expression_statement "DestroyKernelInfo(puVar6);" (call_expression "DestroyKernelInfo(puVar6)" identifier (argument_list "(puVar6)" ( identifier ))) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );" do (compound_statement "{\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          }" { (expression_statement "dVar18 = *(double *)(puVar6[5] + iVar10 * 8);" (assignment_expression "dVar18 = *(double *)(puVar6[5] + iVar10 * 8)" identifier = (pointer_expression "*(double *)(puVar6[5] + iVar10 * 8)" * (cast_expression "(double *)(puVar6[5] + iVar10 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6[5] + iVar10 * 8)" ( (binary_expression "puVar6[5] + iVar10 * 8" (subscript_expression "puVar6[5]" identifier [ number_literal ]) + (binary_expression "iVar10 * 8" identifier * number_literal)) ))))) ;) (expression_statement "dVar4 = *(double *)(puVar5[5] + iVar10 * 8);" (assignment_expression "dVar4 = *(double *)(puVar5[5] + iVar10 * 8)" identifier = (pointer_expression "*(double *)(puVar5[5] + iVar10 * 8)" * (cast_expression "(double *)(puVar5[5] + iVar10 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[5] + iVar10 * 8)" ( (binary_expression "puVar5[5] + iVar10 * 8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) + (binary_expression "iVar10 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;" if (parenthesized_expression "(NAN(dVar4))" ( (call_expression "NAN(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))) )) (compound_statement "{\n              if (!NAN(dVar18)) break;\n            }" { (if_statement "if (!NAN(dVar18)) break;" if (parenthesized_expression "(!NAN(dVar18))" ( (unary_expression "!NAN(dVar18)" ! (call_expression "NAN(dVar18)" identifier (argument_list "(dVar18)" ( identifier )))) )) (break_statement "break;" break ;)) }) (else_clause "else if (NAN(dVar18)) break;" else (if_statement "if (NAN(dVar18)) break;" if (parenthesized_expression "(NAN(dVar18))" ( (call_expression "NAN(dVar18)" identifier (argument_list "(dVar18)" ( identifier ))) )) (break_statement "break;" break ;)))) (if_statement "if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;" if (parenthesized_expression "(*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18))" ( (binary_expression "*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)" (pointer_expression "*(double *)(unaff_EBP + 0x1cafca)" * (cast_expression "(double *)(unaff_EBP + 0x1cafca)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cafca)" ( (binary_expression "unaff_EBP + 0x1cafca" identifier + number_literal) )))) <= (call_expression "ABS(dVar4 - dVar18)" identifier (argument_list "(dVar4 - dVar18)" ( (binary_expression "dVar4 - dVar18" identifier - identifier) )))) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (if_statement "if (iVar10 == iVar12) goto LAB_0011462a;" if (parenthesized_expression "(iVar10 == iVar12)" ( (binary_expression "iVar10 == iVar12" identifier == identifier) )) (goto_statement "goto LAB_0011462a;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) }))) }) (else_clause "else {\n      if (*puVar6 < 0x25) {\n                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }" else (compound_statement "{\n      if (*puVar6 < 0x25) {\n                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }" { (if_statement "if (*puVar6 < 0x25) {\n                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }" if (parenthesized_expression "(*puVar6 < 0x25)" ( (binary_expression "*puVar6 < 0x25" (pointer_expression "*puVar6" * identifier) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }" { comment comment (expression_statement "(*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();" (call_expression "(*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))()" (parenthesized_expression "(*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))" ( (pointer_expression "*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP)" * (cast_expression "(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP)" ( (binary_expression "&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP" (binary_expression "&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4)" (pointer_expression "&UNK_00309cfa" & identifier) + (pointer_expression "*(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4)" * (cast_expression "(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e70ce + *puVar6 * 4)" ( (binary_expression "unaff_EBP + 0x1e70ce + *puVar6 * 4" (binary_expression "unaff_EBP + 0x1e70ce" identifier + number_literal) + (binary_expression "*puVar6 * 4" (pointer_expression "*puVar6" * identifier) * number_literal)) ))))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1cb5be);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1cb5be)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1cb5be)" * (cast_expression "(float *)(unaff_EBP + 0x1cb5be)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cb5be)" ( (binary_expression "unaff_EBP + 0x1cb5be" identifier + number_literal) ))))) ;) (expression_statement "dVar18 = fmod(local_5c,(double)fVar1);" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" identifier = (call_expression "fmod(local_5c,(double)fVar1)" identifier (argument_list "(local_5c,(double)fVar1)" ( identifier , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }" if (parenthesized_expression "(((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         )" ( (binary_expression "((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))" (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18)" ( (binary_expression "(double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18" (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7ba6)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7ba6)" * (cast_expression "(float *)(unaff_EBP + 0x1e7ba6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7ba6)" ( (binary_expression "unaff_EBP + 0x1e7ba6" identifier + number_literal) ))))) < identifier) )) && (parenthesized_expression "(dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))" ( (comma_expression "dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6)" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" identifier = (call_expression "fmod(local_5c,(double)fVar1)" identifier (argument_list "(local_5c,(double)fVar1)" ( identifier , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) , (binary_expression "dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6)" identifier <= (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7bb6)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7bb6)" * (cast_expression "(float *)(unaff_EBP + 0x1e7bb6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7bb6)" ( (binary_expression "unaff_EBP + 0x1e7bb6" identifier + number_literal) ))))))) ))) )) (compound_statement "{\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }" { (if_statement "if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }" if (parenthesized_expression "((puVar6[1] == 3) && (puVar6[2] == 3))" ( (binary_expression "(puVar6[1] == 3) && (puVar6[2] == 3)" (parenthesized_expression "(puVar6[1] == 3)" ( (binary_expression "puVar6[1] == 3" (subscript_expression "puVar6[1]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(puVar6[2] == 3)" ( (binary_expression "puVar6[2] == 3" (subscript_expression "puVar6[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }" { (expression_statement "puVar8 = (undefined8 *)puVar6[5];" (assignment_expression "puVar8 = (undefined8 *)puVar6[5]" identifier = (cast_expression "(undefined8 *)puVar6[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar7 = puVar6[3];" (assignment_expression "uVar7 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = *puVar8;" (assignment_expression "uVar3 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "*puVar8 = puVar8[3];" (assignment_expression "*puVar8 = puVar8[3]" (pointer_expression "*puVar8" * identifier) = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "puVar8[3] = puVar8[6];" (assignment_expression "puVar8[3] = puVar8[6]" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "puVar8[6] = puVar8[7];" (assignment_expression "puVar8[6] = puVar8[7]" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = (subscript_expression "puVar8[7]" identifier [ number_literal ])) ;) (expression_statement "puVar8[7] = puVar8[8];" (assignment_expression "puVar8[7] = puVar8[8]" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (subscript_expression "puVar8[8]" identifier [ number_literal ])) ;) (expression_statement "puVar8[8] = puVar8[5];" (assignment_expression "puVar8[8] = puVar8[5]" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar8[5] = puVar8[2];" (assignment_expression "puVar8[5] = puVar8[2]" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "puVar8[2] = puVar8[1];" (assignment_expression "puVar8[2] = puVar8[1]" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "puVar8[1] = uVar3;" (assignment_expression "puVar8[1] = uVar3" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (if_statement "if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }" { (expression_statement "iVar12 = 1 - uVar9;" (assignment_expression "iVar12 = 1 - uVar9" identifier = (binary_expression "1 - uVar9" number_literal - identifier)) ;) (if_statement "if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }" if (parenthesized_expression "(uVar9 != 1)" ( (binary_expression "uVar9 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }" { (labeled_statement "LAB_001149a8:\n              uVar14 = iVar12 + 1;" statement_identifier : (expression_statement "uVar14 = iVar12 + 1;" (assignment_expression "uVar14 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;)) (goto_statement "goto LAB_00114949;" goto statement_identifier ;) })) }) (else_clause "else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }" else (compound_statement "{\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }" { (if_statement "if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }" if (parenthesized_expression "(uVar7 - 1 == uVar9 - 1)" ( (binary_expression "uVar7 - 1 == uVar9 - 1" (binary_expression "uVar7 - 1" identifier - number_literal) == (binary_expression "uVar9 - 1" identifier - number_literal)) )) (compound_statement "{\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }" { (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" identifier = identifier) ;) }) (else_clause "else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }" else (compound_statement "{\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }" { (expression_statement "iVar12 = 1 - uVar9;" (assignment_expression "iVar12 = 1 - uVar9" identifier = (binary_expression "1 - uVar9" number_literal - identifier)) ;) (if_statement "if (uVar7 == 1) goto LAB_001149a8;" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (goto_statement "goto LAB_001149a8;" goto statement_identifier ;)) (expression_statement "uVar14 = uVar7;" (assignment_expression "uVar14 = uVar7" identifier = identifier) ;) (if_statement "if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }" if (parenthesized_expression "(uVar7 - 1 == iVar12)" ( (binary_expression "uVar7 - 1 == iVar12" (binary_expression "uVar7 - 1" identifier - number_literal) == identifier) )) (compound_statement "{\n                uVar9 = 1;\n              }" { (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) }) (else_clause "else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }" else (if_statement "if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (compound_statement "{\n                uVar9 = uVar7;\n              }" { (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" identifier = identifier) ;) })))) }))) (labeled_statement "LAB_00114949:\n            puVar6[3] = uVar14;" statement_identifier : (expression_statement "puVar6[3] = uVar14;" (assignment_expression "puVar6[3] = uVar14" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar6[4] = uVar9;" (assignment_expression "puVar6[4] = uVar9" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" * (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" ( (binary_expression "unaff_EBP + 0x1d3e4e" identifier + number_literal) ))))) ;) (expression_statement "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);" (assignment_expression "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1)" identifier = (call_expression "fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1)" identifier (argument_list "(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1)" ( (binary_expression "local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2)" identifier + (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7bb2)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7bb2)" * (cast_expression "(float *)(unaff_EBP + 0x1e7bb2)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7bb2)" ( (binary_expression "unaff_EBP + 0x1e7bb2" identifier + number_literal) )))))) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);" (assignment_expression "dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1)" identifier = (call_expression "fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1)" identifier (argument_list "((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1)" ( (cast_expression "(double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                )" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                )" ( (binary_expression "*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)" (pointer_expression "*(float *)(unaff_EBP + 0x1dd08e)" * (cast_expression "(float *)(unaff_EBP + 0x1dd08e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1dd08e)" ( (binary_expression "unaff_EBP + 0x1dd08e" identifier + number_literal) )))) + (cast_expression "(float)*(double *)(puVar6 + 0xe)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) )))))) ))) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "*(double *)(puVar6 + 0xe) = dVar18;" (assignment_expression "*(double *)(puVar6 + 0xe) = dVar18" (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }" else (compound_statement "{\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }" { (expression_statement "perror((char *)(unaff_EBP + 0x1e694e));" (call_expression "perror((char *)(unaff_EBP + 0x1e694e))" identifier (argument_list "((char *)(unaff_EBP + 0x1e694e))" ( (cast_expression "(char *)(unaff_EBP + 0x1e694e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e694e)" ( (binary_expression "unaff_EBP + 0x1e694e" identifier + number_literal) ))) ))) ;) }))) })) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1cb5c6)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1cb5c6)" * (cast_expression "(float *)(unaff_EBP + 0x1cb5c6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cb5c6)" ( (binary_expression "unaff_EBP + 0x1cb5c6" identifier + number_literal) ))))) ;) (expression_statement "dVar18 = fmod(local_5c,(double)fVar1);" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" identifier = (call_expression "fmod(local_5c,(double)fVar1)" identifier (argument_list "(local_5c,(double)fVar1)" ( identifier , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }" if (parenthesized_expression "(((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         )" ( (binary_expression "((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))" (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18)" ( (binary_expression "(double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18" (cast_expression "(double)*(float *)(unaff_EBP + 0x1dd08e)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1dd08e)" * (cast_expression "(float *)(unaff_EBP + 0x1dd08e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1dd08e)" ( (binary_expression "unaff_EBP + 0x1dd08e" identifier + number_literal) ))))) < identifier) )) && (parenthesized_expression "(dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))" ( (comma_expression "dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa)" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" identifier = (call_expression "fmod(local_5c,(double)fVar1)" identifier (argument_list "(local_5c,(double)fVar1)" ( identifier , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) , (binary_expression "dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa)" identifier <= (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7baa)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7baa)" * (cast_expression "(float *)(unaff_EBP + 0x1e7baa)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7baa)" ( (binary_expression "unaff_EBP + 0x1e7baa" identifier + number_literal) ))))))) ))) )) (compound_statement "{\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }" { (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar6[2];" (assignment_expression "uVar9 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (compound_statement "{\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }" { (expression_statement "puVar6[1] = uVar9;" (assignment_expression "puVar6[1] = uVar9" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = puVar6[4];" (assignment_expression "uVar7 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "puVar6[2] = 1;" (assignment_expression "puVar6[2] = 1" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[4] = puVar6[3];" (assignment_expression "puVar6[4] = puVar6[3]" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[3] = uVar7;" (assignment_expression "puVar6[3] = uVar7" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar9 == 1) goto LAB_001147a7;" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (goto_statement "goto LAB_001147a7;" goto statement_identifier ;)) (expression_statement "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" * (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" ( (binary_expression "unaff_EBP + 0x1d3e4e" identifier + number_literal) ))))) ;) (expression_statement "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);" (assignment_expression "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2)" identifier = (call_expression "fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2)" identifier (argument_list "(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2)" ( (binary_expression "local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be)" identifier + (cast_expression "(double)*(float *)(unaff_EBP + 0x1cb5be)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1cb5be)" * (cast_expression "(float *)(unaff_EBP + 0x1cb5be)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cb5be)" ( (binary_expression "unaff_EBP + 0x1cb5be" identifier + number_literal) )))))) , (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1de206);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1de206)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1de206)" * (cast_expression "(float *)(unaff_EBP + 0x1de206)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1de206)" ( (binary_expression "unaff_EBP + 0x1de206" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }" else (compound_statement "{\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }" { (if_statement "if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (compound_statement "{\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }" { (expression_statement "puVar6[2] = uVar7;" (assignment_expression "puVar6[2] = uVar7" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = puVar6[3];" (assignment_expression "uVar7 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[1] = 1;" (assignment_expression "puVar6[1] = 1" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[3] = puVar6[4];" (assignment_expression "puVar6[3] = puVar6[4]" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "puVar6[4] = uVar7;" (assignment_expression "puVar6[4] = uVar7" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }" else (compound_statement "{\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }" { (if_statement "if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }" if (parenthesized_expression "(uVar7 != uVar9)" ( (binary_expression "uVar7 != uVar9" identifier != identifier) )) (compound_statement "{\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }" { (expression_statement "perror((char *)(unaff_EBP + 0x1e697e));" (call_expression "perror((char *)(unaff_EBP + 0x1e697e))" identifier (argument_list "((char *)(unaff_EBP + 0x1e697e))" ( (cast_expression "(char *)(unaff_EBP + 0x1e697e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e697e)" ( (binary_expression "unaff_EBP + 0x1e697e" identifier + number_literal) ))) ))) ;) (goto_statement "goto LAB_001144d0;" goto statement_identifier ;) })) (expression_statement "local_34 = (undefined8 *)puVar6[5];" (assignment_expression "local_34 = (undefined8 *)puVar6[5]" identifier = (cast_expression "(undefined8 *)puVar6[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar12 = uVar7 - 1;" (assignment_expression "iVar12 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;) (if_statement "if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }" if (parenthesized_expression "((-1 < iVar12) && (1 < (int)uVar7))" ( (binary_expression "(-1 < iVar12) && (1 < (int)uVar7)" (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) )) && (parenthesized_expression "(1 < (int)uVar7)" ( (binary_expression "1 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_38 = local_34 + uVar7 * uVar7 + -1;" (assignment_expression "local_38 = local_34 + uVar7 * uVar7 + -1" identifier = (binary_expression "local_34 + uVar7 * uVar7 + -1" (binary_expression "local_34 + uVar7 * uVar7" identifier + (binary_expression "uVar7 * uVar7" identifier * identifier)) + number_literal)) ;) (expression_statement "puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);" (assignment_expression "puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34)" identifier = (cast_expression "(undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 * uVar7 * 8 + (int)local_34)" ( (binary_expression "iVar12 * uVar7 * 8 + (int)local_34" (binary_expression "iVar12 * uVar7 * 8" (binary_expression "iVar12 * uVar7" identifier * identifier) * number_literal) + (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_3c = local_34;" (assignment_expression "local_3c = local_34" identifier = identifier) ;) (do_statement "do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);" do (compound_statement "{\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              }" { (expression_statement "local_3c = local_3c + uVar7;" (assignment_expression "local_3c = local_3c + uVar7" identifier = (binary_expression "local_3c + uVar7" identifier + identifier)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" identifier = identifier) ;) (expression_statement "puVar13 = local_34;" (assignment_expression "puVar13 = local_34" identifier = identifier) ;) (expression_statement "puVar15 = local_3c;" (assignment_expression "puVar15 = local_3c" identifier = identifier) ;) (do_statement "do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);" do (compound_statement "{\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                }" { (expression_statement "puVar15 = puVar15 + -1;" (assignment_expression "puVar15 = puVar15 + -1" identifier = (binary_expression "puVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar3 = *puVar13;" (assignment_expression "uVar3 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "*puVar13 = puVar8[iVar10];" (assignment_expression "*puVar13 = puVar8[iVar10]" (pointer_expression "*puVar13" * identifier) = (subscript_expression "puVar8[iVar10]" identifier [ identifier ])) ;) (expression_statement "puVar8[iVar10] = *puVar11;" (assignment_expression "puVar8[iVar10] = *puVar11" (subscript_expression "puVar8[iVar10]" identifier [ identifier ]) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "*puVar11 = *puVar15;" (assignment_expression "*puVar11 = *puVar15" (pointer_expression "*puVar11" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar13 = puVar13 + uVar7;" (assignment_expression "puVar13 = puVar13 + uVar7" identifier = (binary_expression "puVar13 + uVar7" identifier + identifier)) ;) (expression_statement "*puVar15 = uVar3;" (assignment_expression "*puVar15 = uVar3" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "puVar11 = puVar11 + -uVar7;" (assignment_expression "puVar11 = puVar11 + -uVar7" identifier = (binary_expression "puVar11 + -uVar7" identifier + (unary_expression "-uVar7" - identifier))) ;) }) while (parenthesized_expression "(iVar10 < iVar12 - iVar10)" ( (binary_expression "iVar10 < iVar12 - iVar10" identifier < (binary_expression "iVar12 - iVar10" identifier - identifier)) )) ;) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" identifier = (binary_expression "local_34 + 1" identifier + number_literal)) ;) (expression_statement "local_38 = local_38 + -1;" (assignment_expression "local_38 = local_38 + -1" identifier = (binary_expression "local_38 + -1" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + -uVar7;" (assignment_expression "puVar8 = puVar8 + -uVar7" identifier = (binary_expression "puVar8 + -uVar7" identifier + (unary_expression "-uVar7" - identifier))) ;) }) while (parenthesized_expression "(local_40 <= iVar12 - local_40)" ( (binary_expression "local_40 <= iVar12 - local_40" identifier <= (binary_expression "iVar12 - local_40" identifier - identifier)) )) ;) })) (expression_statement "uVar14 = puVar6[3];" (assignment_expression "uVar14 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;" (assignment_expression "puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (binary_expression "(int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2" (cast_expression "(int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1)" ( (binary_expression "(uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1" (parenthesized_expression "(uVar7 - ((1 - uVar9) + puVar6[4] * 2))" ( (binary_expression "uVar7 - ((1 - uVar9) + puVar6[4] * 2)" identifier - (parenthesized_expression "((1 - uVar9) + puVar6[4] * 2)" ( (binary_expression "(1 - uVar9) + puVar6[4] * 2" (parenthesized_expression "(1 - uVar9)" ( (binary_expression "1 - uVar9" number_literal - identifier) )) + (binary_expression "puVar6[4] * 2" (subscript_expression "puVar6[4]" identifier [ number_literal ]) * number_literal)) ))) )) + number_literal) ))) / number_literal)) ;) (expression_statement "puVar6[4] = (int)(uVar14 * 2) / 2;" (assignment_expression "puVar6[4] = (int)(uVar14 * 2) / 2" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (binary_expression "(int)(uVar14 * 2) / 2" (cast_expression "(int)(uVar14 * 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 * 2)" ( (binary_expression "uVar14 * 2" identifier * number_literal) ))) / number_literal)) ;) }))) (labeled_statement "LAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);" statement_identifier : (expression_statement "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" * (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" ( (binary_expression "unaff_EBP + 0x1d3e4e" identifier + number_literal) ))))) ;)) (expression_statement "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);" (assignment_expression "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2)" identifier = (call_expression "fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2)" identifier (argument_list "(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2)" ( (binary_expression "local_5c + (double)*(float *)(unaff_EBP + 0x1de206)" identifier + (cast_expression "(double)*(float *)(unaff_EBP + 0x1de206)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1de206)" * (cast_expression "(float *)(unaff_EBP + 0x1de206)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1de206)" ( (binary_expression "unaff_EBP + 0x1de206" identifier + number_literal) )))))) , (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1cb5be);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1cb5be)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1cb5be)" * (cast_expression "(float *)(unaff_EBP + 0x1cb5be)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cb5be)" ( (binary_expression "unaff_EBP + 0x1cb5be" identifier + number_literal) ))))) ;) }))) (expression_statement "local_54 = (double)fVar2;" (assignment_expression "local_54 = (double)fVar2" identifier = (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);" (assignment_expression "dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54)" identifier = (call_expression "fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54)" identifier (argument_list "((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54)" ( (cast_expression "(double)(fVar1 + (float)*(double *)(puVar6 + 0xe))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar1 + (float)*(double *)(puVar6 + 0xe))" ( (binary_expression "fVar1 + (float)*(double *)(puVar6 + 0xe)" identifier + (cast_expression "(float)*(double *)(puVar6 + 0xe)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) )))))) ))) , identifier )))) ;) (expression_statement "*(double *)(puVar6 + 0xe) = dVar18;" (assignment_expression "*(double *)(puVar6 + 0xe) = dVar18" (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) )))) = identifier) ;) })) (labeled_statement "LAB_001144d0:\n      uVar7 = puVar6[1];" statement_identifier : (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;)) (if_statement "if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;" if (parenthesized_expression "((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c))" ( (binary_expression "(local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)" (parenthesized_expression "(local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa))" ( (binary_expression "local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)" identifier <= (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7baa)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7baa)" * (cast_expression "(float *)(unaff_EBP + 0x1e7baa)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7baa)" ( (binary_expression "unaff_EBP + 0x1e7baa" identifier + number_literal) )))))) )) || (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)" ( (binary_expression "(double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c" (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7bae)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7bae)" * (cast_expression "(float *)(unaff_EBP + 0x1e7bae)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7bae)" ( (binary_expression "unaff_EBP + 0x1e7bae" identifier + number_literal) ))))) < identifier) ))) )) (goto_statement "goto LAB_00114400;" goto statement_identifier ;)) (expression_statement "uVar9 = puVar6[2];" (assignment_expression "uVar9 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar6[5];" (assignment_expression "uVar14 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = uVar9 * uVar7 + -1;" (assignment_expression "iVar12 = uVar9 * uVar7 + -1" identifier = (binary_expression "uVar9 * uVar7 + -1" (binary_expression "uVar9 * uVar7" identifier * identifier) + number_literal)) ;) (if_statement "if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (compound_statement "{\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);" do (compound_statement "{\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        }" { (expression_statement "uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);" (assignment_expression "uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8)" identifier = (pointer_expression "*(undefined8 *)(uVar14 + iVar10 * 8)" * (cast_expression "(undefined8 *)(uVar14 + iVar10 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + iVar10 * 8)" ( (binary_expression "uVar14 + iVar10 * 8" identifier + (binary_expression "iVar10 * 8" identifier * number_literal)) ))))) ;) (expression_statement "*(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);" (assignment_expression "*(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8)" (pointer_expression "*(undefined8 *)(uVar14 + iVar10 * 8)" * (cast_expression "(undefined8 *)(uVar14 + iVar10 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + iVar10 * 8)" ( (binary_expression "uVar14 + iVar10 * 8" identifier + (binary_expression "iVar10 * 8" identifier * number_literal)) )))) = (pointer_expression "*(undefined8 *)(uVar14 + iVar12 * 8)" * (cast_expression "(undefined8 *)(uVar14 + iVar12 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + iVar12 * 8)" ( (binary_expression "uVar14 + iVar12 * 8" identifier + (binary_expression "iVar12 * 8" identifier * number_literal)) ))))) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;" (assignment_expression "*(undefined8 *)(uVar14 + iVar12 * 8) = uVar3" (pointer_expression "*(undefined8 *)(uVar14 + iVar12 * 8)" * (cast_expression "(undefined8 *)(uVar14 + iVar12 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + iVar12 * 8)" ( (binary_expression "uVar14 + iVar12 * 8" identifier + (binary_expression "iVar12 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 < iVar12)" ( (binary_expression "iVar10 < iVar12" identifier < identifier) )) ;) })) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" * (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" ( (binary_expression "unaff_EBP + 0x1d3e4e" identifier + number_literal) ))))) ;) (expression_statement "puVar6[3] = (uVar7 - puVar6[3]) - 1;" (assignment_expression "puVar6[3] = (uVar7 - puVar6[3]) - 1" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (binary_expression "(uVar7 - puVar6[3]) - 1" (parenthesized_expression "(uVar7 - puVar6[3])" ( (binary_expression "uVar7 - puVar6[3]" identifier - (subscript_expression "puVar6[3]" identifier [ number_literal ])) )) - number_literal)) ;) (expression_statement "puVar6[4] = (uVar9 - puVar6[4]) - 1;" (assignment_expression "puVar6[4] = (uVar9 - puVar6[4]) - 1" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (binary_expression "(uVar9 - puVar6[4]) - 1" (parenthesized_expression "(uVar9 - puVar6[4])" ( (binary_expression "uVar9 - puVar6[4]" identifier - (subscript_expression "puVar6[4]" identifier [ number_literal ])) )) - number_literal)) ;) (expression_statement "fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);" (assignment_expression "fVar2 = *(float *)(unaff_EBP + 0x1cb5c6)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1cb5c6)" * (cast_expression "(float *)(unaff_EBP + 0x1cb5c6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cb5c6)" ( (binary_expression "unaff_EBP + 0x1cb5c6" identifier + number_literal) ))))) ;) (expression_statement "fmod(local_5c - (double)fVar2,(double)fVar1);" (call_expression "fmod(local_5c - (double)fVar2,(double)fVar1)" identifier (argument_list "(local_5c - (double)fVar2,(double)fVar1)" ( (binary_expression "local_5c - (double)fVar2" identifier - (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier)) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (expression_statement "dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);" (assignment_expression "dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1)" identifier = (call_expression "fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1)" identifier (argument_list "((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1)" ( (binary_expression "(double)fVar2 + *(double *)(puVar6 + 0xe)" (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier) + (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) ))))) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "*(double *)(puVar6 + 0xe) = dVar18;" (assignment_expression "*(double *)(puVar6 + 0xe) = dVar18" (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (if_statement "if (puVar5[1] == uVar7) goto LAB_00114598;" if (parenthesized_expression "(puVar5[1] == uVar7)" ( (binary_expression "puVar5[1] == uVar7" (subscript_expression "puVar5[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00114598;" goto statement_identifier ;)) }))) (do_statement "do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);" do (compound_statement "{\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    }" { (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" identifier = identifier) ;) (expression_statement "puVar16 = (uint *)puVar17[0x10];" (assignment_expression "puVar16 = (uint *)puVar17[0x10]" identifier = (cast_expression "(uint *)puVar17[0x10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar17[0x10]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar16 != (uint *)0x0)" ( (binary_expression "puVar16 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar17[0x10] = (uint)puVar6;" (assignment_expression "puVar17[0x10] = (uint)puVar6" (subscript_expression "puVar17[0x10]" identifier [ number_literal ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar16 = puVar6;" (assignment_expression "puVar16 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid __regparm1 ExpandRotateKernelInfo(KernelInfo *kernel,double angle)\n\n{\n  float fVar1;\n  MagickRealType MVar2;\n  size_t sVar3;\n  ssize_t sVar4;\n  float fVar5;\n  KernelInfo *last;\n  KernelInfo *kernel_00;\n  size_t sVar6;\n  MagickRealType *pMVar7;\n  int iVar8;\n  MagickRealType *pMVar9;\n  int iVar10;\n  MagickRealType *pMVar11;\n  int iVar12;\n  MagickRealType *pMVar13;\n  int iVar14;\n  _KernelInfo *kernel_01;\n  KernelInfo *pKVar15;\n  double dVar16;\n  double dVar17;\n  double local_5c;\n  double local_54;\n  int local_40;\n  MagickRealType *local_3c;\n  MagickRealType *local_38;\n  MagickRealType *local_34;\n  \n  kernel_01 = kernel;\n  do {\n    kernel_00 = CloneKernelInfo(kernel_01);\n    if (kernel_00 == (KernelInfo *)0x0) {\n      return;\n    }\n    if (kernel_00->next != (KernelInfo *)0x0) {\n      RotateKernelInfo(kernel_00->next,angle);\n    }\n    dVar17 = (double)DAT_002e8154;\n    local_5c = fmod(angle,(double)DAT_002e8154);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + dVar17;\n    }\n    if (((double)DAT_002fbea8 < local_5c) || (local_5c <= (double)DAT_002fbeac)) {\nLAB_001143e8:\n      sVar6 = kernel_00->width;\nLAB_00114400:\n      if (kernel->width == sVar6) {\nLAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      switch(kernel_00->type) {\n      case GaussianKernel:\n      case DoGKernel:\n      case LoGKernel:\n      case LaplacianKernel:\n      case DiamondKernel:\n      case SquareKernel:\n      case DiskKernel:\n      case PlusKernel:\n      case CrossKernel:\n      case PeaksKernel:\n      case ChebyshevKernel:\n      case ManhattanKernel:\n      case EuclideanKernel:\n        goto LAB_001143e8;\n      case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }\n      }\n      dVar17 = (double)DAT_002df8c4;\n      dVar16 = fmod(local_5c,(double)DAT_002df8c4);\n      if (((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)) {\n        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }\n      }\n      dVar17 = (double)DAT_002df8cc;\n      dVar16 = fmod(local_5c,(double)DAT_002df8cc);\n      if (((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)) {\n        sVar6 = kernel_00->width;\n        sVar3 = kernel_00->height;\n        if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }\n        local_54 = (double)fVar1;\n        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);\n        kernel_00->angle = dVar17;\n      }\nLAB_001144d0:\n      sVar6 = kernel_00->width;\n      if ((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))\n      goto LAB_00114400;\n      sVar3 = kernel_00->height;\n      pMVar7 = kernel_00->values;\n      iVar10 = sVar3 * sVar6 + -1;\n      if (0 < iVar10) {\n        iVar8 = 0;\n        do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);\n      }\n      fVar1 = DAT_002e8154;\n      kernel_00->x = (sVar6 - kernel_00->x) + -1;\n      kernel_00->y = (sVar3 - kernel_00->y) + -1;\n      dVar17 = (double)DAT_002df8cc;\n      fmod(local_5c - dVar17,(double)fVar1);\n      dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1);\n      kernel_00->angle = dVar17;\n      sVar6 = kernel_00->width;\n      if (kernel->width == sVar6) goto LAB_00114598;\n    }\n    do {\n      pKVar15 = kernel_01;\n      kernel_01 = pKVar15->next;\n    } while (kernel_01 != (_KernelInfo *)0x0);\n    pKVar15->next = kernel_00;\n    kernel_01 = kernel_00;\n  } while( true );\n}\n\n" comment comment (function_definition "void __regparm1 ExpandRotateKernelInfo(KernelInfo *kernel,double angle)\n\n{\n  float fVar1;\n  MagickRealType MVar2;\n  size_t sVar3;\n  ssize_t sVar4;\n  float fVar5;\n  KernelInfo *last;\n  KernelInfo *kernel_00;\n  size_t sVar6;\n  MagickRealType *pMVar7;\n  int iVar8;\n  MagickRealType *pMVar9;\n  int iVar10;\n  MagickRealType *pMVar11;\n  int iVar12;\n  MagickRealType *pMVar13;\n  int iVar14;\n  _KernelInfo *kernel_01;\n  KernelInfo *pKVar15;\n  double dVar16;\n  double dVar17;\n  double local_5c;\n  double local_54;\n  int local_40;\n  MagickRealType *local_3c;\n  MagickRealType *local_38;\n  MagickRealType *local_34;\n  \n  kernel_01 = kernel;\n  do {\n    kernel_00 = CloneKernelInfo(kernel_01);\n    if (kernel_00 == (KernelInfo *)0x0) {\n      return;\n    }\n    if (kernel_00->next != (KernelInfo *)0x0) {\n      RotateKernelInfo(kernel_00->next,angle);\n    }\n    dVar17 = (double)DAT_002e8154;\n    local_5c = fmod(angle,(double)DAT_002e8154);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + dVar17;\n    }\n    if (((double)DAT_002fbea8 < local_5c) || (local_5c <= (double)DAT_002fbeac)) {\nLAB_001143e8:\n      sVar6 = kernel_00->width;\nLAB_00114400:\n      if (kernel->width == sVar6) {\nLAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      switch(kernel_00->type) {\n      case GaussianKernel:\n      case DoGKernel:\n      case LoGKernel:\n      case LaplacianKernel:\n      case DiamondKernel:\n      case SquareKernel:\n      case DiskKernel:\n      case PlusKernel:\n      case CrossKernel:\n      case PeaksKernel:\n      case ChebyshevKernel:\n      case ManhattanKernel:\n      case EuclideanKernel:\n        goto LAB_001143e8;\n      case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }\n      }\n      dVar17 = (double)DAT_002df8c4;\n      dVar16 = fmod(local_5c,(double)DAT_002df8c4);\n      if (((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)) {\n        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }\n      }\n      dVar17 = (double)DAT_002df8cc;\n      dVar16 = fmod(local_5c,(double)DAT_002df8cc);\n      if (((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)) {\n        sVar6 = kernel_00->width;\n        sVar3 = kernel_00->height;\n        if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }\n        local_54 = (double)fVar1;\n        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);\n        kernel_00->angle = dVar17;\n      }\nLAB_001144d0:\n      sVar6 = kernel_00->width;\n      if ((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))\n      goto LAB_00114400;\n      sVar3 = kernel_00->height;\n      pMVar7 = kernel_00->values;\n      iVar10 = sVar3 * sVar6 + -1;\n      if (0 < iVar10) {\n        iVar8 = 0;\n        do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);\n      }\n      fVar1 = DAT_002e8154;\n      kernel_00->x = (sVar6 - kernel_00->x) + -1;\n      kernel_00->y = (sVar3 - kernel_00->y) + -1;\n      dVar17 = (double)DAT_002df8cc;\n      fmod(local_5c - dVar17,(double)fVar1);\n      dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1);\n      kernel_00->angle = dVar17;\n      sVar6 = kernel_00->width;\n      if (kernel->width == sVar6) goto LAB_00114598;\n    }\n    do {\n      pKVar15 = kernel_01;\n      kernel_01 = pKVar15->next;\n    } while (kernel_01 != (_KernelInfo *)0x0);\n    pKVar15->next = kernel_00;\n    kernel_01 = kernel_00;\n  } while( true );\n}" primitive_type (ERROR "__regparm1" identifier) (function_declarator "ExpandRotateKernelInfo(KernelInfo *kernel,double angle)" identifier (parameter_list "(KernelInfo *kernel,double angle)" ( (parameter_declaration "KernelInfo *kernel" type_identifier (pointer_declarator "*kernel" * identifier)) , (parameter_declaration "double angle" primitive_type identifier) ))) (compound_statement "{\n  float fVar1;\n  MagickRealType MVar2;\n  size_t sVar3;\n  ssize_t sVar4;\n  float fVar5;\n  KernelInfo *last;\n  KernelInfo *kernel_00;\n  size_t sVar6;\n  MagickRealType *pMVar7;\n  int iVar8;\n  MagickRealType *pMVar9;\n  int iVar10;\n  MagickRealType *pMVar11;\n  int iVar12;\n  MagickRealType *pMVar13;\n  int iVar14;\n  _KernelInfo *kernel_01;\n  KernelInfo *pKVar15;\n  double dVar16;\n  double dVar17;\n  double local_5c;\n  double local_54;\n  int local_40;\n  MagickRealType *local_3c;\n  MagickRealType *local_38;\n  MagickRealType *local_34;\n  \n  kernel_01 = kernel;\n  do {\n    kernel_00 = CloneKernelInfo(kernel_01);\n    if (kernel_00 == (KernelInfo *)0x0) {\n      return;\n    }\n    if (kernel_00->next != (KernelInfo *)0x0) {\n      RotateKernelInfo(kernel_00->next,angle);\n    }\n    dVar17 = (double)DAT_002e8154;\n    local_5c = fmod(angle,(double)DAT_002e8154);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + dVar17;\n    }\n    if (((double)DAT_002fbea8 < local_5c) || (local_5c <= (double)DAT_002fbeac)) {\nLAB_001143e8:\n      sVar6 = kernel_00->width;\nLAB_00114400:\n      if (kernel->width == sVar6) {\nLAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      switch(kernel_00->type) {\n      case GaussianKernel:\n      case DoGKernel:\n      case LoGKernel:\n      case LaplacianKernel:\n      case DiamondKernel:\n      case SquareKernel:\n      case DiskKernel:\n      case PlusKernel:\n      case CrossKernel:\n      case PeaksKernel:\n      case ChebyshevKernel:\n      case ManhattanKernel:\n      case EuclideanKernel:\n        goto LAB_001143e8;\n      case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }\n      }\n      dVar17 = (double)DAT_002df8c4;\n      dVar16 = fmod(local_5c,(double)DAT_002df8c4);\n      if (((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)) {\n        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }\n      }\n      dVar17 = (double)DAT_002df8cc;\n      dVar16 = fmod(local_5c,(double)DAT_002df8cc);\n      if (((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)) {\n        sVar6 = kernel_00->width;\n        sVar3 = kernel_00->height;\n        if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }\n        local_54 = (double)fVar1;\n        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);\n        kernel_00->angle = dVar17;\n      }\nLAB_001144d0:\n      sVar6 = kernel_00->width;\n      if ((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))\n      goto LAB_00114400;\n      sVar3 = kernel_00->height;\n      pMVar7 = kernel_00->values;\n      iVar10 = sVar3 * sVar6 + -1;\n      if (0 < iVar10) {\n        iVar8 = 0;\n        do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);\n      }\n      fVar1 = DAT_002e8154;\n      kernel_00->x = (sVar6 - kernel_00->x) + -1;\n      kernel_00->y = (sVar3 - kernel_00->y) + -1;\n      dVar17 = (double)DAT_002df8cc;\n      fmod(local_5c - dVar17,(double)fVar1);\n      dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1);\n      kernel_00->angle = dVar17;\n      sVar6 = kernel_00->width;\n      if (kernel->width == sVar6) goto LAB_00114598;\n    }\n    do {\n      pKVar15 = kernel_01;\n      kernel_01 = pKVar15->next;\n    } while (kernel_01 != (_KernelInfo *)0x0);\n    pKVar15->next = kernel_00;\n    kernel_01 = kernel_00;\n  } while( true );\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "MagickRealType MVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "ssize_t sVar4;" primitive_type identifier ;) (declaration "float fVar5;" primitive_type identifier ;) (declaration "KernelInfo *last;" type_identifier (pointer_declarator "*last" * identifier) ;) (declaration "KernelInfo *kernel_00;" type_identifier (pointer_declarator "*kernel_00" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "MagickRealType *pMVar7;" type_identifier (pointer_declarator "*pMVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "MagickRealType *pMVar9;" type_identifier (pointer_declarator "*pMVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "MagickRealType *pMVar11;" type_identifier (pointer_declarator "*pMVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "MagickRealType *pMVar13;" type_identifier (pointer_declarator "*pMVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "_KernelInfo *kernel_01;" type_identifier (pointer_declarator "*kernel_01" * identifier) ;) (declaration "KernelInfo *pKVar15;" type_identifier (pointer_declarator "*pKVar15" * identifier) ;) (declaration "double dVar16;" primitive_type identifier ;) (declaration "double dVar17;" primitive_type identifier ;) (declaration "double local_5c;" primitive_type identifier ;) (declaration "double local_54;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "MagickRealType *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "MagickRealType *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "MagickRealType *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (expression_statement "kernel_01 = kernel;" (assignment_expression "kernel_01 = kernel" identifier = identifier) ;) (do_statement "do {\n    kernel_00 = CloneKernelInfo(kernel_01);\n    if (kernel_00 == (KernelInfo *)0x0) {\n      return;\n    }\n    if (kernel_00->next != (KernelInfo *)0x0) {\n      RotateKernelInfo(kernel_00->next,angle);\n    }\n    dVar17 = (double)DAT_002e8154;\n    local_5c = fmod(angle,(double)DAT_002e8154);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + dVar17;\n    }\n    if (((double)DAT_002fbea8 < local_5c) || (local_5c <= (double)DAT_002fbeac)) {\nLAB_001143e8:\n      sVar6 = kernel_00->width;\nLAB_00114400:\n      if (kernel->width == sVar6) {\nLAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      switch(kernel_00->type) {\n      case GaussianKernel:\n      case DoGKernel:\n      case LoGKernel:\n      case LaplacianKernel:\n      case DiamondKernel:\n      case SquareKernel:\n      case DiskKernel:\n      case PlusKernel:\n      case CrossKernel:\n      case PeaksKernel:\n      case ChebyshevKernel:\n      case ManhattanKernel:\n      case EuclideanKernel:\n        goto LAB_001143e8;\n      case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }\n      }\n      dVar17 = (double)DAT_002df8c4;\n      dVar16 = fmod(local_5c,(double)DAT_002df8c4);\n      if (((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)) {\n        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }\n      }\n      dVar17 = (double)DAT_002df8cc;\n      dVar16 = fmod(local_5c,(double)DAT_002df8cc);\n      if (((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)) {\n        sVar6 = kernel_00->width;\n        sVar3 = kernel_00->height;\n        if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }\n        local_54 = (double)fVar1;\n        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);\n        kernel_00->angle = dVar17;\n      }\nLAB_001144d0:\n      sVar6 = kernel_00->width;\n      if ((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))\n      goto LAB_00114400;\n      sVar3 = kernel_00->height;\n      pMVar7 = kernel_00->values;\n      iVar10 = sVar3 * sVar6 + -1;\n      if (0 < iVar10) {\n        iVar8 = 0;\n        do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);\n      }\n      fVar1 = DAT_002e8154;\n      kernel_00->x = (sVar6 - kernel_00->x) + -1;\n      kernel_00->y = (sVar3 - kernel_00->y) + -1;\n      dVar17 = (double)DAT_002df8cc;\n      fmod(local_5c - dVar17,(double)fVar1);\n      dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1);\n      kernel_00->angle = dVar17;\n      sVar6 = kernel_00->width;\n      if (kernel->width == sVar6) goto LAB_00114598;\n    }\n    do {\n      pKVar15 = kernel_01;\n      kernel_01 = pKVar15->next;\n    } while (kernel_01 != (_KernelInfo *)0x0);\n    pKVar15->next = kernel_00;\n    kernel_01 = kernel_00;\n  } while( true );" do (compound_statement "{\n    kernel_00 = CloneKernelInfo(kernel_01);\n    if (kernel_00 == (KernelInfo *)0x0) {\n      return;\n    }\n    if (kernel_00->next != (KernelInfo *)0x0) {\n      RotateKernelInfo(kernel_00->next,angle);\n    }\n    dVar17 = (double)DAT_002e8154;\n    local_5c = fmod(angle,(double)DAT_002e8154);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + dVar17;\n    }\n    if (((double)DAT_002fbea8 < local_5c) || (local_5c <= (double)DAT_002fbeac)) {\nLAB_001143e8:\n      sVar6 = kernel_00->width;\nLAB_00114400:\n      if (kernel->width == sVar6) {\nLAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      switch(kernel_00->type) {\n      case GaussianKernel:\n      case DoGKernel:\n      case LoGKernel:\n      case LaplacianKernel:\n      case DiamondKernel:\n      case SquareKernel:\n      case DiskKernel:\n      case PlusKernel:\n      case CrossKernel:\n      case PeaksKernel:\n      case ChebyshevKernel:\n      case ManhattanKernel:\n      case EuclideanKernel:\n        goto LAB_001143e8;\n      case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }\n      }\n      dVar17 = (double)DAT_002df8c4;\n      dVar16 = fmod(local_5c,(double)DAT_002df8c4);\n      if (((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)) {\n        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }\n      }\n      dVar17 = (double)DAT_002df8cc;\n      dVar16 = fmod(local_5c,(double)DAT_002df8cc);\n      if (((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)) {\n        sVar6 = kernel_00->width;\n        sVar3 = kernel_00->height;\n        if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }\n        local_54 = (double)fVar1;\n        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);\n        kernel_00->angle = dVar17;\n      }\nLAB_001144d0:\n      sVar6 = kernel_00->width;\n      if ((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))\n      goto LAB_00114400;\n      sVar3 = kernel_00->height;\n      pMVar7 = kernel_00->values;\n      iVar10 = sVar3 * sVar6 + -1;\n      if (0 < iVar10) {\n        iVar8 = 0;\n        do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);\n      }\n      fVar1 = DAT_002e8154;\n      kernel_00->x = (sVar6 - kernel_00->x) + -1;\n      kernel_00->y = (sVar3 - kernel_00->y) + -1;\n      dVar17 = (double)DAT_002df8cc;\n      fmod(local_5c - dVar17,(double)fVar1);\n      dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1);\n      kernel_00->angle = dVar17;\n      sVar6 = kernel_00->width;\n      if (kernel->width == sVar6) goto LAB_00114598;\n    }\n    do {\n      pKVar15 = kernel_01;\n      kernel_01 = pKVar15->next;\n    } while (kernel_01 != (_KernelInfo *)0x0);\n    pKVar15->next = kernel_00;\n    kernel_01 = kernel_00;\n  }" { (expression_statement "kernel_00 = CloneKernelInfo(kernel_01);" (assignment_expression "kernel_00 = CloneKernelInfo(kernel_01)" identifier = (call_expression "CloneKernelInfo(kernel_01)" identifier (argument_list "(kernel_01)" ( identifier )))) ;) (if_statement "if (kernel_00 == (KernelInfo *)0x0) {\n      return;\n    }" if (parenthesized_expression "(kernel_00 == (KernelInfo *)0x0)" ( (binary_expression "kernel_00 == (KernelInfo *)0x0" identifier == (cast_expression "(KernelInfo *)0x0" ( (type_descriptor "KernelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (kernel_00->next != (KernelInfo *)0x0) {\n      RotateKernelInfo(kernel_00->next,angle);\n    }" if (parenthesized_expression "(kernel_00->next != (KernelInfo *)0x0)" ( (binary_expression "kernel_00->next != (KernelInfo *)0x0" (field_expression "kernel_00->next" identifier -> field_identifier) != (cast_expression "(KernelInfo *)0x0" ( (type_descriptor "KernelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      RotateKernelInfo(kernel_00->next,angle);\n    }" { (expression_statement "RotateKernelInfo(kernel_00->next,angle);" (call_expression "RotateKernelInfo(kernel_00->next,angle)" identifier (argument_list "(kernel_00->next,angle)" ( (field_expression "kernel_00->next" identifier -> field_identifier) , identifier ))) ;) })) (expression_statement "dVar17 = (double)DAT_002e8154;" (assignment_expression "dVar17 = (double)DAT_002e8154" identifier = (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_5c = fmod(angle,(double)DAT_002e8154);" (assignment_expression "local_5c = fmod(angle,(double)DAT_002e8154)" identifier = (call_expression "fmod(angle,(double)DAT_002e8154)" identifier (argument_list "(angle,(double)DAT_002e8154)" ( identifier , (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (local_5c < 0.0) {\n      local_5c = local_5c + dVar17;\n    }" if (parenthesized_expression "(local_5c < 0.0)" ( (binary_expression "local_5c < 0.0" identifier < number_literal) )) (compound_statement "{\n      local_5c = local_5c + dVar17;\n    }" { (expression_statement "local_5c = local_5c + dVar17;" (assignment_expression "local_5c = local_5c + dVar17" identifier = (binary_expression "local_5c + dVar17" identifier + identifier)) ;) })) (if_statement "if (((double)DAT_002fbea8 < local_5c) || (local_5c <= (double)DAT_002fbeac)) {\nLAB_001143e8:\n      sVar6 = kernel_00->width;\nLAB_00114400:\n      if (kernel->width == sVar6) {\nLAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      switch(kernel_00->type) {\n      case GaussianKernel:\n      case DoGKernel:\n      case LoGKernel:\n      case LaplacianKernel:\n      case DiamondKernel:\n      case SquareKernel:\n      case DiskKernel:\n      case PlusKernel:\n      case CrossKernel:\n      case PeaksKernel:\n      case ChebyshevKernel:\n      case ManhattanKernel:\n      case EuclideanKernel:\n        goto LAB_001143e8;\n      case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }\n      }\n      dVar17 = (double)DAT_002df8c4;\n      dVar16 = fmod(local_5c,(double)DAT_002df8c4);\n      if (((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)) {\n        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }\n      }\n      dVar17 = (double)DAT_002df8cc;\n      dVar16 = fmod(local_5c,(double)DAT_002df8cc);\n      if (((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)) {\n        sVar6 = kernel_00->width;\n        sVar3 = kernel_00->height;\n        if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }\n        local_54 = (double)fVar1;\n        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);\n        kernel_00->angle = dVar17;\n      }\nLAB_001144d0:\n      sVar6 = kernel_00->width;\n      if ((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))\n      goto LAB_00114400;\n      sVar3 = kernel_00->height;\n      pMVar7 = kernel_00->values;\n      iVar10 = sVar3 * sVar6 + -1;\n      if (0 < iVar10) {\n        iVar8 = 0;\n        do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);\n      }\n      fVar1 = DAT_002e8154;\n      kernel_00->x = (sVar6 - kernel_00->x) + -1;\n      kernel_00->y = (sVar3 - kernel_00->y) + -1;\n      dVar17 = (double)DAT_002df8cc;\n      fmod(local_5c - dVar17,(double)fVar1);\n      dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1);\n      kernel_00->angle = dVar17;\n      sVar6 = kernel_00->width;\n      if (kernel->width == sVar6) goto LAB_00114598;\n    }" if (parenthesized_expression "(((double)DAT_002fbea8 < local_5c) || (local_5c <= (double)DAT_002fbeac))" ( (binary_expression "((double)DAT_002fbea8 < local_5c) || (local_5c <= (double)DAT_002fbeac)" (parenthesized_expression "((double)DAT_002fbea8 < local_5c)" ( (binary_expression "(double)DAT_002fbea8 < local_5c" (cast_expression "(double)DAT_002fbea8" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) || (parenthesized_expression "(local_5c <= (double)DAT_002fbeac)" ( (binary_expression "local_5c <= (double)DAT_002fbeac" identifier <= (cast_expression "(double)DAT_002fbeac" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\nLAB_001143e8:\n      sVar6 = kernel_00->width;\nLAB_00114400:\n      if (kernel->width == sVar6) {\nLAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }" { (labeled_statement "LAB_001143e8:\n      sVar6 = kernel_00->width;" statement_identifier : (expression_statement "sVar6 = kernel_00->width;" (assignment_expression "sVar6 = kernel_00->width" identifier = (field_expression "kernel_00->width" identifier -> field_identifier)) ;)) (labeled_statement "LAB_00114400:\n      if (kernel->width == sVar6) {\nLAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }\n      }" statement_identifier : (if_statement "if (kernel->width == sVar6) {\nLAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }\n      }" if (parenthesized_expression "(kernel->width == sVar6)" ( (binary_expression "kernel->width == sVar6" (field_expression "kernel->width" identifier -> field_identifier) == identifier) )) (compound_statement "{\nLAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }\n      }" { (labeled_statement "LAB_00114598:\n        if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }" statement_identifier : (if_statement "if (((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)) {\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }" if (parenthesized_expression "(((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y))" ( (binary_expression "((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)) &&\n           (kernel->y == kernel_00->y)" (parenthesized_expression "((kernel->height == kernel_00->height) && (kernel->x == kernel_00->x))" ( (binary_expression "(kernel->height == kernel_00->height) && (kernel->x == kernel_00->x)" (parenthesized_expression "(kernel->height == kernel_00->height)" ( (binary_expression "kernel->height == kernel_00->height" (field_expression "kernel->height" identifier -> field_identifier) == (field_expression "kernel_00->height" identifier -> field_identifier)) )) && (parenthesized_expression "(kernel->x == kernel_00->x)" ( (binary_expression "kernel->x == kernel_00->x" (field_expression "kernel->x" identifier -> field_identifier) == (field_expression "kernel_00->x" identifier -> field_identifier)) ))) )) && (parenthesized_expression "(kernel->y == kernel_00->y)" ( (binary_expression "kernel->y == kernel_00->y" (field_expression "kernel->y" identifier -> field_identifier) == (field_expression "kernel_00->y" identifier -> field_identifier)) ))) )) (compound_statement "{\n          iVar10 = sVar6 * kernel->height;\n          if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }\n          iVar8 = 0;\n          do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );\n        }" { (expression_statement "iVar10 = sVar6 * kernel->height;" (assignment_expression "iVar10 = sVar6 * kernel->height" identifier = (binary_expression "sVar6 * kernel->height" identifier * (field_expression "kernel->height" identifier -> field_identifier))) ;) (if_statement "if (iVar10 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0011462a:\n            DestroyKernelInfo(kernel_00);\n            return;\n          }" { (labeled_statement "LAB_0011462a:\n            DestroyKernelInfo(kernel_00);" statement_identifier : (expression_statement "DestroyKernelInfo(kernel_00);" (call_expression "DestroyKernelInfo(kernel_00)" identifier (argument_list "(kernel_00)" ( identifier ))) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          } while( true );" do (compound_statement "{\n            dVar17 = kernel_00->values[iVar8];\n            if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;\n            if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;\n            iVar8 = iVar8 + 1;\n            if (iVar8 == iVar10) goto LAB_0011462a;\n          }" { (expression_statement "dVar17 = kernel_00->values[iVar8];" (assignment_expression "dVar17 = kernel_00->values[iVar8]" identifier = (subscript_expression "kernel_00->values[iVar8]" (field_expression "kernel_00->values" identifier -> field_identifier) [ identifier ])) ;) (if_statement "if (NAN(kernel->values[iVar8])) {\n              if (!NAN(dVar17)) break;\n            }\n            else if (NAN(dVar17)) break;" if (parenthesized_expression "(NAN(kernel->values[iVar8]))" ( (call_expression "NAN(kernel->values[iVar8])" identifier (argument_list "(kernel->values[iVar8])" ( (subscript_expression "kernel->values[iVar8]" (field_expression "kernel->values" identifier -> field_identifier) [ identifier ]) ))) )) (compound_statement "{\n              if (!NAN(dVar17)) break;\n            }" { (if_statement "if (!NAN(dVar17)) break;" if (parenthesized_expression "(!NAN(dVar17))" ( (unary_expression "!NAN(dVar17)" ! (call_expression "NAN(dVar17)" identifier (argument_list "(dVar17)" ( identifier )))) )) (break_statement "break;" break ;)) }) (else_clause "else if (NAN(dVar17)) break;" else (if_statement "if (NAN(dVar17)) break;" if (parenthesized_expression "(NAN(dVar17))" ( (call_expression "NAN(dVar17)" identifier (argument_list "(dVar17)" ( identifier ))) )) (break_statement "break;" break ;)))) (if_statement "if (DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)) break;" if (parenthesized_expression "(DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17))" ( (binary_expression "DAT_002df2d0 <= ABS(kernel->values[iVar8] - dVar17)" identifier <= (call_expression "ABS(kernel->values[iVar8] - dVar17)" identifier (argument_list "(kernel->values[iVar8] - dVar17)" ( (binary_expression "kernel->values[iVar8] - dVar17" (subscript_expression "kernel->values[iVar8]" (field_expression "kernel->values" identifier -> field_identifier) [ identifier ]) - identifier) )))) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (if_statement "if (iVar8 == iVar10) goto LAB_0011462a;" if (parenthesized_expression "(iVar8 == iVar10)" ( (binary_expression "iVar8 == iVar10" identifier == identifier) )) (goto_statement "goto LAB_0011462a;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) }))) }) (else_clause "else {\n      switch(kernel_00->type) {\n      case GaussianKernel:\n      case DoGKernel:\n      case LoGKernel:\n      case LaplacianKernel:\n      case DiamondKernel:\n      case SquareKernel:\n      case DiskKernel:\n      case PlusKernel:\n      case CrossKernel:\n      case PeaksKernel:\n      case ChebyshevKernel:\n      case ManhattanKernel:\n      case EuclideanKernel:\n        goto LAB_001143e8;\n      case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }\n      }\n      dVar17 = (double)DAT_002df8c4;\n      dVar16 = fmod(local_5c,(double)DAT_002df8c4);\n      if (((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)) {\n        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }\n      }\n      dVar17 = (double)DAT_002df8cc;\n      dVar16 = fmod(local_5c,(double)DAT_002df8cc);\n      if (((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)) {\n        sVar6 = kernel_00->width;\n        sVar3 = kernel_00->height;\n        if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }\n        local_54 = (double)fVar1;\n        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);\n        kernel_00->angle = dVar17;\n      }\nLAB_001144d0:\n      sVar6 = kernel_00->width;\n      if ((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))\n      goto LAB_00114400;\n      sVar3 = kernel_00->height;\n      pMVar7 = kernel_00->values;\n      iVar10 = sVar3 * sVar6 + -1;\n      if (0 < iVar10) {\n        iVar8 = 0;\n        do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);\n      }\n      fVar1 = DAT_002e8154;\n      kernel_00->x = (sVar6 - kernel_00->x) + -1;\n      kernel_00->y = (sVar3 - kernel_00->y) + -1;\n      dVar17 = (double)DAT_002df8cc;\n      fmod(local_5c - dVar17,(double)fVar1);\n      dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1);\n      kernel_00->angle = dVar17;\n      sVar6 = kernel_00->width;\n      if (kernel->width == sVar6) goto LAB_00114598;\n    }" else (compound_statement "{\n      switch(kernel_00->type) {\n      case GaussianKernel:\n      case DoGKernel:\n      case LoGKernel:\n      case LaplacianKernel:\n      case DiamondKernel:\n      case SquareKernel:\n      case DiskKernel:\n      case PlusKernel:\n      case CrossKernel:\n      case PeaksKernel:\n      case ChebyshevKernel:\n      case ManhattanKernel:\n      case EuclideanKernel:\n        goto LAB_001143e8;\n      case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }\n      }\n      dVar17 = (double)DAT_002df8c4;\n      dVar16 = fmod(local_5c,(double)DAT_002df8c4);\n      if (((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)) {\n        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }\n      }\n      dVar17 = (double)DAT_002df8cc;\n      dVar16 = fmod(local_5c,(double)DAT_002df8cc);\n      if (((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)) {\n        sVar6 = kernel_00->width;\n        sVar3 = kernel_00->height;\n        if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }\n        local_54 = (double)fVar1;\n        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);\n        kernel_00->angle = dVar17;\n      }\nLAB_001144d0:\n      sVar6 = kernel_00->width;\n      if ((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))\n      goto LAB_00114400;\n      sVar3 = kernel_00->height;\n      pMVar7 = kernel_00->values;\n      iVar10 = sVar3 * sVar6 + -1;\n      if (0 < iVar10) {\n        iVar8 = 0;\n        do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);\n      }\n      fVar1 = DAT_002e8154;\n      kernel_00->x = (sVar6 - kernel_00->x) + -1;\n      kernel_00->y = (sVar3 - kernel_00->y) + -1;\n      dVar17 = (double)DAT_002df8cc;\n      fmod(local_5c - dVar17,(double)fVar1);\n      dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1);\n      kernel_00->angle = dVar17;\n      sVar6 = kernel_00->width;\n      if (kernel->width == sVar6) goto LAB_00114598;\n    }" { (switch_statement "switch(kernel_00->type) {\n      case GaussianKernel:\n      case DoGKernel:\n      case LoGKernel:\n      case LaplacianKernel:\n      case DiamondKernel:\n      case SquareKernel:\n      case DiskKernel:\n      case PlusKernel:\n      case CrossKernel:\n      case PeaksKernel:\n      case ChebyshevKernel:\n      case ManhattanKernel:\n      case EuclideanKernel:\n        goto LAB_001143e8;\n      case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }\n      }" switch (parenthesized_expression "(kernel_00->type)" ( (field_expression "kernel_00->type" identifier -> field_identifier) )) (compound_statement "{\n      case GaussianKernel:\n      case DoGKernel:\n      case LoGKernel:\n      case LaplacianKernel:\n      case DiamondKernel:\n      case SquareKernel:\n      case DiskKernel:\n      case PlusKernel:\n      case CrossKernel:\n      case PeaksKernel:\n      case ChebyshevKernel:\n      case ManhattanKernel:\n      case EuclideanKernel:\n        goto LAB_001143e8;\n      case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }\n      }" { (case_statement "case GaussianKernel:" case identifier :) (case_statement "case DoGKernel:" case identifier :) (case_statement "case LoGKernel:" case identifier :) (case_statement "case LaplacianKernel:" case identifier :) (case_statement "case DiamondKernel:" case identifier :) (case_statement "case SquareKernel:" case identifier :) (case_statement "case DiskKernel:" case identifier :) (case_statement "case PlusKernel:" case identifier :) (case_statement "case CrossKernel:" case identifier :) (case_statement "case PeaksKernel:" case identifier :) (case_statement "case ChebyshevKernel:" case identifier :) (case_statement "case ManhattanKernel:" case identifier :) (case_statement "case EuclideanKernel:\n        goto LAB_001143e8;" case identifier : (goto_statement "goto LAB_001143e8;" goto statement_identifier ;)) (case_statement "case BlurKernel:\n        if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;\n        if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }" case identifier : (if_statement "if (((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))\n        goto LAB_001143e8;" if (parenthesized_expression "(((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4))" ( (binary_expression "((double)DAT_002fbeb0 < local_5c) && (local_5c <= (double)DAT_002fbeb4)" (parenthesized_expression "((double)DAT_002fbeb0 < local_5c)" ( (binary_expression "(double)DAT_002fbeb0 < local_5c" (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(local_5c <= (double)DAT_002fbeb4)" ( (binary_expression "local_5c <= (double)DAT_002fbeb4" identifier <= (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_001143e8;" goto statement_identifier ;)) (if_statement "if (((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)) {\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }" if (parenthesized_expression "(((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8))" ( (binary_expression "((double)DAT_002fbeb4 < local_5c) && (local_5c <= (double)DAT_002fbeb8)" (parenthesized_expression "((double)DAT_002fbeb4 < local_5c)" ( (binary_expression "(double)DAT_002fbeb4 < local_5c" (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(local_5c <= (double)DAT_002fbeb8)" ( (binary_expression "local_5c <= (double)DAT_002fbeb8" identifier <= (cast_expression "(double)DAT_002fbeb8" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          local_5c = local_5c - (double)DAT_002df8cc;\n        }" { (expression_statement "local_5c = local_5c - (double)DAT_002df8cc;" (assignment_expression "local_5c = local_5c - (double)DAT_002df8cc" identifier = (binary_expression "local_5c - (double)DAT_002df8cc" identifier - (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }))) })) (expression_statement "dVar17 = (double)DAT_002df8c4;" (assignment_expression "dVar17 = (double)DAT_002df8c4" identifier = (cast_expression "(double)DAT_002df8c4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar16 = fmod(local_5c,(double)DAT_002df8c4);" (assignment_expression "dVar16 = fmod(local_5c,(double)DAT_002df8c4)" identifier = (call_expression "fmod(local_5c,(double)DAT_002df8c4)" identifier (argument_list "(local_5c,(double)DAT_002df8c4)" ( identifier , (cast_expression "(double)DAT_002df8c4" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)) {\n        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }\n      }" if (parenthesized_expression "(((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc))" ( (binary_expression "((double)DAT_002fbeac < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)" (parenthesized_expression "((double)DAT_002fbeac < dVar16)" ( (binary_expression "(double)DAT_002fbeac < dVar16" (cast_expression "(double)DAT_002fbeac" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc)" ( (comma_expression "dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbebc" (assignment_expression "dVar17 = fmod(local_5c,dVar17)" identifier = (call_expression "fmod(local_5c,dVar17)" identifier (argument_list "(local_5c,dVar17)" ( identifier , identifier )))) , (binary_expression "dVar17 <= (double)DAT_002fbebc" identifier <= (cast_expression "(double)DAT_002fbebc" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n        if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }\n      }" { (if_statement "if ((kernel_00->width == 3) && (kernel_00->height == 3)) {\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }\n        else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }" if (parenthesized_expression "((kernel_00->width == 3) && (kernel_00->height == 3))" ( (binary_expression "(kernel_00->width == 3) && (kernel_00->height == 3)" (parenthesized_expression "(kernel_00->width == 3)" ( (binary_expression "kernel_00->width == 3" (field_expression "kernel_00->width" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(kernel_00->height == 3)" ( (binary_expression "kernel_00->height == 3" (field_expression "kernel_00->height" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n          pMVar7 = kernel_00->values;\n          iVar10 = kernel_00->x;\n          MVar2 = *pMVar7;\n          *pMVar7 = pMVar7[3];\n          pMVar7[3] = pMVar7[6];\n          pMVar7[6] = pMVar7[7];\n          pMVar7[7] = pMVar7[8];\n          pMVar7[8] = pMVar7[5];\n          pMVar7[5] = pMVar7[2];\n          pMVar7[2] = pMVar7[1];\n          pMVar7[1] = MVar2;\n          iVar8 = kernel_00->y;\n          if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }\n          dVar17 = (double)DAT_002e8154;\n          local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);\n          dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);\n          kernel_00->angle = dVar17;\n        }" { (expression_statement "pMVar7 = kernel_00->values;" (assignment_expression "pMVar7 = kernel_00->values" identifier = (field_expression "kernel_00->values" identifier -> field_identifier)) ;) (expression_statement "iVar10 = kernel_00->x;" (assignment_expression "iVar10 = kernel_00->x" identifier = (field_expression "kernel_00->x" identifier -> field_identifier)) ;) (expression_statement "MVar2 = *pMVar7;" (assignment_expression "MVar2 = *pMVar7" identifier = (pointer_expression "*pMVar7" * identifier)) ;) (expression_statement "*pMVar7 = pMVar7[3];" (assignment_expression "*pMVar7 = pMVar7[3]" (pointer_expression "*pMVar7" * identifier) = (subscript_expression "pMVar7[3]" identifier [ number_literal ])) ;) (expression_statement "pMVar7[3] = pMVar7[6];" (assignment_expression "pMVar7[3] = pMVar7[6]" (subscript_expression "pMVar7[3]" identifier [ number_literal ]) = (subscript_expression "pMVar7[6]" identifier [ number_literal ])) ;) (expression_statement "pMVar7[6] = pMVar7[7];" (assignment_expression "pMVar7[6] = pMVar7[7]" (subscript_expression "pMVar7[6]" identifier [ number_literal ]) = (subscript_expression "pMVar7[7]" identifier [ number_literal ])) ;) (expression_statement "pMVar7[7] = pMVar7[8];" (assignment_expression "pMVar7[7] = pMVar7[8]" (subscript_expression "pMVar7[7]" identifier [ number_literal ]) = (subscript_expression "pMVar7[8]" identifier [ number_literal ])) ;) (expression_statement "pMVar7[8] = pMVar7[5];" (assignment_expression "pMVar7[8] = pMVar7[5]" (subscript_expression "pMVar7[8]" identifier [ number_literal ]) = (subscript_expression "pMVar7[5]" identifier [ number_literal ])) ;) (expression_statement "pMVar7[5] = pMVar7[2];" (assignment_expression "pMVar7[5] = pMVar7[2]" (subscript_expression "pMVar7[5]" identifier [ number_literal ]) = (subscript_expression "pMVar7[2]" identifier [ number_literal ])) ;) (expression_statement "pMVar7[2] = pMVar7[1];" (assignment_expression "pMVar7[2] = pMVar7[1]" (subscript_expression "pMVar7[2]" identifier [ number_literal ]) = (subscript_expression "pMVar7[1]" identifier [ number_literal ])) ;) (expression_statement "pMVar7[1] = MVar2;" (assignment_expression "pMVar7[1] = MVar2" (subscript_expression "pMVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = kernel_00->y;" (assignment_expression "iVar8 = kernel_00->y" identifier = (field_expression "kernel_00->y" identifier -> field_identifier)) ;) (if_statement "if (iVar10 == 1) {\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }" if (parenthesized_expression "(iVar10 == 1)" ( (binary_expression "iVar10 == 1" identifier == number_literal) )) (compound_statement "{\n            iVar14 = 1 - iVar8;\n            if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }\n          }" { (expression_statement "iVar14 = 1 - iVar8;" (assignment_expression "iVar14 = 1 - iVar8" identifier = (binary_expression "1 - iVar8" number_literal - identifier)) ;) (if_statement "if (iVar8 != 1) {\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }" if (parenthesized_expression "(iVar8 != 1)" ( (binary_expression "iVar8 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_001149a8:\n              iVar12 = iVar14 + 1;\n              goto LAB_00114949;\n            }" { (labeled_statement "LAB_001149a8:\n              iVar12 = iVar14 + 1;" statement_identifier : (expression_statement "iVar12 = iVar14 + 1;" (assignment_expression "iVar12 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;)) (goto_statement "goto LAB_00114949;" goto statement_identifier ;) })) }) (else_clause "else {\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }" else (compound_statement "{\n            if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }\nLAB_00114949:\n            kernel_00->x = iVar12;\n            kernel_00->y = iVar8;\n          }" { (if_statement "if (iVar10 + -1 == iVar8 + -1) {\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }\n            else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }" if (parenthesized_expression "(iVar10 + -1 == iVar8 + -1)" ( (binary_expression "iVar10 + -1 == iVar8 + -1" (binary_expression "iVar10 + -1" identifier + number_literal) == (binary_expression "iVar8 + -1" identifier + number_literal)) )) (compound_statement "{\n              iVar12 = 1;\n              iVar8 = iVar10;\n            }" { (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (expression_statement "iVar8 = iVar10;" (assignment_expression "iVar8 = iVar10" identifier = identifier) ;) }) (else_clause "else {\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }" else (compound_statement "{\n              iVar14 = 1 - iVar8;\n              if (iVar10 == 1) goto LAB_001149a8;\n              iVar12 = iVar10;\n              if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }\n            }" { (expression_statement "iVar14 = 1 - iVar8;" (assignment_expression "iVar14 = 1 - iVar8" identifier = (binary_expression "1 - iVar8" number_literal - identifier)) ;) (if_statement "if (iVar10 == 1) goto LAB_001149a8;" if (parenthesized_expression "(iVar10 == 1)" ( (binary_expression "iVar10 == 1" identifier == number_literal) )) (goto_statement "goto LAB_001149a8;" goto statement_identifier ;)) (expression_statement "iVar12 = iVar10;" (assignment_expression "iVar12 = iVar10" identifier = identifier) ;) (if_statement "if (iVar10 + -1 == iVar14) {\n                iVar8 = 1;\n              }\n              else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }" if (parenthesized_expression "(iVar10 + -1 == iVar14)" ( (binary_expression "iVar10 + -1 == iVar14" (binary_expression "iVar10 + -1" identifier + number_literal) == identifier) )) (compound_statement "{\n                iVar8 = 1;\n              }" { (expression_statement "iVar8 = 1;" (assignment_expression "iVar8 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }" else (if_statement "if (iVar8 == 1) {\n                iVar8 = iVar10;\n              }" if (parenthesized_expression "(iVar8 == 1)" ( (binary_expression "iVar8 == 1" identifier == number_literal) )) (compound_statement "{\n                iVar8 = iVar10;\n              }" { (expression_statement "iVar8 = iVar10;" (assignment_expression "iVar8 = iVar10" identifier = identifier) ;) })))) }))) (labeled_statement "LAB_00114949:\n            kernel_00->x = iVar12;" statement_identifier : (expression_statement "kernel_00->x = iVar12;" (assignment_expression "kernel_00->x = iVar12" (field_expression "kernel_00->x" identifier -> field_identifier) = identifier) ;)) (expression_statement "kernel_00->y = iVar8;" (assignment_expression "kernel_00->y = iVar8" (field_expression "kernel_00->y" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "dVar17 = (double)DAT_002e8154;" (assignment_expression "dVar17 = (double)DAT_002e8154" identifier = (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154);" (assignment_expression "local_5c = fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154)" identifier = (call_expression "fmod(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154)" identifier (argument_list "(local_5c + (double)DAT_002fbeb8,(double)DAT_002e8154)" ( (binary_expression "local_5c + (double)DAT_002fbeb8" identifier + (cast_expression "(double)DAT_002fbeb8" ( (type_descriptor "double" primitive_type) ) identifier)) , (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17);" (assignment_expression "dVar17 = fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17)" identifier = (call_expression "fmod((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17)" identifier (argument_list "((double)(_DAT_002f1394 + (float)kernel_00->angle),dVar17)" ( (cast_expression "(double)(_DAT_002f1394 + (float)kernel_00->angle)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(_DAT_002f1394 + (float)kernel_00->angle)" ( (binary_expression "_DAT_002f1394 + (float)kernel_00->angle" identifier + (cast_expression "(float)kernel_00->angle" ( (type_descriptor "float" primitive_type) ) (field_expression "kernel_00->angle" identifier -> field_identifier))) ))) , identifier )))) ;) (expression_statement "kernel_00->angle = dVar17;" (assignment_expression "kernel_00->angle = dVar17" (field_expression "kernel_00->angle" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }" else (compound_statement "{\n          perror("Unable to rotate non-3x3 kernel by 45 degrees");\n        }" { (expression_statement "perror("Unable to rotate non-3x3 kernel by 45 degrees");" (call_expression "perror("Unable to rotate non-3x3 kernel by 45 degrees")" identifier (argument_list "("Unable to rotate non-3x3 kernel by 45 degrees")" ( (string_literal ""Unable to rotate non-3x3 kernel by 45 degrees"" " string_content ") ))) ;) }))) })) (expression_statement "dVar17 = (double)DAT_002df8cc;" (assignment_expression "dVar17 = (double)DAT_002df8cc" identifier = (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar16 = fmod(local_5c,(double)DAT_002df8cc);" (assignment_expression "dVar16 = fmod(local_5c,(double)DAT_002df8cc)" identifier = (call_expression "fmod(local_5c,(double)DAT_002df8cc)" identifier (argument_list "(local_5c,(double)DAT_002df8cc)" ( identifier , (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)) {\n        sVar6 = kernel_00->width;\n        sVar3 = kernel_00->height;\n        if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }\n        local_54 = (double)fVar1;\n        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);\n        kernel_00->angle = dVar17;\n      }" if (parenthesized_expression "(((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0))" ( (binary_expression "((double)_DAT_002f1394 < dVar16) &&\n         (dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)" (parenthesized_expression "((double)_DAT_002f1394 < dVar16)" ( (binary_expression "(double)_DAT_002f1394 < dVar16" (cast_expression "(double)_DAT_002f1394" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0)" ( (comma_expression "dVar17 = fmod(local_5c,dVar17), dVar17 <= (double)DAT_002fbeb0" (assignment_expression "dVar17 = fmod(local_5c,dVar17)" identifier = (call_expression "fmod(local_5c,dVar17)" identifier (argument_list "(local_5c,dVar17)" ( identifier , identifier )))) , (binary_expression "dVar17 <= (double)DAT_002fbeb0" identifier <= (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n        sVar6 = kernel_00->width;\n        sVar3 = kernel_00->height;\n        if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }\n        local_54 = (double)fVar1;\n        dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);\n        kernel_00->angle = dVar17;\n      }" { (expression_statement "sVar6 = kernel_00->width;" (assignment_expression "sVar6 = kernel_00->width" identifier = (field_expression "kernel_00->width" identifier -> field_identifier)) ;) (expression_statement "sVar3 = kernel_00->height;" (assignment_expression "sVar3 = kernel_00->height" identifier = (field_expression "kernel_00->height" identifier -> field_identifier)) ;) (if_statement "if (sVar6 == 1) {\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }\n        else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }" if (parenthesized_expression "(sVar6 == 1)" ( (binary_expression "sVar6 == 1" identifier == number_literal) )) (compound_statement "{\n          kernel_00->width = sVar3;\n          sVar4 = kernel_00->y;\n          kernel_00->height = 1;\n          kernel_00->y = kernel_00->x;\n          kernel_00->x = sVar4;\n          fVar1 = DAT_002e8154;\n          if (sVar3 == 1) goto LAB_001147a7;\n          local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);\n          fVar5 = _DAT_002f250c;\n        }" { (expression_statement "kernel_00->width = sVar3;" (assignment_expression "kernel_00->width = sVar3" (field_expression "kernel_00->width" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar4 = kernel_00->y;" (assignment_expression "sVar4 = kernel_00->y" identifier = (field_expression "kernel_00->y" identifier -> field_identifier)) ;) (expression_statement "kernel_00->height = 1;" (assignment_expression "kernel_00->height = 1" (field_expression "kernel_00->height" identifier -> field_identifier) = number_literal) ;) (expression_statement "kernel_00->y = kernel_00->x;" (assignment_expression "kernel_00->y = kernel_00->x" (field_expression "kernel_00->y" identifier -> field_identifier) = (field_expression "kernel_00->x" identifier -> field_identifier)) ;) (expression_statement "kernel_00->x = sVar4;" (assignment_expression "kernel_00->x = sVar4" (field_expression "kernel_00->x" identifier -> field_identifier) = identifier) ;) (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" identifier = identifier) ;) (if_statement "if (sVar3 == 1) goto LAB_001147a7;" if (parenthesized_expression "(sVar3 == 1)" ( (binary_expression "sVar3 == 1" identifier == number_literal) )) (goto_statement "goto LAB_001147a7;" goto statement_identifier ;)) (expression_statement "local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154);" (assignment_expression "local_5c = fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154)" identifier = (call_expression "fmod(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154)" identifier (argument_list "(local_5c + (double)DAT_002df8c4,(double)DAT_002e8154)" ( (binary_expression "local_5c + (double)DAT_002df8c4" identifier + (cast_expression "(double)DAT_002df8c4" ( (type_descriptor "double" primitive_type) ) identifier)) , (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "fVar5 = _DAT_002f250c;" (assignment_expression "fVar5 = _DAT_002f250c" identifier = identifier) ;) }) (else_clause "else {\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }" else (compound_statement "{\n          if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar1 = DAT_002e8154;\n          local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);\n          fVar5 = DAT_002df8c4;\n        }" { (if_statement "if (sVar3 == 1) {\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }\n          else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }" if (parenthesized_expression "(sVar3 == 1)" ( (binary_expression "sVar3 == 1" identifier == number_literal) )) (compound_statement "{\n            kernel_00->height = sVar6;\n            sVar4 = kernel_00->x;\n            kernel_00->width = 1;\n            kernel_00->x = kernel_00->y;\n            kernel_00->y = sVar4;\n          }" { (expression_statement "kernel_00->height = sVar6;" (assignment_expression "kernel_00->height = sVar6" (field_expression "kernel_00->height" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar4 = kernel_00->x;" (assignment_expression "sVar4 = kernel_00->x" identifier = (field_expression "kernel_00->x" identifier -> field_identifier)) ;) (expression_statement "kernel_00->width = 1;" (assignment_expression "kernel_00->width = 1" (field_expression "kernel_00->width" identifier -> field_identifier) = number_literal) ;) (expression_statement "kernel_00->x = kernel_00->y;" (assignment_expression "kernel_00->x = kernel_00->y" (field_expression "kernel_00->x" identifier -> field_identifier) = (field_expression "kernel_00->y" identifier -> field_identifier)) ;) (expression_statement "kernel_00->y = sVar4;" (assignment_expression "kernel_00->y = sVar4" (field_expression "kernel_00->y" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }" else (compound_statement "{\n            if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }\n            local_34 = kernel_00->values;\n            iVar10 = sVar6 - 1;\n            if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }\n            iVar10 = kernel_00->x;\n            kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;\n            kernel_00->y = (iVar10 * 2) / 2;\n          }" { (if_statement "if (sVar6 != sVar3) {\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }" if (parenthesized_expression "(sVar6 != sVar3)" ( (binary_expression "sVar6 != sVar3" identifier != identifier) )) (compound_statement "{\n              perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n              goto LAB_001144d0;\n            }" { (expression_statement "perror("Unable to rotate a non-square, non-linear kernel 90 degrees");" (call_expression "perror("Unable to rotate a non-square, non-linear kernel 90 degrees")" identifier (argument_list "("Unable to rotate a non-square, non-linear kernel 90 degrees")" ( (string_literal ""Unable to rotate a non-square, non-linear kernel 90 degrees"" " string_content ") ))) ;) (goto_statement "goto LAB_001144d0;" goto statement_identifier ;) })) (expression_statement "local_34 = kernel_00->values;" (assignment_expression "local_34 = kernel_00->values" identifier = (field_expression "kernel_00->values" identifier -> field_identifier)) ;) (expression_statement "iVar10 = sVar6 - 1;" (assignment_expression "iVar10 = sVar6 - 1" identifier = (binary_expression "sVar6 - 1" identifier - number_literal)) ;) (if_statement "if ((-1 < iVar10) && (1 < (int)sVar6)) {\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }" if (parenthesized_expression "((-1 < iVar10) && (1 < (int)sVar6))" ( (binary_expression "(-1 < iVar10) && (1 < (int)sVar6)" (parenthesized_expression "(-1 < iVar10)" ( (binary_expression "-1 < iVar10" number_literal < identifier) )) && (parenthesized_expression "(1 < (int)sVar6)" ( (binary_expression "1 < (int)sVar6" number_literal < (cast_expression "(int)sVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n              local_40 = 0;\n              local_38 = local_34 + sVar6 * sVar6 + -1;\n              pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);\n            }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_38 = local_34 + sVar6 * sVar6 + -1;" (assignment_expression "local_38 = local_34 + sVar6 * sVar6 + -1" identifier = (binary_expression "local_34 + sVar6 * sVar6 + -1" (binary_expression "local_34 + sVar6 * sVar6" identifier + (binary_expression "sVar6 * sVar6" identifier * identifier)) + number_literal)) ;) (expression_statement "pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34);" (assignment_expression "pMVar7 = (MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34)" identifier = (cast_expression "(MagickRealType *)(iVar10 * sVar6 * 8 + (int)local_34)" ( (type_descriptor "MagickRealType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 * sVar6 * 8 + (int)local_34)" ( (binary_expression "iVar10 * sVar6 * 8 + (int)local_34" (binary_expression "iVar10 * sVar6 * 8" (binary_expression "iVar10 * sVar6" identifier * identifier) * number_literal) + (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_3c = local_34;" (assignment_expression "local_3c = local_34" identifier = identifier) ;) (do_statement "do {\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              } while (local_40 <= iVar10 - local_40);" do (compound_statement "{\n                local_3c = local_3c + sVar6;\n                iVar8 = 0;\n                pMVar9 = local_38;\n                pMVar11 = local_34;\n                pMVar13 = local_3c;\n                do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                pMVar7 = pMVar7 + -sVar6;\n              }" { (expression_statement "local_3c = local_3c + sVar6;" (assignment_expression "local_3c = local_3c + sVar6" identifier = (binary_expression "local_3c + sVar6" identifier + identifier)) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "pMVar9 = local_38;" (assignment_expression "pMVar9 = local_38" identifier = identifier) ;) (expression_statement "pMVar11 = local_34;" (assignment_expression "pMVar11 = local_34" identifier = identifier) ;) (expression_statement "pMVar13 = local_3c;" (assignment_expression "pMVar13 = local_3c" identifier = identifier) ;) (do_statement "do {\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                } while (iVar8 < iVar10 - iVar8);" do (compound_statement "{\n                  pMVar13 = pMVar13 + -1;\n                  MVar2 = *pMVar11;\n                  *pMVar11 = pMVar7[iVar8];\n                  pMVar7[iVar8] = *pMVar9;\n                  iVar8 = iVar8 + 1;\n                  *pMVar9 = *pMVar13;\n                  pMVar11 = pMVar11 + sVar6;\n                  *pMVar13 = MVar2;\n                  pMVar9 = pMVar9 + -sVar6;\n                }" { (expression_statement "pMVar13 = pMVar13 + -1;" (assignment_expression "pMVar13 = pMVar13 + -1" identifier = (binary_expression "pMVar13 + -1" identifier + number_literal)) ;) (expression_statement "MVar2 = *pMVar11;" (assignment_expression "MVar2 = *pMVar11" identifier = (pointer_expression "*pMVar11" * identifier)) ;) (expression_statement "*pMVar11 = pMVar7[iVar8];" (assignment_expression "*pMVar11 = pMVar7[iVar8]" (pointer_expression "*pMVar11" * identifier) = (subscript_expression "pMVar7[iVar8]" identifier [ identifier ])) ;) (expression_statement "pMVar7[iVar8] = *pMVar9;" (assignment_expression "pMVar7[iVar8] = *pMVar9" (subscript_expression "pMVar7[iVar8]" identifier [ identifier ]) = (pointer_expression "*pMVar9" * identifier)) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "*pMVar9 = *pMVar13;" (assignment_expression "*pMVar9 = *pMVar13" (pointer_expression "*pMVar9" * identifier) = (pointer_expression "*pMVar13" * identifier)) ;) (expression_statement "pMVar11 = pMVar11 + sVar6;" (assignment_expression "pMVar11 = pMVar11 + sVar6" identifier = (binary_expression "pMVar11 + sVar6" identifier + identifier)) ;) (expression_statement "*pMVar13 = MVar2;" (assignment_expression "*pMVar13 = MVar2" (pointer_expression "*pMVar13" * identifier) = identifier) ;) (expression_statement "pMVar9 = pMVar9 + -sVar6;" (assignment_expression "pMVar9 = pMVar9 + -sVar6" identifier = (binary_expression "pMVar9 + -sVar6" identifier + (unary_expression "-sVar6" - identifier))) ;) }) while (parenthesized_expression "(iVar8 < iVar10 - iVar8)" ( (binary_expression "iVar8 < iVar10 - iVar8" identifier < (binary_expression "iVar10 - iVar8" identifier - identifier)) )) ;) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" identifier = (binary_expression "local_34 + 1" identifier + number_literal)) ;) (expression_statement "local_38 = local_38 + -1;" (assignment_expression "local_38 = local_38 + -1" identifier = (binary_expression "local_38 + -1" identifier + number_literal)) ;) (expression_statement "pMVar7 = pMVar7 + -sVar6;" (assignment_expression "pMVar7 = pMVar7 + -sVar6" identifier = (binary_expression "pMVar7 + -sVar6" identifier + (unary_expression "-sVar6" - identifier))) ;) }) while (parenthesized_expression "(local_40 <= iVar10 - local_40)" ( (binary_expression "local_40 <= iVar10 - local_40" identifier <= (binary_expression "iVar10 - local_40" identifier - identifier)) )) ;) })) (expression_statement "iVar10 = kernel_00->x;" (assignment_expression "iVar10 = kernel_00->x" identifier = (field_expression "kernel_00->x" identifier -> field_identifier)) ;) (expression_statement "kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2;" (assignment_expression "kernel_00->x = (int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2" (field_expression "kernel_00->x" identifier -> field_identifier) = (binary_expression "(int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1) / 2" (cast_expression "(int)((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1)" ( (binary_expression "(sVar6 - ((1 - sVar3) + kernel_00->y * 2)) + -1" (parenthesized_expression "(sVar6 - ((1 - sVar3) + kernel_00->y * 2))" ( (binary_expression "sVar6 - ((1 - sVar3) + kernel_00->y * 2)" identifier - (parenthesized_expression "((1 - sVar3) + kernel_00->y * 2)" ( (binary_expression "(1 - sVar3) + kernel_00->y * 2" (parenthesized_expression "(1 - sVar3)" ( (binary_expression "1 - sVar3" number_literal - identifier) )) + (binary_expression "kernel_00->y * 2" (field_expression "kernel_00->y" identifier -> field_identifier) * number_literal)) ))) )) + number_literal) ))) / number_literal)) ;) (expression_statement "kernel_00->y = (iVar10 * 2) / 2;" (assignment_expression "kernel_00->y = (iVar10 * 2) / 2" (field_expression "kernel_00->y" identifier -> field_identifier) = (binary_expression "(iVar10 * 2) / 2" (parenthesized_expression "(iVar10 * 2)" ( (binary_expression "iVar10 * 2" identifier * number_literal) )) / number_literal)) ;) }))) (labeled_statement "LAB_001147a7:\n          fVar1 = DAT_002e8154;" statement_identifier : (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" identifier = identifier) ;)) (expression_statement "local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154);" (assignment_expression "local_5c = fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154)" identifier = (call_expression "fmod(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154)" identifier (argument_list "(local_5c + (double)_DAT_002f250c,(double)DAT_002e8154)" ( (binary_expression "local_5c + (double)_DAT_002f250c" identifier + (cast_expression "(double)_DAT_002f250c" ( (type_descriptor "double" primitive_type) ) identifier)) , (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "fVar5 = DAT_002df8c4;" (assignment_expression "fVar5 = DAT_002df8c4" identifier = identifier) ;) }))) (expression_statement "local_54 = (double)fVar1;" (assignment_expression "local_54 = (double)fVar1" identifier = (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54);" (assignment_expression "dVar17 = fmod((double)(fVar5 + (float)kernel_00->angle),local_54)" identifier = (call_expression "fmod((double)(fVar5 + (float)kernel_00->angle),local_54)" identifier (argument_list "((double)(fVar5 + (float)kernel_00->angle),local_54)" ( (cast_expression "(double)(fVar5 + (float)kernel_00->angle)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar5 + (float)kernel_00->angle)" ( (binary_expression "fVar5 + (float)kernel_00->angle" identifier + (cast_expression "(float)kernel_00->angle" ( (type_descriptor "float" primitive_type) ) (field_expression "kernel_00->angle" identifier -> field_identifier))) ))) , identifier )))) ;) (expression_statement "kernel_00->angle = dVar17;" (assignment_expression "kernel_00->angle = dVar17" (field_expression "kernel_00->angle" identifier -> field_identifier) = identifier) ;) })) (labeled_statement "LAB_001144d0:\n      sVar6 = kernel_00->width;" statement_identifier : (expression_statement "sVar6 = kernel_00->width;" (assignment_expression "sVar6 = kernel_00->width" identifier = (field_expression "kernel_00->width" identifier -> field_identifier)) ;)) (if_statement "if ((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))\n      goto LAB_00114400;" if (parenthesized_expression "((local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c))" ( (binary_expression "(local_5c <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < local_5c)" (parenthesized_expression "(local_5c <= (double)DAT_002fbeb0)" ( (binary_expression "local_5c <= (double)DAT_002fbeb0" identifier <= (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier)) )) || (parenthesized_expression "((double)DAT_002fbeb4 < local_5c)" ( (binary_expression "(double)DAT_002fbeb4 < local_5c" (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) ))) )) (goto_statement "goto LAB_00114400;" goto statement_identifier ;)) (expression_statement "sVar3 = kernel_00->height;" (assignment_expression "sVar3 = kernel_00->height" identifier = (field_expression "kernel_00->height" identifier -> field_identifier)) ;) (expression_statement "pMVar7 = kernel_00->values;" (assignment_expression "pMVar7 = kernel_00->values" identifier = (field_expression "kernel_00->values" identifier -> field_identifier)) ;) (expression_statement "iVar10 = sVar3 * sVar6 + -1;" (assignment_expression "iVar10 = sVar3 * sVar6 + -1" identifier = (binary_expression "sVar3 * sVar6 + -1" (binary_expression "sVar3 * sVar6" identifier * identifier) + number_literal)) ;) (if_statement "if (0 < iVar10) {\n        iVar8 = 0;\n        do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);\n      }" if (parenthesized_expression "(0 < iVar10)" ( (binary_expression "0 < iVar10" number_literal < identifier) )) (compound_statement "{\n        iVar8 = 0;\n        do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);\n      }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        } while (iVar8 < iVar10);" do (compound_statement "{\n          MVar2 = pMVar7[iVar8];\n          pMVar7[iVar8] = pMVar7[iVar10];\n          iVar8 = iVar8 + 1;\n          pMVar7[iVar10] = MVar2;\n          iVar10 = iVar10 + -1;\n        }" { (expression_statement "MVar2 = pMVar7[iVar8];" (assignment_expression "MVar2 = pMVar7[iVar8]" identifier = (subscript_expression "pMVar7[iVar8]" identifier [ identifier ])) ;) (expression_statement "pMVar7[iVar8] = pMVar7[iVar10];" (assignment_expression "pMVar7[iVar8] = pMVar7[iVar10]" (subscript_expression "pMVar7[iVar8]" identifier [ identifier ]) = (subscript_expression "pMVar7[iVar10]" identifier [ identifier ])) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "pMVar7[iVar10] = MVar2;" (assignment_expression "pMVar7[iVar10] = MVar2" (subscript_expression "pMVar7[iVar10]" identifier [ identifier ]) = identifier) ;) (expression_statement "iVar10 = iVar10 + -1;" (assignment_expression "iVar10 = iVar10 + -1" identifier = (binary_expression "iVar10 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 < iVar10)" ( (binary_expression "iVar8 < iVar10" identifier < identifier) )) ;) })) (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" identifier = identifier) ;) (expression_statement "kernel_00->x = (sVar6 - kernel_00->x) + -1;" (assignment_expression "kernel_00->x = (sVar6 - kernel_00->x) + -1" (field_expression "kernel_00->x" identifier -> field_identifier) = (binary_expression "(sVar6 - kernel_00->x) + -1" (parenthesized_expression "(sVar6 - kernel_00->x)" ( (binary_expression "sVar6 - kernel_00->x" identifier - (field_expression "kernel_00->x" identifier -> field_identifier)) )) + number_literal)) ;) (expression_statement "kernel_00->y = (sVar3 - kernel_00->y) + -1;" (assignment_expression "kernel_00->y = (sVar3 - kernel_00->y) + -1" (field_expression "kernel_00->y" identifier -> field_identifier) = (binary_expression "(sVar3 - kernel_00->y) + -1" (parenthesized_expression "(sVar3 - kernel_00->y)" ( (binary_expression "sVar3 - kernel_00->y" identifier - (field_expression "kernel_00->y" identifier -> field_identifier)) )) + number_literal)) ;) (expression_statement "dVar17 = (double)DAT_002df8cc;" (assignment_expression "dVar17 = (double)DAT_002df8cc" identifier = (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "fmod(local_5c - dVar17,(double)fVar1);" (call_expression "fmod(local_5c - dVar17,(double)fVar1)" identifier (argument_list "(local_5c - dVar17,(double)fVar1)" ( (binary_expression "local_5c - dVar17" identifier - identifier) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (expression_statement "dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1);" (assignment_expression "dVar17 = fmod(dVar17 + kernel_00->angle,(double)fVar1)" identifier = (call_expression "fmod(dVar17 + kernel_00->angle,(double)fVar1)" identifier (argument_list "(dVar17 + kernel_00->angle,(double)fVar1)" ( (binary_expression "dVar17 + kernel_00->angle" identifier + (field_expression "kernel_00->angle" identifier -> field_identifier)) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "kernel_00->angle = dVar17;" (assignment_expression "kernel_00->angle = dVar17" (field_expression "kernel_00->angle" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar6 = kernel_00->width;" (assignment_expression "sVar6 = kernel_00->width" identifier = (field_expression "kernel_00->width" identifier -> field_identifier)) ;) (if_statement "if (kernel->width == sVar6) goto LAB_00114598;" if (parenthesized_expression "(kernel->width == sVar6)" ( (binary_expression "kernel->width == sVar6" (field_expression "kernel->width" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_00114598;" goto statement_identifier ;)) }))) (do_statement "do {\n      pKVar15 = kernel_01;\n      kernel_01 = pKVar15->next;\n    } while (kernel_01 != (_KernelInfo *)0x0);" do (compound_statement "{\n      pKVar15 = kernel_01;\n      kernel_01 = pKVar15->next;\n    }" { (expression_statement "pKVar15 = kernel_01;" (assignment_expression "pKVar15 = kernel_01" identifier = identifier) ;) (expression_statement "kernel_01 = pKVar15->next;" (assignment_expression "kernel_01 = pKVar15->next" identifier = (field_expression "pKVar15->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(kernel_01 != (_KernelInfo *)0x0)" ( (binary_expression "kernel_01 != (_KernelInfo *)0x0" identifier != (cast_expression "(_KernelInfo *)0x0" ( (type_descriptor "_KernelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pKVar15->next = kernel_00;" (assignment_expression "pKVar15->next = kernel_00" (field_expression "pKVar15->next" identifier -> field_identifier) = identifier) ;) (expression_statement "kernel_01 = kernel_00;" (assignment_expression "kernel_01 = kernel_00" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_00114300(double param_1)\n\n{\n  float fVar1;\n  float fVar2;\n  undefined8 uVar3;\n  double dVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  int iVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  int unaff_EBP;\n  uint *puVar16;\n  uint *puVar17;\n  double dVar18;\n  undefined4 local_64;\n  double local_5c;\n  double local_54;\n  int local_40;\n  undefined8 *local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  \n  puVar5 = (uint *)FUN_00045159();\n  puVar16 = puVar5;\n  do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );\n}\n\n" (function_definition "void FUN_00114300(double param_1)\n\n{\n  float fVar1;\n  float fVar2;\n  undefined8 uVar3;\n  double dVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  int iVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  int unaff_EBP;\n  uint *puVar16;\n  uint *puVar17;\n  double dVar18;\n  undefined4 local_64;\n  double local_5c;\n  double local_54;\n  int local_40;\n  undefined8 *local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  \n  puVar5 = (uint *)FUN_00045159();\n  puVar16 = puVar5;\n  do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );\n}" primitive_type (function_declarator "FUN_00114300(double param_1)" identifier (parameter_list "(double param_1)" ( (parameter_declaration "double param_1" primitive_type identifier) ))) (compound_statement "{\n  float fVar1;\n  float fVar2;\n  undefined8 uVar3;\n  double dVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  int iVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  int unaff_EBP;\n  uint *puVar16;\n  uint *puVar17;\n  double dVar18;\n  undefined4 local_64;\n  double local_5c;\n  double local_54;\n  int local_40;\n  undefined8 *local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  \n  puVar5 = (uint *)FUN_00045159();\n  puVar16 = puVar5;\n  do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "float fVar2;" primitive_type identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "double dVar4;" primitive_type identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined8 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined8 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "double dVar18;" primitive_type identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "double local_5c;" primitive_type identifier ;) (declaration "double local_54;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined8 *local_3c;" type_identifier (pointer_declarator "*local_3c" * identifier) ;) (declaration "undefined8 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined8 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (expression_statement "puVar5 = (uint *)FUN_00045159();" (assignment_expression "puVar5 = (uint *)FUN_00045159()" identifier = (cast_expression "(uint *)FUN_00045159()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00045159()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar16 = puVar5;" (assignment_expression "puVar16 = puVar5" identifier = identifier) ;) (do_statement "do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );" do (compound_statement "{\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  }" { (expression_statement "puVar6 = (uint *)CloneKernelInfo(puVar16);" (assignment_expression "puVar6 = (uint *)CloneKernelInfo(puVar16)" identifier = (cast_expression "(uint *)CloneKernelInfo(puVar16)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CloneKernelInfo(puVar16)" identifier (argument_list "(puVar16)" ( identifier ))))) ;) (if_statement "if (puVar6 == (uint *)0x0) {\n      return;\n    }" if (parenthesized_expression "(puVar6 == (uint *)0x0)" ( (binary_expression "puVar6 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "local_64 = SUB84(param_1,0);" (assignment_expression "local_64 = SUB84(param_1,0)" identifier = (call_expression "SUB84(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (if_statement "if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }" if (parenthesized_expression "(puVar6[0x10] != 0)" ( (binary_expression "puVar6[0x10] != 0" (subscript_expression "puVar6[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_001120d0(local_64);\n    }" { (expression_statement "FUN_001120d0(local_64);" (call_expression "FUN_001120d0(local_64)" identifier (argument_list "(local_64)" ( identifier ))) ;) })) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" * (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" ( (binary_expression "unaff_EBP + 0x1d3e4e" identifier + number_literal) ))))) ;) (expression_statement "local_5c = fmod(param_1,(double)fVar1);" (assignment_expression "local_5c = fmod(param_1,(double)fVar1)" identifier = (call_expression "fmod(param_1,(double)fVar1)" identifier (argument_list "(param_1,(double)fVar1)" ( identifier , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }" if (parenthesized_expression "(local_5c < 0.0)" ( (binary_expression "local_5c < 0.0" identifier < number_literal) )) (compound_statement "{\n      local_5c = local_5c + (double)fVar1;\n    }" { (expression_statement "local_5c = local_5c + (double)fVar1;" (assignment_expression "local_5c = local_5c + (double)fVar1" identifier = (binary_expression "local_5c + (double)fVar1" identifier + (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier))) ;) })) (if_statement "if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }" if (parenthesized_expression "(((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6)))" ( (binary_expression "((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))" (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c)" ( (binary_expression "(double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c" (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7ba2)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7ba2)" * (cast_expression "(float *)(unaff_EBP + 0x1e7ba2)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7ba2)" ( (binary_expression "unaff_EBP + 0x1e7ba2" identifier + number_literal) ))))) < identifier) )) || (parenthesized_expression "(local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))" ( (binary_expression "local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6)" identifier <= (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7ba6)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7ba6)" * (cast_expression "(float *)(unaff_EBP + 0x1e7ba6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7ba6)" ( (binary_expression "unaff_EBP + 0x1e7ba6" identifier + number_literal) )))))) ))) )) (compound_statement "{\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }" { (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }" statement_identifier : (if_statement "if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }" if (parenthesized_expression "(puVar5[1] == uVar7)" ( (binary_expression "puVar5[1] == uVar7" (subscript_expression "puVar5[1]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }" { (labeled_statement "LAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }" statement_identifier : (if_statement "if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }" if (parenthesized_expression "(((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4]))" ( (binary_expression "((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])" (parenthesized_expression "((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3]))" ( (binary_expression "(puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])" (parenthesized_expression "(puVar5[2] == puVar6[2])" ( (binary_expression "puVar5[2] == puVar6[2]" (subscript_expression "puVar5[2]" identifier [ number_literal ]) == (subscript_expression "puVar6[2]" identifier [ number_literal ])) )) && (parenthesized_expression "(puVar5[3] == puVar6[3])" ( (binary_expression "puVar5[3] == puVar6[3]" (subscript_expression "puVar5[3]" identifier [ number_literal ]) == (subscript_expression "puVar6[3]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(puVar5[4] == puVar6[4])" ( (binary_expression "puVar5[4] == puVar6[4]" (subscript_expression "puVar5[4]" identifier [ number_literal ]) == (subscript_expression "puVar6[4]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }" { (expression_statement "iVar12 = uVar7 * puVar5[2];" (assignment_expression "iVar12 = uVar7 * puVar5[2]" identifier = (binary_expression "uVar7 * puVar5[2]" identifier * (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (if_statement "if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }" { (labeled_statement "LAB_0011462a:\n            DestroyKernelInfo(puVar6);" statement_identifier : (expression_statement "DestroyKernelInfo(puVar6);" (call_expression "DestroyKernelInfo(puVar6)" identifier (argument_list "(puVar6)" ( identifier ))) ;)) (return_statement "return;" return ;) })) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );" do (compound_statement "{\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          }" { (expression_statement "dVar18 = *(double *)(puVar6[5] + iVar10 * 8);" (assignment_expression "dVar18 = *(double *)(puVar6[5] + iVar10 * 8)" identifier = (pointer_expression "*(double *)(puVar6[5] + iVar10 * 8)" * (cast_expression "(double *)(puVar6[5] + iVar10 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6[5] + iVar10 * 8)" ( (binary_expression "puVar6[5] + iVar10 * 8" (subscript_expression "puVar6[5]" identifier [ number_literal ]) + (binary_expression "iVar10 * 8" identifier * number_literal)) ))))) ;) (expression_statement "dVar4 = *(double *)(puVar5[5] + iVar10 * 8);" (assignment_expression "dVar4 = *(double *)(puVar5[5] + iVar10 * 8)" identifier = (pointer_expression "*(double *)(puVar5[5] + iVar10 * 8)" * (cast_expression "(double *)(puVar5[5] + iVar10 * 8)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar5[5] + iVar10 * 8)" ( (binary_expression "puVar5[5] + iVar10 * 8" (subscript_expression "puVar5[5]" identifier [ number_literal ]) + (binary_expression "iVar10 * 8" identifier * number_literal)) ))))) ;) (if_statement "if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;" if (parenthesized_expression "(NAN(dVar4))" ( (call_expression "NAN(dVar4)" identifier (argument_list "(dVar4)" ( identifier ))) )) (compound_statement "{\n              if (!NAN(dVar18)) break;\n            }" { (if_statement "if (!NAN(dVar18)) break;" if (parenthesized_expression "(!NAN(dVar18))" ( (unary_expression "!NAN(dVar18)" ! (call_expression "NAN(dVar18)" identifier (argument_list "(dVar18)" ( identifier )))) )) (break_statement "break;" break ;)) }) (else_clause "else if (NAN(dVar18)) break;" else (if_statement "if (NAN(dVar18)) break;" if (parenthesized_expression "(NAN(dVar18))" ( (call_expression "NAN(dVar18)" identifier (argument_list "(dVar18)" ( identifier ))) )) (break_statement "break;" break ;)))) (if_statement "if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;" if (parenthesized_expression "(*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18))" ( (binary_expression "*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)" (pointer_expression "*(double *)(unaff_EBP + 0x1cafca)" * (cast_expression "(double *)(unaff_EBP + 0x1cafca)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cafca)" ( (binary_expression "unaff_EBP + 0x1cafca" identifier + number_literal) )))) <= (call_expression "ABS(dVar4 - dVar18)" identifier (argument_list "(dVar4 - dVar18)" ( (binary_expression "dVar4 - dVar18" identifier - identifier) )))) )) (break_statement "break;" break ;)) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (if_statement "if (iVar10 == iVar12) goto LAB_0011462a;" if (parenthesized_expression "(iVar10 == iVar12)" ( (binary_expression "iVar10 == iVar12" identifier == identifier) )) (goto_statement "goto LAB_0011462a;" goto statement_identifier ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) }))) }) (else_clause "else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }" else (compound_statement "{\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }" { (if_statement "if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }" if (parenthesized_expression "(*puVar6 < 0x25)" ( (binary_expression "*puVar6 < 0x25" (pointer_expression "*puVar6" * identifier) < number_literal) )) (compound_statement "{\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }" { (expression_statement "(*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();" (call_expression "(*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))()" (parenthesized_expression "(*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))" ( (pointer_expression "*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP)" * (cast_expression "(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP)" ( (binary_expression "&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP" (binary_expression "&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4)" (pointer_expression "&UNK_00309cfa" & identifier) + (pointer_expression "*(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4)" * (cast_expression "(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e70ce + *puVar6 * 4)" ( (binary_expression "unaff_EBP + 0x1e70ce + *puVar6 * 4" (binary_expression "unaff_EBP + 0x1e70ce" identifier + number_literal) + (binary_expression "*puVar6 * 4" (pointer_expression "*puVar6" * identifier) * number_literal)) ))))) + identifier) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1cb5be);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1cb5be)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1cb5be)" * (cast_expression "(float *)(unaff_EBP + 0x1cb5be)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cb5be)" ( (binary_expression "unaff_EBP + 0x1cb5be" identifier + number_literal) ))))) ;) (expression_statement "dVar18 = fmod(local_5c,(double)fVar1);" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" identifier = (call_expression "fmod(local_5c,(double)fVar1)" identifier (argument_list "(local_5c,(double)fVar1)" ( identifier , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }" if (parenthesized_expression "(((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         )" ( (binary_expression "((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))" (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18)" ( (binary_expression "(double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18" (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7ba6)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7ba6)" * (cast_expression "(float *)(unaff_EBP + 0x1e7ba6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7ba6)" ( (binary_expression "unaff_EBP + 0x1e7ba6" identifier + number_literal) ))))) < identifier) )) && (parenthesized_expression "(dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))" ( (comma_expression "dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6)" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" identifier = (call_expression "fmod(local_5c,(double)fVar1)" identifier (argument_list "(local_5c,(double)fVar1)" ( identifier , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) , (binary_expression "dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6)" identifier <= (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7bb6)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7bb6)" * (cast_expression "(float *)(unaff_EBP + 0x1e7bb6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7bb6)" ( (binary_expression "unaff_EBP + 0x1e7bb6" identifier + number_literal) ))))))) ))) )) (compound_statement "{\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }" { (if_statement "if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }" if (parenthesized_expression "((puVar6[1] == 3) && (puVar6[2] == 3))" ( (binary_expression "(puVar6[1] == 3) && (puVar6[2] == 3)" (parenthesized_expression "(puVar6[1] == 3)" ( (binary_expression "puVar6[1] == 3" (subscript_expression "puVar6[1]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(puVar6[2] == 3)" ( (binary_expression "puVar6[2] == 3" (subscript_expression "puVar6[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }" { (expression_statement "puVar8 = (undefined8 *)puVar6[5];" (assignment_expression "puVar8 = (undefined8 *)puVar6[5]" identifier = (cast_expression "(undefined8 *)puVar6[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ]))) ;) (expression_statement "uVar7 = puVar6[3];" (assignment_expression "uVar7 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "uVar3 = *puVar8;" (assignment_expression "uVar3 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "*puVar8 = puVar8[3];" (assignment_expression "*puVar8 = puVar8[3]" (pointer_expression "*puVar8" * identifier) = (subscript_expression "puVar8[3]" identifier [ number_literal ])) ;) (expression_statement "puVar8[3] = puVar8[6];" (assignment_expression "puVar8[3] = puVar8[6]" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "puVar8[6] = puVar8[7];" (assignment_expression "puVar8[6] = puVar8[7]" (subscript_expression "puVar8[6]" identifier [ number_literal ]) = (subscript_expression "puVar8[7]" identifier [ number_literal ])) ;) (expression_statement "puVar8[7] = puVar8[8];" (assignment_expression "puVar8[7] = puVar8[8]" (subscript_expression "puVar8[7]" identifier [ number_literal ]) = (subscript_expression "puVar8[8]" identifier [ number_literal ])) ;) (expression_statement "puVar8[8] = puVar8[5];" (assignment_expression "puVar8[8] = puVar8[5]" (subscript_expression "puVar8[8]" identifier [ number_literal ]) = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar8[5] = puVar8[2];" (assignment_expression "puVar8[5] = puVar8[2]" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = (subscript_expression "puVar8[2]" identifier [ number_literal ])) ;) (expression_statement "puVar8[2] = puVar8[1];" (assignment_expression "puVar8[2] = puVar8[1]" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = (subscript_expression "puVar8[1]" identifier [ number_literal ])) ;) (expression_statement "puVar8[1] = uVar3;" (assignment_expression "puVar8[1] = uVar3" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (if_statement "if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }" { (expression_statement "iVar12 = 1 - uVar9;" (assignment_expression "iVar12 = 1 - uVar9" identifier = (binary_expression "1 - uVar9" number_literal - identifier)) ;) (if_statement "if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }" if (parenthesized_expression "(uVar9 != 1)" ( (binary_expression "uVar9 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }" { (labeled_statement "LAB_001149a8:\n              uVar14 = iVar12 + 1;" statement_identifier : (expression_statement "uVar14 = iVar12 + 1;" (assignment_expression "uVar14 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;)) (goto_statement "goto LAB_00114949;" goto statement_identifier ;) })) }) (else_clause "else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }" else (compound_statement "{\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }" { (if_statement "if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }" if (parenthesized_expression "(uVar7 - 1 == uVar9 - 1)" ( (binary_expression "uVar7 - 1 == uVar9 - 1" (binary_expression "uVar7 - 1" identifier - number_literal) == (binary_expression "uVar9 - 1" identifier - number_literal)) )) (compound_statement "{\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }" { (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" identifier = identifier) ;) }) (else_clause "else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }" else (compound_statement "{\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }" { (expression_statement "iVar12 = 1 - uVar9;" (assignment_expression "iVar12 = 1 - uVar9" identifier = (binary_expression "1 - uVar9" number_literal - identifier)) ;) (if_statement "if (uVar7 == 1) goto LAB_001149a8;" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (goto_statement "goto LAB_001149a8;" goto statement_identifier ;)) (expression_statement "uVar14 = uVar7;" (assignment_expression "uVar14 = uVar7" identifier = identifier) ;) (if_statement "if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }" if (parenthesized_expression "(uVar7 - 1 == iVar12)" ( (binary_expression "uVar7 - 1 == iVar12" (binary_expression "uVar7 - 1" identifier - number_literal) == identifier) )) (compound_statement "{\n                uVar9 = 1;\n              }" { (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" identifier = number_literal) ;) }) (else_clause "else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }" else (if_statement "if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (compound_statement "{\n                uVar9 = uVar7;\n              }" { (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" identifier = identifier) ;) })))) }))) (labeled_statement "LAB_00114949:\n            puVar6[3] = uVar14;" statement_identifier : (expression_statement "puVar6[3] = uVar14;" (assignment_expression "puVar6[3] = uVar14" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "puVar6[4] = uVar9;" (assignment_expression "puVar6[4] = uVar9" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) }))) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" * (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" ( (binary_expression "unaff_EBP + 0x1d3e4e" identifier + number_literal) ))))) ;) (expression_statement "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);" (assignment_expression "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1)" identifier = (call_expression "fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1)" identifier (argument_list "(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1)" ( (binary_expression "local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2)" identifier + (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7bb2)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7bb2)" * (cast_expression "(float *)(unaff_EBP + 0x1e7bb2)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7bb2)" ( (binary_expression "unaff_EBP + 0x1e7bb2" identifier + number_literal) )))))) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);" (assignment_expression "dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1)" identifier = (call_expression "fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1)" identifier (argument_list "((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1)" ( (cast_expression "(double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                )" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                )" ( (binary_expression "*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)" (pointer_expression "*(float *)(unaff_EBP + 0x1dd08e)" * (cast_expression "(float *)(unaff_EBP + 0x1dd08e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1dd08e)" ( (binary_expression "unaff_EBP + 0x1dd08e" identifier + number_literal) )))) + (cast_expression "(float)*(double *)(puVar6 + 0xe)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) )))))) ))) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "*(double *)(puVar6 + 0xe) = dVar18;" (assignment_expression "*(double *)(puVar6 + 0xe) = dVar18" (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }" else (compound_statement "{\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }" { (expression_statement "perror((char *)(unaff_EBP + 0x1e694e));" (call_expression "perror((char *)(unaff_EBP + 0x1e694e))" identifier (argument_list "((char *)(unaff_EBP + 0x1e694e))" ( (cast_expression "(char *)(unaff_EBP + 0x1e694e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e694e)" ( (binary_expression "unaff_EBP + 0x1e694e" identifier + number_literal) ))) ))) ;) }))) })) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1cb5c6)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1cb5c6)" * (cast_expression "(float *)(unaff_EBP + 0x1cb5c6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cb5c6)" ( (binary_expression "unaff_EBP + 0x1cb5c6" identifier + number_literal) ))))) ;) (expression_statement "dVar18 = fmod(local_5c,(double)fVar1);" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" identifier = (call_expression "fmod(local_5c,(double)fVar1)" identifier (argument_list "(local_5c,(double)fVar1)" ( identifier , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }" if (parenthesized_expression "(((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         )" ( (binary_expression "((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))" (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18)" ( (binary_expression "(double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18" (cast_expression "(double)*(float *)(unaff_EBP + 0x1dd08e)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1dd08e)" * (cast_expression "(float *)(unaff_EBP + 0x1dd08e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1dd08e)" ( (binary_expression "unaff_EBP + 0x1dd08e" identifier + number_literal) ))))) < identifier) )) && (parenthesized_expression "(dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))" ( (comma_expression "dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa)" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" identifier = (call_expression "fmod(local_5c,(double)fVar1)" identifier (argument_list "(local_5c,(double)fVar1)" ( identifier , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) , (binary_expression "dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa)" identifier <= (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7baa)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7baa)" * (cast_expression "(float *)(unaff_EBP + 0x1e7baa)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7baa)" ( (binary_expression "unaff_EBP + 0x1e7baa" identifier + number_literal) ))))))) ))) )) (compound_statement "{\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }" { (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar6[2];" (assignment_expression "uVar9 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (if_statement "if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (compound_statement "{\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }" { (expression_statement "puVar6[1] = uVar9;" (assignment_expression "puVar6[1] = uVar9" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = puVar6[4];" (assignment_expression "uVar7 = puVar6[4]" identifier = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "puVar6[2] = 1;" (assignment_expression "puVar6[2] = 1" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[4] = puVar6[3];" (assignment_expression "puVar6[4] = puVar6[3]" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[3] = uVar7;" (assignment_expression "puVar6[3] = uVar7" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar9 == 1) goto LAB_001147a7;" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (goto_statement "goto LAB_001147a7;" goto statement_identifier ;)) (expression_statement "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" * (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" ( (binary_expression "unaff_EBP + 0x1d3e4e" identifier + number_literal) ))))) ;) (expression_statement "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);" (assignment_expression "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2)" identifier = (call_expression "fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2)" identifier (argument_list "(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2)" ( (binary_expression "local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be)" identifier + (cast_expression "(double)*(float *)(unaff_EBP + 0x1cb5be)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1cb5be)" * (cast_expression "(float *)(unaff_EBP + 0x1cb5be)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cb5be)" ( (binary_expression "unaff_EBP + 0x1cb5be" identifier + number_literal) )))))) , (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1de206);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1de206)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1de206)" * (cast_expression "(float *)(unaff_EBP + 0x1de206)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1de206)" ( (binary_expression "unaff_EBP + 0x1de206" identifier + number_literal) ))))) ;) }) (else_clause "else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }" else (compound_statement "{\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }" { (if_statement "if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }" if (parenthesized_expression "(uVar9 == 1)" ( (binary_expression "uVar9 == 1" identifier == number_literal) )) (compound_statement "{\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }" { (expression_statement "puVar6[2] = uVar7;" (assignment_expression "puVar6[2] = uVar7" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar7 = puVar6[3];" (assignment_expression "uVar7 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[1] = 1;" (assignment_expression "puVar6[1] = 1" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar6[3] = puVar6[4];" (assignment_expression "puVar6[3] = puVar6[4]" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (subscript_expression "puVar6[4]" identifier [ number_literal ])) ;) (expression_statement "puVar6[4] = uVar7;" (assignment_expression "puVar6[4] = uVar7" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }" else (compound_statement "{\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }" { (if_statement "if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }" if (parenthesized_expression "(uVar7 != uVar9)" ( (binary_expression "uVar7 != uVar9" identifier != identifier) )) (compound_statement "{\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }" { (expression_statement "perror((char *)(unaff_EBP + 0x1e697e));" (call_expression "perror((char *)(unaff_EBP + 0x1e697e))" identifier (argument_list "((char *)(unaff_EBP + 0x1e697e))" ( (cast_expression "(char *)(unaff_EBP + 0x1e697e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e697e)" ( (binary_expression "unaff_EBP + 0x1e697e" identifier + number_literal) ))) ))) ;) (goto_statement "goto LAB_001144d0;" goto statement_identifier ;) })) (expression_statement "local_34 = (undefined8 *)puVar6[5];" (assignment_expression "local_34 = (undefined8 *)puVar6[5]" identifier = (cast_expression "(undefined8 *)puVar6[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar12 = uVar7 - 1;" (assignment_expression "iVar12 = uVar7 - 1" identifier = (binary_expression "uVar7 - 1" identifier - number_literal)) ;) (if_statement "if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }" if (parenthesized_expression "((-1 < iVar12) && (1 < (int)uVar7))" ( (binary_expression "(-1 < iVar12) && (1 < (int)uVar7)" (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) )) && (parenthesized_expression "(1 < (int)uVar7)" ( (binary_expression "1 < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_38 = local_34 + uVar7 * uVar7 + -1;" (assignment_expression "local_38 = local_34 + uVar7 * uVar7 + -1" identifier = (binary_expression "local_34 + uVar7 * uVar7 + -1" (binary_expression "local_34 + uVar7 * uVar7" identifier + (binary_expression "uVar7 * uVar7" identifier * identifier)) + number_literal)) ;) (expression_statement "puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);" (assignment_expression "puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34)" identifier = (cast_expression "(undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 * uVar7 * 8 + (int)local_34)" ( (binary_expression "iVar12 * uVar7 * 8 + (int)local_34" (binary_expression "iVar12 * uVar7 * 8" (binary_expression "iVar12 * uVar7" identifier * identifier) * number_literal) + (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "local_3c = local_34;" (assignment_expression "local_3c = local_34" identifier = identifier) ;) (do_statement "do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);" do (compound_statement "{\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              }" { (expression_statement "local_3c = local_3c + uVar7;" (assignment_expression "local_3c = local_3c + uVar7" identifier = (binary_expression "local_3c + uVar7" identifier + identifier)) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" identifier = identifier) ;) (expression_statement "puVar13 = local_34;" (assignment_expression "puVar13 = local_34" identifier = identifier) ;) (expression_statement "puVar15 = local_3c;" (assignment_expression "puVar15 = local_3c" identifier = identifier) ;) (do_statement "do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);" do (compound_statement "{\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                }" { (expression_statement "puVar15 = puVar15 + -1;" (assignment_expression "puVar15 = puVar15 + -1" identifier = (binary_expression "puVar15 + -1" identifier + number_literal)) ;) (expression_statement "uVar3 = *puVar13;" (assignment_expression "uVar3 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "*puVar13 = puVar8[iVar10];" (assignment_expression "*puVar13 = puVar8[iVar10]" (pointer_expression "*puVar13" * identifier) = (subscript_expression "puVar8[iVar10]" identifier [ identifier ])) ;) (expression_statement "puVar8[iVar10] = *puVar11;" (assignment_expression "puVar8[iVar10] = *puVar11" (subscript_expression "puVar8[iVar10]" identifier [ identifier ]) = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "*puVar11 = *puVar15;" (assignment_expression "*puVar11 = *puVar15" (pointer_expression "*puVar11" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "puVar13 = puVar13 + uVar7;" (assignment_expression "puVar13 = puVar13 + uVar7" identifier = (binary_expression "puVar13 + uVar7" identifier + identifier)) ;) (expression_statement "*puVar15 = uVar3;" (assignment_expression "*puVar15 = uVar3" (pointer_expression "*puVar15" * identifier) = identifier) ;) (expression_statement "puVar11 = puVar11 + -uVar7;" (assignment_expression "puVar11 = puVar11 + -uVar7" identifier = (binary_expression "puVar11 + -uVar7" identifier + (unary_expression "-uVar7" - identifier))) ;) }) while (parenthesized_expression "(iVar10 < iVar12 - iVar10)" ( (binary_expression "iVar10 < iVar12 - iVar10" identifier < (binary_expression "iVar12 - iVar10" identifier - identifier)) )) ;) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" identifier = (binary_expression "local_40 + 1" identifier + number_literal)) ;) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" identifier = (binary_expression "local_34 + 1" identifier + number_literal)) ;) (expression_statement "local_38 = local_38 + -1;" (assignment_expression "local_38 = local_38 + -1" identifier = (binary_expression "local_38 + -1" identifier + number_literal)) ;) (expression_statement "puVar8 = puVar8 + -uVar7;" (assignment_expression "puVar8 = puVar8 + -uVar7" identifier = (binary_expression "puVar8 + -uVar7" identifier + (unary_expression "-uVar7" - identifier))) ;) }) while (parenthesized_expression "(local_40 <= iVar12 - local_40)" ( (binary_expression "local_40 <= iVar12 - local_40" identifier <= (binary_expression "iVar12 - local_40" identifier - identifier)) )) ;) })) (expression_statement "uVar14 = puVar6[3];" (assignment_expression "uVar14 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;" (assignment_expression "puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (binary_expression "(int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2" (cast_expression "(int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1)" ( (binary_expression "(uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1" (parenthesized_expression "(uVar7 - ((1 - uVar9) + puVar6[4] * 2))" ( (binary_expression "uVar7 - ((1 - uVar9) + puVar6[4] * 2)" identifier - (parenthesized_expression "((1 - uVar9) + puVar6[4] * 2)" ( (binary_expression "(1 - uVar9) + puVar6[4] * 2" (parenthesized_expression "(1 - uVar9)" ( (binary_expression "1 - uVar9" number_literal - identifier) )) + (binary_expression "puVar6[4] * 2" (subscript_expression "puVar6[4]" identifier [ number_literal ]) * number_literal)) ))) )) + number_literal) ))) / number_literal)) ;) (expression_statement "puVar6[4] = (int)(uVar14 * 2) / 2;" (assignment_expression "puVar6[4] = (int)(uVar14 * 2) / 2" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (binary_expression "(int)(uVar14 * 2) / 2" (cast_expression "(int)(uVar14 * 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar14 * 2)" ( (binary_expression "uVar14 * 2" identifier * number_literal) ))) / number_literal)) ;) }))) (labeled_statement "LAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);" statement_identifier : (expression_statement "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" * (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" ( (binary_expression "unaff_EBP + 0x1d3e4e" identifier + number_literal) ))))) ;)) (expression_statement "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);" (assignment_expression "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2)" identifier = (call_expression "fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2)" identifier (argument_list "(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2)" ( (binary_expression "local_5c + (double)*(float *)(unaff_EBP + 0x1de206)" identifier + (cast_expression "(double)*(float *)(unaff_EBP + 0x1de206)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1de206)" * (cast_expression "(float *)(unaff_EBP + 0x1de206)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1de206)" ( (binary_expression "unaff_EBP + 0x1de206" identifier + number_literal) )))))) , (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1cb5be);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1cb5be)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1cb5be)" * (cast_expression "(float *)(unaff_EBP + 0x1cb5be)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cb5be)" ( (binary_expression "unaff_EBP + 0x1cb5be" identifier + number_literal) ))))) ;) }))) (expression_statement "local_54 = (double)fVar2;" (assignment_expression "local_54 = (double)fVar2" identifier = (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);" (assignment_expression "dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54)" identifier = (call_expression "fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54)" identifier (argument_list "((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54)" ( (cast_expression "(double)(fVar1 + (float)*(double *)(puVar6 + 0xe))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar1 + (float)*(double *)(puVar6 + 0xe))" ( (binary_expression "fVar1 + (float)*(double *)(puVar6 + 0xe)" identifier + (cast_expression "(float)*(double *)(puVar6 + 0xe)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) )))))) ))) , identifier )))) ;) (expression_statement "*(double *)(puVar6 + 0xe) = dVar18;" (assignment_expression "*(double *)(puVar6 + 0xe) = dVar18" (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) )))) = identifier) ;) })) (labeled_statement "LAB_001144d0:\n      uVar7 = puVar6[1];" statement_identifier : (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;)) (if_statement "if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;" if (parenthesized_expression "((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c))" ( (binary_expression "(local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)" (parenthesized_expression "(local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa))" ( (binary_expression "local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)" identifier <= (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7baa)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7baa)" * (cast_expression "(float *)(unaff_EBP + 0x1e7baa)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7baa)" ( (binary_expression "unaff_EBP + 0x1e7baa" identifier + number_literal) )))))) )) || (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)" ( (binary_expression "(double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c" (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7bae)" ( (type_descriptor "double" primitive_type) ) (pointer_expression "*(float *)(unaff_EBP + 0x1e7bae)" * (cast_expression "(float *)(unaff_EBP + 0x1e7bae)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1e7bae)" ( (binary_expression "unaff_EBP + 0x1e7bae" identifier + number_literal) ))))) < identifier) ))) )) (goto_statement "goto LAB_00114400;" goto statement_identifier ;)) (expression_statement "uVar9 = puVar6[2];" (assignment_expression "uVar9 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = puVar6[5];" (assignment_expression "uVar14 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = uVar9 * uVar7 + -1;" (assignment_expression "iVar12 = uVar9 * uVar7 + -1" identifier = (binary_expression "uVar9 * uVar7 + -1" (binary_expression "uVar9 * uVar7" identifier * identifier) + number_literal)) ;) (if_statement "if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }" if (parenthesized_expression "(0 < iVar12)" ( (binary_expression "0 < iVar12" number_literal < identifier) )) (compound_statement "{\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (do_statement "do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);" do (compound_statement "{\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        }" { (expression_statement "uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);" (assignment_expression "uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8)" identifier = (pointer_expression "*(undefined8 *)(uVar14 + iVar10 * 8)" * (cast_expression "(undefined8 *)(uVar14 + iVar10 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + iVar10 * 8)" ( (binary_expression "uVar14 + iVar10 * 8" identifier + (binary_expression "iVar10 * 8" identifier * number_literal)) ))))) ;) (expression_statement "*(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);" (assignment_expression "*(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8)" (pointer_expression "*(undefined8 *)(uVar14 + iVar10 * 8)" * (cast_expression "(undefined8 *)(uVar14 + iVar10 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + iVar10 * 8)" ( (binary_expression "uVar14 + iVar10 * 8" identifier + (binary_expression "iVar10 * 8" identifier * number_literal)) )))) = (pointer_expression "*(undefined8 *)(uVar14 + iVar12 * 8)" * (cast_expression "(undefined8 *)(uVar14 + iVar12 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + iVar12 * 8)" ( (binary_expression "uVar14 + iVar12 * 8" identifier + (binary_expression "iVar12 * 8" identifier * number_literal)) ))))) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;" (assignment_expression "*(undefined8 *)(uVar14 + iVar12 * 8) = uVar3" (pointer_expression "*(undefined8 *)(uVar14 + iVar12 * 8)" * (cast_expression "(undefined8 *)(uVar14 + iVar12 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar14 + iVar12 * 8)" ( (binary_expression "uVar14 + iVar12 * 8" identifier + (binary_expression "iVar12 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar10 < iVar12)" ( (binary_expression "iVar10 < iVar12" identifier < identifier) )) ;) })) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" * (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" ( (binary_expression "unaff_EBP + 0x1d3e4e" identifier + number_literal) ))))) ;) (expression_statement "puVar6[3] = (uVar7 - puVar6[3]) - 1;" (assignment_expression "puVar6[3] = (uVar7 - puVar6[3]) - 1" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (binary_expression "(uVar7 - puVar6[3]) - 1" (parenthesized_expression "(uVar7 - puVar6[3])" ( (binary_expression "uVar7 - puVar6[3]" identifier - (subscript_expression "puVar6[3]" identifier [ number_literal ])) )) - number_literal)) ;) (expression_statement "puVar6[4] = (uVar9 - puVar6[4]) - 1;" (assignment_expression "puVar6[4] = (uVar9 - puVar6[4]) - 1" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (binary_expression "(uVar9 - puVar6[4]) - 1" (parenthesized_expression "(uVar9 - puVar6[4])" ( (binary_expression "uVar9 - puVar6[4]" identifier - (subscript_expression "puVar6[4]" identifier [ number_literal ])) )) - number_literal)) ;) (expression_statement "fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);" (assignment_expression "fVar2 = *(float *)(unaff_EBP + 0x1cb5c6)" identifier = (pointer_expression "*(float *)(unaff_EBP + 0x1cb5c6)" * (cast_expression "(float *)(unaff_EBP + 0x1cb5c6)" ( (type_descriptor "float *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x1cb5c6)" ( (binary_expression "unaff_EBP + 0x1cb5c6" identifier + number_literal) ))))) ;) (expression_statement "fmod(local_5c - (double)fVar2,(double)fVar1);" (call_expression "fmod(local_5c - (double)fVar2,(double)fVar1)" identifier (argument_list "(local_5c - (double)fVar2,(double)fVar1)" ( (binary_expression "local_5c - (double)fVar2" identifier - (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier)) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (expression_statement "dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);" (assignment_expression "dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1)" identifier = (call_expression "fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1)" identifier (argument_list "((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1)" ( (binary_expression "(double)fVar2 + *(double *)(puVar6 + 0xe)" (cast_expression "(double)fVar2" ( (type_descriptor "double" primitive_type) ) identifier) + (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) ))))) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "*(double *)(puVar6 + 0xe) = dVar18;" (assignment_expression "*(double *)(puVar6 + 0xe) = dVar18" (pointer_expression "*(double *)(puVar6 + 0xe)" * (cast_expression "(double *)(puVar6 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0xe)" ( (binary_expression "puVar6 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (if_statement "if (puVar5[1] == uVar7) goto LAB_00114598;" if (parenthesized_expression "(puVar5[1] == uVar7)" ( (binary_expression "puVar5[1] == uVar7" (subscript_expression "puVar5[1]" identifier [ number_literal ]) == identifier) )) (goto_statement "goto LAB_00114598;" goto statement_identifier ;)) }))) (do_statement "do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);" do (compound_statement "{\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    }" { (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" identifier = identifier) ;) (expression_statement "puVar16 = (uint *)puVar17[0x10];" (assignment_expression "puVar16 = (uint *)puVar17[0x10]" identifier = (cast_expression "(uint *)puVar17[0x10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar17[0x10]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(puVar16 != (uint *)0x0)" ( (binary_expression "puVar16 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "puVar17[0x10] = (uint)puVar6;" (assignment_expression "puVar17[0x10] = (uint)puVar6" (subscript_expression "puVar17[0x10]" identifier [ number_literal ]) = (cast_expression "(uint)puVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "puVar16 = puVar6;" (assignment_expression "puVar16 = puVar6" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 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 (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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 = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (if_statement if (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 + LIT) ))))) < IDENT) )) || (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return ;) })) (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 (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (unary_expression ! (call_expression IDENT (argument_list ( IDENT )))) )) (break_statement break ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (call_expression IDENT (argument_list ( IDENT ))) )) (break_statement break ;)))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) )))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (pointer_expression * IDENT) * LIT)) ))))) + IDENT) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (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 = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (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 + LIT) ))))) < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) , (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) == (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 = (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (if_statement if (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 + LIT) ))))) < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) , (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * IDENT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * IDENT) * LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (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 = (binary_expression IDENT + (unary_expression - IDENT))) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT - IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) ))) )) + LIT) ))) / LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT * LIT) ))) / LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression 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) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (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 + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (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 IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) )) - LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) )) - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) (goto_statement goto statement_identifier ;)) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_00114300(double param_1)\n\n{\n  float fVar1;\n  float fVar2;\n  undefined8 uVar3;\n  double dVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  int iVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  int unaff_EBP;\n  uint *puVar16;\n  uint *puVar17;\n  double dVar18;\n  undefined4 local_64;\n  double local_5c;\n  double local_54;\n  int local_40;\n  undefined8 *local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  \n  puVar5 = (uint *)FUN_00045159();\n  puVar16 = puVar5;\n  do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_00114300(double param_1)" (identifier "FUN_00114300") (parameter_list "(double param_1)" (( "(") (parameter_declaration "double param_1" (primitive_type "double") (identifier "param_1")) () ")"))) (compound_statement "{\n  float fVar1;\n  float fVar2;\n  undefined8 uVar3;\n  double dVar4;\n  uint *puVar5;\n  uint *puVar6;\n  uint uVar7;\n  undefined8 *puVar8;\n  uint uVar9;\n  int iVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  int unaff_EBP;\n  uint *puVar16;\n  uint *puVar17;\n  double dVar18;\n  undefined4 local_64;\n  double local_5c;\n  double local_54;\n  int local_40;\n  undefined8 *local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  \n  puVar5 = (uint *)FUN_00045159();\n  puVar16 = puVar5;\n  do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );\n}" ({ "{") (declaration "float fVar1;" (primitive_type "float") (identifier "fVar1") (; ";")) (declaration "float fVar2;" (primitive_type "float") (identifier "fVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "double dVar4;" (primitive_type "double") (identifier "dVar4") (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "uint *puVar6;" (type_identifier "uint") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined8 *puVar8;" (type_identifier "undefined8") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined8 *puVar11;" (type_identifier "undefined8") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined8 *puVar13;" (type_identifier "undefined8") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined8 *puVar15;" (type_identifier "undefined8") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "uint *puVar16;" (type_identifier "uint") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "double dVar18;" (primitive_type "double") (identifier "dVar18") (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "double local_5c;" (primitive_type "double") (identifier "local_5c") (; ";")) (declaration "double local_54;" (primitive_type "double") (identifier "local_54") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined8 *local_3c;" (type_identifier "undefined8") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c")) (; ";")) (declaration "undefined8 *local_38;" (type_identifier "undefined8") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "undefined8 *local_34;" (type_identifier "undefined8") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (expression_statement "puVar5 = (uint *)FUN_00045159();" (assignment_expression "puVar5 = (uint *)FUN_00045159()" (identifier "puVar5") (= "=") (cast_expression "(uint *)FUN_00045159()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00045159()" (identifier "FUN_00045159") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar16 = puVar5;" (assignment_expression "puVar16 = puVar5" (identifier "puVar16") (= "=") (identifier "puVar5")) (; ";")) (do_statement "do {\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  } while( true );" (do "do") (compound_statement "{\n    puVar6 = (uint *)CloneKernelInfo(puVar16);\n    if (puVar6 == (uint *)0x0) {\n      return;\n    }\n    local_64 = SUB84(param_1,0);\n    if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }\n    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n    local_5c = fmod(param_1,(double)fVar1);\n    if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }\n    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }\n    do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);\n    puVar17[0x10] = (uint)puVar6;\n    puVar16 = puVar6;\n  }" ({ "{") (expression_statement "puVar6 = (uint *)CloneKernelInfo(puVar16);" (assignment_expression "puVar6 = (uint *)CloneKernelInfo(puVar16)" (identifier "puVar6") (= "=") (cast_expression "(uint *)CloneKernelInfo(puVar16)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CloneKernelInfo(puVar16)" (identifier "CloneKernelInfo") (argument_list "(puVar16)" (( "(") (identifier "puVar16") () ")"))))) (; ";")) (if_statement "if (puVar6 == (uint *)0x0) {\n      return;\n    }" (if "if") (parenthesized_expression "(puVar6 == (uint *)0x0)" (( "(") (binary_expression "puVar6 == (uint *)0x0" (identifier "puVar6") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_64 = SUB84(param_1,0);" (assignment_expression "local_64 = SUB84(param_1,0)" (identifier "local_64") (= "=") (call_expression "SUB84(param_1,0)" (identifier "SUB84") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (puVar6[0x10] != 0) {\n      FUN_001120d0(local_64);\n    }" (if "if") (parenthesized_expression "(puVar6[0x10] != 0)" (( "(") (binary_expression "puVar6[0x10] != 0" (subscript_expression "puVar6[0x10]" (identifier "puVar6") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_001120d0(local_64);\n    }" ({ "{") (expression_statement "FUN_001120d0(local_64);" (call_expression "FUN_001120d0(local_64)" (identifier "FUN_001120d0") (argument_list "(local_64)" (( "(") (identifier "local_64") () ")"))) (; ";")) (} "}"))) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e)" (identifier "fVar1") (= "=") (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" (( "(") (binary_expression "unaff_EBP + 0x1d3e4e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1d3e4e")) () ")"))))) (; ";")) (expression_statement "local_5c = fmod(param_1,(double)fVar1);" (assignment_expression "local_5c = fmod(param_1,(double)fVar1)" (identifier "local_5c") (= "=") (call_expression "fmod(param_1,(double)fVar1)" (identifier "fmod") (argument_list "(param_1,(double)fVar1)" (( "(") (identifier "param_1") (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")")))) (; ";")) (if_statement "if (local_5c < 0.0) {\n      local_5c = local_5c + (double)fVar1;\n    }" (if "if") (parenthesized_expression "(local_5c < 0.0)" (( "(") (binary_expression "local_5c < 0.0" (identifier "local_5c") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n      local_5c = local_5c + (double)fVar1;\n    }" ({ "{") (expression_statement "local_5c = local_5c + (double)fVar1;" (assignment_expression "local_5c = local_5c + (double)fVar1" (identifier "local_5c") (= "=") (binary_expression "local_5c + (double)fVar1" (identifier "local_5c") (+ "+") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")))) (; ";")) (} "}"))) (if_statement "if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }\n    else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }" (if "if") (parenthesized_expression "(((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6)))" (( "(") (binary_expression "((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||\n       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))" (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c)" (( "(") (binary_expression "(double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c" (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7ba2)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1e7ba2)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1e7ba2)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e7ba2)" (( "(") (binary_expression "unaff_EBP + 0x1e7ba2" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e7ba2")) () ")"))))) (< "<") (identifier "local_5c")) () ")")) (|| "||") (parenthesized_expression "(local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))" (( "(") (binary_expression "local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6)" (identifier "local_5c") (<= "<=") (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7ba6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1e7ba6)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1e7ba6)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e7ba6)" (( "(") (binary_expression "unaff_EBP + 0x1e7ba6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e7ba6")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n      uVar7 = puVar6[1];\nLAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }\n    }" ({ "{") (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" (identifier "uVar7") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (labeled_statement "LAB_00114400:\n      if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }" (statement_identifier "LAB_00114400") (: ":") (if_statement "if (puVar5[1] == uVar7) {\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }" (if "if") (parenthesized_expression "(puVar5[1] == uVar7)" (( "(") (binary_expression "puVar5[1] == uVar7" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "uVar7")) () ")")) (compound_statement "{\nLAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }\n      }" ({ "{") (labeled_statement "LAB_00114598:\n        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }" (statement_identifier "LAB_00114598") (: ":") (if_statement "if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }" (if "if") (parenthesized_expression "(((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4]))" (( "(") (binary_expression "((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])" (parenthesized_expression "((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3]))" (( "(") (binary_expression "(puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])" (parenthesized_expression "(puVar5[2] == puVar6[2])" (( "(") (binary_expression "puVar5[2] == puVar6[2]" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (== "==") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(puVar5[3] == puVar6[3])" (( "(") (binary_expression "puVar5[3] == puVar6[3]" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (== "==") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(puVar5[4] == puVar6[4])" (( "(") (binary_expression "puVar5[4] == puVar6[4]" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (== "==") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) () ")"))) () ")")) (compound_statement "{\n          iVar12 = uVar7 * puVar5[2];\n          if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }\n          iVar10 = 0;\n          do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );\n        }" ({ "{") (expression_statement "iVar12 = uVar7 * puVar5[2];" (assignment_expression "iVar12 = uVar7 * puVar5[2]" (identifier "iVar12") (= "=") (binary_expression "uVar7 * puVar5[2]" (identifier "uVar7") (* "*") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (iVar12 == 0) {\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0011462a:\n            DestroyKernelInfo(puVar6);\n            return;\n          }" ({ "{") (labeled_statement "LAB_0011462a:\n            DestroyKernelInfo(puVar6);" (statement_identifier "LAB_0011462a") (: ":") (expression_statement "DestroyKernelInfo(puVar6);" (call_expression "DestroyKernelInfo(puVar6)" (identifier "DestroyKernelInfo") (argument_list "(puVar6)" (( "(") (identifier "puVar6") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          } while( true );" (do "do") (compound_statement "{\n            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);\n            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);\n            if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;\n            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;\n            iVar10 = iVar10 + 1;\n            if (iVar10 == iVar12) goto LAB_0011462a;\n          }" ({ "{") (expression_statement "dVar18 = *(double *)(puVar6[5] + iVar10 * 8);" (assignment_expression "dVar18 = *(double *)(puVar6[5] + iVar10 * 8)" (identifier "dVar18") (= "=") (pointer_expression "*(double *)(puVar6[5] + iVar10 * 8)" (* "*") (cast_expression "(double *)(puVar6[5] + iVar10 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6[5] + iVar10 * 8)" (( "(") (binary_expression "puVar6[5] + iVar10 * 8" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (+ "+") (binary_expression "iVar10 * 8" (identifier "iVar10") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "dVar4 = *(double *)(puVar5[5] + iVar10 * 8);" (assignment_expression "dVar4 = *(double *)(puVar5[5] + iVar10 * 8)" (identifier "dVar4") (= "=") (pointer_expression "*(double *)(puVar5[5] + iVar10 * 8)" (* "*") (cast_expression "(double *)(puVar5[5] + iVar10 * 8)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar5[5] + iVar10 * 8)" (( "(") (binary_expression "puVar5[5] + iVar10 * 8" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (+ "+") (binary_expression "iVar10 * 8" (identifier "iVar10") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (if_statement "if (NAN(dVar4)) {\n              if (!NAN(dVar18)) break;\n            }\n            else if (NAN(dVar18)) break;" (if "if") (parenthesized_expression "(NAN(dVar4))" (( "(") (call_expression "NAN(dVar4)" (identifier "NAN") (argument_list "(dVar4)" (( "(") (identifier "dVar4") () ")"))) () ")")) (compound_statement "{\n              if (!NAN(dVar18)) break;\n            }" ({ "{") (if_statement "if (!NAN(dVar18)) break;" (if "if") (parenthesized_expression "(!NAN(dVar18))" (( "(") (unary_expression "!NAN(dVar18)" (! "!") (call_expression "NAN(dVar18)" (identifier "NAN") (argument_list "(dVar18)" (( "(") (identifier "dVar18") () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (else_clause "else if (NAN(dVar18)) break;" (else "else") (if_statement "if (NAN(dVar18)) break;" (if "if") (parenthesized_expression "(NAN(dVar18))" (( "(") (call_expression "NAN(dVar18)" (identifier "NAN") (argument_list "(dVar18)" (( "(") (identifier "dVar18") () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))))) (if_statement "if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;" (if "if") (parenthesized_expression "(*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18))" (( "(") (binary_expression "*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)" (pointer_expression "*(double *)(unaff_EBP + 0x1cafca)" (* "*") (cast_expression "(double *)(unaff_EBP + 0x1cafca)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1cafca)" (( "(") (binary_expression "unaff_EBP + 0x1cafca" (identifier "unaff_EBP") (+ "+") (number_literal "0x1cafca")) () ")")))) (<= "<=") (call_expression "ABS(dVar4 - dVar18)" (identifier "ABS") (argument_list "(dVar4 - dVar18)" (( "(") (binary_expression "dVar4 - dVar18" (identifier "dVar4") (- "-") (identifier "dVar18")) () ")")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar10 == iVar12) goto LAB_0011462a;" (if "if") (parenthesized_expression "(iVar10 == iVar12)" (( "(") (binary_expression "iVar10 == iVar12" (identifier "iVar10") (== "==") (identifier "iVar12")) () ")")) (goto_statement "goto LAB_0011462a;" (goto "goto") (statement_identifier "LAB_0011462a") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }" (else "else") (compound_statement "{\n      if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);\n      dVar18 = fmod(local_5c,(double)fVar1);\n      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }\nLAB_001144d0:\n      uVar7 = puVar6[1];\n      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;\n      uVar9 = puVar6[2];\n      uVar14 = puVar6[5];\n      iVar12 = uVar9 * uVar7 + -1;\n      if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }\n      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n      puVar6[3] = (uVar7 - puVar6[3]) - 1;\n      puVar6[4] = (uVar9 - puVar6[4]) - 1;\n      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);\n      fmod(local_5c - (double)fVar2,(double)fVar1);\n      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);\n      *(double *)(puVar6 + 0xe) = dVar18;\n      uVar7 = puVar6[1];\n      if (puVar5[1] == uVar7) goto LAB_00114598;\n    }" ({ "{") (if_statement "if (*puVar6 < 0x25) {\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }" (if "if") (parenthesized_expression "(*puVar6 < 0x25)" (( "(") (binary_expression "*puVar6 < 0x25" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (< "<") (number_literal "0x25")) () ")")) (compound_statement "{\n                    \n                    \n        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();\n        return;\n      }" ({ "{") (expression_statement "(*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();" (call_expression "(*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))()" (parenthesized_expression "(*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))" (( "(") (pointer_expression "*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP)" (* "*") (cast_expression "(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP)" (( "(") (binary_expression "&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP" (binary_expression "&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4)" (pointer_expression "&UNK_00309cfa" (& "&") (identifier "UNK_00309cfa")) (+ "+") (pointer_expression "*(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4)" (* "*") (cast_expression "(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e70ce + *puVar6 * 4)" (( "(") (binary_expression "unaff_EBP + 0x1e70ce + *puVar6 * 4" (binary_expression "unaff_EBP + 0x1e70ce" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e70ce")) (+ "+") (binary_expression "*puVar6 * 4" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (* "*") (number_literal "4"))) () ")"))))) (+ "+") (identifier "unaff_EBP")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1cb5be);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1cb5be)" (identifier "fVar1") (= "=") (pointer_expression "*(float *)(unaff_EBP + 0x1cb5be)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1cb5be)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1cb5be)" (( "(") (binary_expression "unaff_EBP + 0x1cb5be" (identifier "unaff_EBP") (+ "+") (number_literal "0x1cb5be")) () ")"))))) (; ";")) (expression_statement "dVar18 = fmod(local_5c,(double)fVar1);" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" (identifier "dVar18") (= "=") (call_expression "fmod(local_5c,(double)fVar1)" (identifier "fmod") (argument_list "(local_5c,(double)fVar1)" (( "(") (identifier "local_5c") (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")")))) (; ";")) (if_statement "if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         ) {\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }" (if "if") (parenthesized_expression "(((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))\n         )" (( "(") (binary_expression "((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))" (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18)" (( "(") (binary_expression "(double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18" (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7ba6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1e7ba6)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1e7ba6)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e7ba6)" (( "(") (binary_expression "unaff_EBP + 0x1e7ba6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e7ba6")) () ")"))))) (< "<") (identifier "dVar18")) () ")")) (&& "&&") (parenthesized_expression "(dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))" (( "(") (comma_expression "dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6)" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" (identifier "dVar18") (= "=") (call_expression "fmod(local_5c,(double)fVar1)" (identifier "fmod") (argument_list "(local_5c,(double)fVar1)" (( "(") (identifier "local_5c") (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")")))) (, ",") (binary_expression "dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6)" (identifier "dVar18") (<= "<=") (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7bb6)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1e7bb6)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1e7bb6)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e7bb6)" (( "(") (binary_expression "unaff_EBP + 0x1e7bb6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e7bb6")) () ")"))))))) () ")"))) () ")")) (compound_statement "{\n        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }\n      }" ({ "{") (if_statement "if ((puVar6[1] == 3) && (puVar6[2] == 3)) {\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }\n        else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }" (if "if") (parenthesized_expression "((puVar6[1] == 3) && (puVar6[2] == 3))" (( "(") (binary_expression "(puVar6[1] == 3) && (puVar6[2] == 3)" (parenthesized_expression "(puVar6[1] == 3)" (( "(") (binary_expression "puVar6[1] == 3" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(puVar6[2] == 3)" (( "(") (binary_expression "puVar6[2] == 3" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n          puVar8 = (undefined8 *)puVar6[5];\n          uVar7 = puVar6[3];\n          uVar3 = *puVar8;\n          *puVar8 = puVar8[3];\n          puVar8[3] = puVar8[6];\n          puVar8[6] = puVar8[7];\n          puVar8[7] = puVar8[8];\n          puVar8[8] = puVar8[5];\n          puVar8[5] = puVar8[2];\n          puVar8[2] = puVar8[1];\n          puVar8[1] = uVar3;\n          uVar9 = puVar6[4];\n          if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }\n          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);\n          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);\n          *(double *)(puVar6 + 0xe) = dVar18;\n        }" ({ "{") (expression_statement "puVar8 = (undefined8 *)puVar6[5];" (assignment_expression "puVar8 = (undefined8 *)puVar6[5]" (identifier "puVar8") (= "=") (cast_expression "(undefined8 *)puVar6[5]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "uVar7 = puVar6[3];" (assignment_expression "uVar7 = puVar6[3]" (identifier "uVar7") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar3 = *puVar8;" (assignment_expression "uVar3 = *puVar8" (identifier "uVar3") (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "*puVar8 = puVar8[3];" (assignment_expression "*puVar8 = puVar8[3]" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar8[3] = puVar8[6];" (assignment_expression "puVar8[3] = puVar8[6]" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar8[6] = puVar8[7];" (assignment_expression "puVar8[6] = puVar8[7]" (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar8[7] = puVar8[8];" (assignment_expression "puVar8[7] = puVar8[8]" (subscript_expression "puVar8[7]" (identifier "puVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar8[8] = puVar8[5];" (assignment_expression "puVar8[8] = puVar8[5]" (subscript_expression "puVar8[8]" (identifier "puVar8") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar8[5] = puVar8[2];" (assignment_expression "puVar8[5] = puVar8[2]" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar8[2] = puVar8[1];" (assignment_expression "puVar8[2] = puVar8[1]" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar8[1] = uVar3;" (assignment_expression "puVar8[1] = uVar3" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "uVar9 = puVar6[4];" (assignment_expression "uVar9 = puVar6[4]" (identifier "uVar9") (= "=") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if (uVar7 == 1) {\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }\n          else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }" (if "if") (parenthesized_expression "(uVar7 == 1)" (( "(") (binary_expression "uVar7 == 1" (identifier "uVar7") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            iVar12 = 1 - uVar9;\n            if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }\n          }" ({ "{") (expression_statement "iVar12 = 1 - uVar9;" (assignment_expression "iVar12 = 1 - uVar9" (identifier "iVar12") (= "=") (binary_expression "1 - uVar9" (number_literal "1") (- "-") (identifier "uVar9"))) (; ";")) (if_statement "if (uVar9 != 1) {\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }" (if "if") (parenthesized_expression "(uVar9 != 1)" (( "(") (binary_expression "uVar9 != 1" (identifier "uVar9") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\nLAB_001149a8:\n              uVar14 = iVar12 + 1;\n              goto LAB_00114949;\n            }" ({ "{") (labeled_statement "LAB_001149a8:\n              uVar14 = iVar12 + 1;" (statement_identifier "LAB_001149a8") (: ":") (expression_statement "uVar14 = iVar12 + 1;" (assignment_expression "uVar14 = iVar12 + 1" (identifier "uVar14") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";"))) (goto_statement "goto LAB_00114949;" (goto "goto") (statement_identifier "LAB_00114949") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }" (else "else") (compound_statement "{\n            if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }\nLAB_00114949:\n            puVar6[3] = uVar14;\n            puVar6[4] = uVar9;\n          }" ({ "{") (if_statement "if (uVar7 - 1 == uVar9 - 1) {\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }\n            else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }" (if "if") (parenthesized_expression "(uVar7 - 1 == uVar9 - 1)" (( "(") (binary_expression "uVar7 - 1 == uVar9 - 1" (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1")) (== "==") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) () ")")) (compound_statement "{\n              uVar14 = 1;\n              uVar9 = uVar7;\n            }" ({ "{") (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" (identifier "uVar9") (= "=") (identifier "uVar7")) (; ";")) (} "}")) (else_clause "else {\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }" (else "else") (compound_statement "{\n              iVar12 = 1 - uVar9;\n              if (uVar7 == 1) goto LAB_001149a8;\n              uVar14 = uVar7;\n              if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }\n            }" ({ "{") (expression_statement "iVar12 = 1 - uVar9;" (assignment_expression "iVar12 = 1 - uVar9" (identifier "iVar12") (= "=") (binary_expression "1 - uVar9" (number_literal "1") (- "-") (identifier "uVar9"))) (; ";")) (if_statement "if (uVar7 == 1) goto LAB_001149a8;" (if "if") (parenthesized_expression "(uVar7 == 1)" (( "(") (binary_expression "uVar7 == 1" (identifier "uVar7") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_001149a8;" (goto "goto") (statement_identifier "LAB_001149a8") (; ";"))) (expression_statement "uVar14 = uVar7;" (assignment_expression "uVar14 = uVar7" (identifier "uVar14") (= "=") (identifier "uVar7")) (; ";")) (if_statement "if (uVar7 - 1 == iVar12) {\n                uVar9 = 1;\n              }\n              else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }" (if "if") (parenthesized_expression "(uVar7 - 1 == iVar12)" (( "(") (binary_expression "uVar7 - 1 == iVar12" (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1")) (== "==") (identifier "iVar12")) () ")")) (compound_statement "{\n                uVar9 = 1;\n              }" ({ "{") (expression_statement "uVar9 = 1;" (assignment_expression "uVar9 = 1" (identifier "uVar9") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }" (else "else") (if_statement "if (uVar9 == 1) {\n                uVar9 = uVar7;\n              }" (if "if") (parenthesized_expression "(uVar9 == 1)" (( "(") (binary_expression "uVar9 == 1" (identifier "uVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                uVar9 = uVar7;\n              }" ({ "{") (expression_statement "uVar9 = uVar7;" (assignment_expression "uVar9 = uVar7" (identifier "uVar9") (= "=") (identifier "uVar7")) (; ";")) (} "}"))))) (} "}")))) (labeled_statement "LAB_00114949:\n            puVar6[3] = uVar14;" (statement_identifier "LAB_00114949") (: ":") (expression_statement "puVar6[3] = uVar14;" (assignment_expression "puVar6[3] = uVar14" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar14")) (; ";"))) (expression_statement "puVar6[4] = uVar9;" (assignment_expression "puVar6[4] = uVar9" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (} "}")))) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e)" (identifier "fVar1") (= "=") (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" (( "(") (binary_expression "unaff_EBP + 0x1d3e4e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1d3e4e")) () ")"))))) (; ";")) (expression_statement "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);" (assignment_expression "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1)" (identifier "local_5c") (= "=") (call_expression "fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1)" (identifier "fmod") (argument_list "(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1)" (( "(") (binary_expression "local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2)" (identifier "local_5c") (+ "+") (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7bb2)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1e7bb2)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1e7bb2)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e7bb2)" (( "(") (binary_expression "unaff_EBP + 0x1e7bb2" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e7bb2")) () ")")))))) (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")")))) (; ";")) (expression_statement "dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1);" (assignment_expression "dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1)" (identifier "dVar18") (= "=") (call_expression "fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1)" (identifier "fmod") (argument_list "((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                ),(double)fVar1)" (( "(") (cast_expression "(double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                )" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)\n                                )" (( "(") (binary_expression "*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)" (pointer_expression "*(float *)(unaff_EBP + 0x1dd08e)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1dd08e)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1dd08e)" (( "(") (binary_expression "unaff_EBP + 0x1dd08e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1dd08e")) () ")")))) (+ "+") (cast_expression "(float)*(double *)(puVar6 + 0xe)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(puVar6 + 0xe)" (* "*") (cast_expression "(double *)(puVar6 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xe)" (( "(") (binary_expression "puVar6 + 0xe" (identifier "puVar6") (+ "+") (number_literal "0xe")) () ")")))))) () ")"))) (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")")))) (; ";")) (expression_statement "*(double *)(puVar6 + 0xe) = dVar18;" (assignment_expression "*(double *)(puVar6 + 0xe) = dVar18" (pointer_expression "*(double *)(puVar6 + 0xe)" (* "*") (cast_expression "(double *)(puVar6 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xe)" (( "(") (binary_expression "puVar6 + 0xe" (identifier "puVar6") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "dVar18")) (; ";")) (} "}")) (else_clause "else {\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }" (else "else") (compound_statement "{\n          perror((char *)(unaff_EBP + 0x1e694e));\n        }" ({ "{") (expression_statement "perror((char *)(unaff_EBP + 0x1e694e));" (call_expression "perror((char *)(unaff_EBP + 0x1e694e))" (identifier "perror") (argument_list "((char *)(unaff_EBP + 0x1e694e))" (( "(") (cast_expression "(char *)(unaff_EBP + 0x1e694e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e694e)" (( "(") (binary_expression "unaff_EBP + 0x1e694e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e694e")) () ")"))) () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1cb5c6)" (identifier "fVar1") (= "=") (pointer_expression "*(float *)(unaff_EBP + 0x1cb5c6)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1cb5c6)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1cb5c6)" (( "(") (binary_expression "unaff_EBP + 0x1cb5c6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1cb5c6")) () ")"))))) (; ";")) (expression_statement "dVar18 = fmod(local_5c,(double)fVar1);" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" (identifier "dVar18") (= "=") (call_expression "fmod(local_5c,(double)fVar1)" (identifier "fmod") (argument_list "(local_5c,(double)fVar1)" (( "(") (identifier "local_5c") (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")")))) (; ";")) (if_statement "if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         ) {\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }" (if "if") (parenthesized_expression "(((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))\n         )" (( "(") (binary_expression "((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&\n         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))" (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18)" (( "(") (binary_expression "(double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18" (cast_expression "(double)*(float *)(unaff_EBP + 0x1dd08e)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1dd08e)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1dd08e)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1dd08e)" (( "(") (binary_expression "unaff_EBP + 0x1dd08e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1dd08e")) () ")"))))) (< "<") (identifier "dVar18")) () ")")) (&& "&&") (parenthesized_expression "(dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))" (( "(") (comma_expression "dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa)" (assignment_expression "dVar18 = fmod(local_5c,(double)fVar1)" (identifier "dVar18") (= "=") (call_expression "fmod(local_5c,(double)fVar1)" (identifier "fmod") (argument_list "(local_5c,(double)fVar1)" (( "(") (identifier "local_5c") (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")")))) (, ",") (binary_expression "dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa)" (identifier "dVar18") (<= "<=") (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7baa)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1e7baa)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1e7baa)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e7baa)" (( "(") (binary_expression "unaff_EBP + 0x1e7baa" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e7baa")) () ")"))))))) () ")"))) () ")")) (compound_statement "{\n        uVar7 = puVar6[1];\n        uVar9 = puVar6[2];\n        if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }\n        local_54 = (double)fVar2;\n        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);\n        *(double *)(puVar6 + 0xe) = dVar18;\n      }" ({ "{") (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" (identifier "uVar7") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar9 = puVar6[2];" (assignment_expression "uVar9 = puVar6[2]" (identifier "uVar9") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (uVar7 == 1) {\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }\n        else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }" (if "if") (parenthesized_expression "(uVar7 == 1)" (( "(") (binary_expression "uVar7 == 1" (identifier "uVar7") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          puVar6[1] = uVar9;\n          uVar7 = puVar6[4];\n          puVar6[2] = 1;\n          puVar6[4] = puVar6[3];\n          puVar6[3] = uVar7;\n          if (uVar9 == 1) goto LAB_001147a7;\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1de206);\n        }" ({ "{") (expression_statement "puVar6[1] = uVar9;" (assignment_expression "puVar6[1] = uVar9" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "uVar7 = puVar6[4];" (assignment_expression "uVar7 = puVar6[4]" (identifier "uVar7") (= "=") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar6[2] = 1;" (assignment_expression "puVar6[2] = 1" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar6[4] = puVar6[3];" (assignment_expression "puVar6[4] = puVar6[3]" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar6[3] = uVar7;" (assignment_expression "puVar6[3] = uVar7" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (if_statement "if (uVar9 == 1) goto LAB_001147a7;" (if "if") (parenthesized_expression "(uVar9 == 1)" (( "(") (binary_expression "uVar9 == 1" (identifier "uVar9") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_001147a7;" (goto "goto") (statement_identifier "LAB_001147a7") (; ";"))) (expression_statement "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" (( "(") (binary_expression "unaff_EBP + 0x1d3e4e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1d3e4e")) () ")"))))) (; ";")) (expression_statement "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);" (assignment_expression "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2)" (identifier "local_5c") (= "=") (call_expression "fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2)" (identifier "fmod") (argument_list "(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2)" (( "(") (binary_expression "local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be)" (identifier "local_5c") (+ "+") (cast_expression "(double)*(float *)(unaff_EBP + 0x1cb5be)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1cb5be)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1cb5be)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1cb5be)" (( "(") (binary_expression "unaff_EBP + 0x1cb5be" (identifier "unaff_EBP") (+ "+") (number_literal "0x1cb5be")) () ")")))))) (, ",") (cast_expression "(double)fVar2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar2")) () ")")))) (; ";")) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1de206);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1de206)" (identifier "fVar1") (= "=") (pointer_expression "*(float *)(unaff_EBP + 0x1de206)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1de206)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1de206)" (( "(") (binary_expression "unaff_EBP + 0x1de206" (identifier "unaff_EBP") (+ "+") (number_literal "0x1de206")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }" (else "else") (compound_statement "{\n          if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }\nLAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);\n          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);\n          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);\n        }" ({ "{") (if_statement "if (uVar9 == 1) {\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }\n          else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }" (if "if") (parenthesized_expression "(uVar9 == 1)" (( "(") (binary_expression "uVar9 == 1" (identifier "uVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            puVar6[2] = uVar7;\n            uVar7 = puVar6[3];\n            puVar6[1] = 1;\n            puVar6[3] = puVar6[4];\n            puVar6[4] = uVar7;\n          }" ({ "{") (expression_statement "puVar6[2] = uVar7;" (assignment_expression "puVar6[2] = uVar7" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "uVar7 = puVar6[3];" (assignment_expression "uVar7 = puVar6[3]" (identifier "uVar7") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar6[1] = 1;" (assignment_expression "puVar6[1] = 1" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar6[3] = puVar6[4];" (assignment_expression "puVar6[3] = puVar6[4]" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar6[4] = uVar7;" (assignment_expression "puVar6[4] = uVar7" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (} "}")) (else_clause "else {\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }" (else "else") (compound_statement "{\n            if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }\n            local_34 = (undefined8 *)puVar6[5];\n            iVar12 = uVar7 - 1;\n            if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }\n            uVar14 = puVar6[3];\n            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;\n            puVar6[4] = (int)(uVar14 * 2) / 2;\n          }" ({ "{") (if_statement "if (uVar7 != uVar9) {\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }" (if "if") (parenthesized_expression "(uVar7 != uVar9)" (( "(") (binary_expression "uVar7 != uVar9" (identifier "uVar7") (!= "!=") (identifier "uVar9")) () ")")) (compound_statement "{\n              perror((char *)(unaff_EBP + 0x1e697e));\n              goto LAB_001144d0;\n            }" ({ "{") (expression_statement "perror((char *)(unaff_EBP + 0x1e697e));" (call_expression "perror((char *)(unaff_EBP + 0x1e697e))" (identifier "perror") (argument_list "((char *)(unaff_EBP + 0x1e697e))" (( "(") (cast_expression "(char *)(unaff_EBP + 0x1e697e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e697e)" (( "(") (binary_expression "unaff_EBP + 0x1e697e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e697e")) () ")"))) () ")"))) (; ";")) (goto_statement "goto LAB_001144d0;" (goto "goto") (statement_identifier "LAB_001144d0") (; ";")) (} "}"))) (expression_statement "local_34 = (undefined8 *)puVar6[5];" (assignment_expression "local_34 = (undefined8 *)puVar6[5]" (identifier "local_34") (= "=") (cast_expression "(undefined8 *)puVar6[5]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "iVar12 = uVar7 - 1;" (assignment_expression "iVar12 = uVar7 - 1" (identifier "iVar12") (= "=") (binary_expression "uVar7 - 1" (identifier "uVar7") (- "-") (number_literal "1"))) (; ";")) (if_statement "if ((-1 < iVar12) && (1 < (int)uVar7)) {\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }" (if "if") (parenthesized_expression "((-1 < iVar12) && (1 < (int)uVar7))" (( "(") (binary_expression "(-1 < iVar12) && (1 < (int)uVar7)" (parenthesized_expression "(-1 < iVar12)" (( "(") (binary_expression "-1 < iVar12" (number_literal "-1") (< "<") (identifier "iVar12")) () ")")) (&& "&&") (parenthesized_expression "(1 < (int)uVar7)" (( "(") (binary_expression "1 < (int)uVar7" (number_literal "1") (< "<") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7"))) () ")"))) () ")")) (compound_statement "{\n              local_40 = 0;\n              local_38 = local_34 + uVar7 * uVar7 + -1;\n              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);\n              local_3c = local_34;\n              do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);\n            }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = local_34 + uVar7 * uVar7 + -1;" (assignment_expression "local_38 = local_34 + uVar7 * uVar7 + -1" (identifier "local_38") (= "=") (binary_expression "local_34 + uVar7 * uVar7 + -1" (binary_expression "local_34 + uVar7 * uVar7" (identifier "local_34") (+ "+") (binary_expression "uVar7 * uVar7" (identifier "uVar7") (* "*") (identifier "uVar7"))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);" (assignment_expression "puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34)" (identifier "puVar8") (= "=") (cast_expression "(undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 * uVar7 * 8 + (int)local_34)" (( "(") (binary_expression "iVar12 * uVar7 * 8 + (int)local_34" (binary_expression "iVar12 * uVar7 * 8" (binary_expression "iVar12 * uVar7" (identifier "iVar12") (* "*") (identifier "uVar7")) (* "*") (number_literal "8")) (+ "+") (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34"))) () ")")))) (; ";")) (expression_statement "local_3c = local_34;" (assignment_expression "local_3c = local_34" (identifier "local_3c") (= "=") (identifier "local_34")) (; ";")) (do_statement "do {\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              } while (local_40 <= iVar12 - local_40);" (do "do") (compound_statement "{\n                local_3c = local_3c + uVar7;\n                iVar10 = 0;\n                puVar11 = local_38;\n                puVar13 = local_34;\n                puVar15 = local_3c;\n                do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);\n                local_40 = local_40 + 1;\n                local_34 = local_34 + 1;\n                local_38 = local_38 + -1;\n                puVar8 = puVar8 + -uVar7;\n              }" ({ "{") (expression_statement "local_3c = local_3c + uVar7;" (assignment_expression "local_3c = local_3c + uVar7" (identifier "local_3c") (= "=") (binary_expression "local_3c + uVar7" (identifier "local_3c") (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar11 = local_38;" (assignment_expression "puVar11 = local_38" (identifier "puVar11") (= "=") (identifier "local_38")) (; ";")) (expression_statement "puVar13 = local_34;" (assignment_expression "puVar13 = local_34" (identifier "puVar13") (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar15 = local_3c;" (assignment_expression "puVar15 = local_3c" (identifier "puVar15") (= "=") (identifier "local_3c")) (; ";")) (do_statement "do {\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                } while (iVar10 < iVar12 - iVar10);" (do "do") (compound_statement "{\n                  puVar15 = puVar15 + -1;\n                  uVar3 = *puVar13;\n                  *puVar13 = puVar8[iVar10];\n                  puVar8[iVar10] = *puVar11;\n                  iVar10 = iVar10 + 1;\n                  *puVar11 = *puVar15;\n                  puVar13 = puVar13 + uVar7;\n                  *puVar15 = uVar3;\n                  puVar11 = puVar11 + -uVar7;\n                }" ({ "{") (expression_statement "puVar15 = puVar15 + -1;" (assignment_expression "puVar15 = puVar15 + -1" (identifier "puVar15") (= "=") (binary_expression "puVar15 + -1" (identifier "puVar15") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar3 = *puVar13;" (assignment_expression "uVar3 = *puVar13" (identifier "uVar3") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "*puVar13 = puVar8[iVar10];" (assignment_expression "*puVar13 = puVar8[iVar10]" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (subscript_expression "puVar8[iVar10]" (identifier "puVar8") ([ "[") (identifier "iVar10") (] "]"))) (; ";")) (expression_statement "puVar8[iVar10] = *puVar11;" (assignment_expression "puVar8[iVar10] = *puVar11" (subscript_expression "puVar8[iVar10]" (identifier "puVar8") ([ "[") (identifier "iVar10") (] "]")) (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar11 = *puVar15;" (assignment_expression "*puVar11 = *puVar15" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "puVar13 = puVar13 + uVar7;" (assignment_expression "puVar13 = puVar13 + uVar7" (identifier "puVar13") (= "=") (binary_expression "puVar13 + uVar7" (identifier "puVar13") (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "*puVar15 = uVar3;" (assignment_expression "*puVar15 = uVar3" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "puVar11 = puVar11 + -uVar7;" (assignment_expression "puVar11 = puVar11 + -uVar7" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -uVar7" (identifier "puVar11") (+ "+") (unary_expression "-uVar7" (- "-") (identifier "uVar7")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 < iVar12 - iVar10)" (( "(") (binary_expression "iVar10 < iVar12 - iVar10" (identifier "iVar10") (< "<") (binary_expression "iVar12 - iVar10" (identifier "iVar12") (- "-") (identifier "iVar10"))) () ")")) (; ";")) (expression_statement "local_40 = local_40 + 1;" (assignment_expression "local_40 = local_40 + 1" (identifier "local_40") (= "=") (binary_expression "local_40 + 1" (identifier "local_40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_34 = local_34 + 1;" (assignment_expression "local_34 = local_34 + 1" (identifier "local_34") (= "=") (binary_expression "local_34 + 1" (identifier "local_34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_38 = local_38 + -1;" (assignment_expression "local_38 = local_38 + -1" (identifier "local_38") (= "=") (binary_expression "local_38 + -1" (identifier "local_38") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar8 = puVar8 + -uVar7;" (assignment_expression "puVar8 = puVar8 + -uVar7" (identifier "puVar8") (= "=") (binary_expression "puVar8 + -uVar7" (identifier "puVar8") (+ "+") (unary_expression "-uVar7" (- "-") (identifier "uVar7")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_40 <= iVar12 - local_40)" (( "(") (binary_expression "local_40 <= iVar12 - local_40" (identifier "local_40") (<= "<=") (binary_expression "iVar12 - local_40" (identifier "iVar12") (- "-") (identifier "local_40"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar14 = puVar6[3];" (assignment_expression "uVar14 = puVar6[3]" (identifier "uVar14") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;" (assignment_expression "puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2" (cast_expression "(int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1)" (( "(") (binary_expression "(uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1" (parenthesized_expression "(uVar7 - ((1 - uVar9) + puVar6[4] * 2))" (( "(") (binary_expression "uVar7 - ((1 - uVar9) + puVar6[4] * 2)" (identifier "uVar7") (- "-") (parenthesized_expression "((1 - uVar9) + puVar6[4] * 2)" (( "(") (binary_expression "(1 - uVar9) + puVar6[4] * 2" (parenthesized_expression "(1 - uVar9)" (( "(") (binary_expression "1 - uVar9" (number_literal "1") (- "-") (identifier "uVar9")) () ")")) (+ "+") (binary_expression "puVar6[4] * 2" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (* "*") (number_literal "2"))) () ")"))) () ")")) (+ "+") (number_literal "-1")) () ")"))) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "puVar6[4] = (int)(uVar14 * 2) / 2;" (assignment_expression "puVar6[4] = (int)(uVar14 * 2) / 2" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(int)(uVar14 * 2) / 2" (cast_expression "(int)(uVar14 * 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar14 * 2)" (( "(") (binary_expression "uVar14 * 2" (identifier "uVar14") (* "*") (number_literal "2")) () ")"))) (/ "/") (number_literal "2"))) (; ";")) (} "}")))) (labeled_statement "LAB_001147a7:\n          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);" (statement_identifier "LAB_001147a7") (: ":") (expression_statement "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar2 = *(float *)(unaff_EBP + 0x1d3e4e)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" (( "(") (binary_expression "unaff_EBP + 0x1d3e4e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1d3e4e")) () ")"))))) (; ";"))) (expression_statement "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);" (assignment_expression "local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2)" (identifier "local_5c") (= "=") (call_expression "fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2)" (identifier "fmod") (argument_list "(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2)" (( "(") (binary_expression "local_5c + (double)*(float *)(unaff_EBP + 0x1de206)" (identifier "local_5c") (+ "+") (cast_expression "(double)*(float *)(unaff_EBP + 0x1de206)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1de206)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1de206)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1de206)" (( "(") (binary_expression "unaff_EBP + 0x1de206" (identifier "unaff_EBP") (+ "+") (number_literal "0x1de206")) () ")")))))) (, ",") (cast_expression "(double)fVar2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar2")) () ")")))) (; ";")) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1cb5be);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1cb5be)" (identifier "fVar1") (= "=") (pointer_expression "*(float *)(unaff_EBP + 0x1cb5be)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1cb5be)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1cb5be)" (( "(") (binary_expression "unaff_EBP + 0x1cb5be" (identifier "unaff_EBP") (+ "+") (number_literal "0x1cb5be")) () ")"))))) (; ";")) (} "}")))) (expression_statement "local_54 = (double)fVar2;" (assignment_expression "local_54 = (double)fVar2" (identifier "local_54") (= "=") (cast_expression "(double)fVar2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar2"))) (; ";")) (expression_statement "dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);" (assignment_expression "dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54)" (identifier "dVar18") (= "=") (call_expression "fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54)" (identifier "fmod") (argument_list "((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54)" (( "(") (cast_expression "(double)(fVar1 + (float)*(double *)(puVar6 + 0xe))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(fVar1 + (float)*(double *)(puVar6 + 0xe))" (( "(") (binary_expression "fVar1 + (float)*(double *)(puVar6 + 0xe)" (identifier "fVar1") (+ "+") (cast_expression "(float)*(double *)(puVar6 + 0xe)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(puVar6 + 0xe)" (* "*") (cast_expression "(double *)(puVar6 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xe)" (( "(") (binary_expression "puVar6 + 0xe" (identifier "puVar6") (+ "+") (number_literal "0xe")) () ")")))))) () ")"))) (, ",") (identifier "local_54") () ")")))) (; ";")) (expression_statement "*(double *)(puVar6 + 0xe) = dVar18;" (assignment_expression "*(double *)(puVar6 + 0xe) = dVar18" (pointer_expression "*(double *)(puVar6 + 0xe)" (* "*") (cast_expression "(double *)(puVar6 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xe)" (( "(") (binary_expression "puVar6 + 0xe" (identifier "puVar6") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "dVar18")) (; ";")) (} "}"))) (labeled_statement "LAB_001144d0:\n      uVar7 = puVar6[1];" (statement_identifier "LAB_001144d0") (: ":") (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" (identifier "uVar7") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (if_statement "if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;" (if "if") (parenthesized_expression "((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c))" (( "(") (binary_expression "(local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||\n         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)" (parenthesized_expression "(local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa))" (( "(") (binary_expression "local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)" (identifier "local_5c") (<= "<=") (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7baa)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1e7baa)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1e7baa)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e7baa)" (( "(") (binary_expression "unaff_EBP + 0x1e7baa" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e7baa")) () ")")))))) () ")")) (|| "||") (parenthesized_expression "((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)" (( "(") (binary_expression "(double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c" (cast_expression "(double)*(float *)(unaff_EBP + 0x1e7bae)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (pointer_expression "*(float *)(unaff_EBP + 0x1e7bae)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1e7bae)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1e7bae)" (( "(") (binary_expression "unaff_EBP + 0x1e7bae" (identifier "unaff_EBP") (+ "+") (number_literal "0x1e7bae")) () ")"))))) (< "<") (identifier "local_5c")) () ")"))) () ")")) (goto_statement "goto LAB_00114400;" (goto "goto") (statement_identifier "LAB_00114400") (; ";"))) (expression_statement "uVar9 = puVar6[2];" (assignment_expression "uVar9 = puVar6[2]" (identifier "uVar9") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar14 = puVar6[5];" (assignment_expression "uVar14 = puVar6[5]" (identifier "uVar14") (= "=") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar12 = uVar9 * uVar7 + -1;" (assignment_expression "iVar12 = uVar9 * uVar7 + -1" (identifier "iVar12") (= "=") (binary_expression "uVar9 * uVar7 + -1" (binary_expression "uVar9 * uVar7" (identifier "uVar9") (* "*") (identifier "uVar7")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (0 < iVar12) {\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }" (if "if") (parenthesized_expression "(0 < iVar12)" (( "(") (binary_expression "0 < iVar12" (number_literal "0") (< "<") (identifier "iVar12")) () ")")) (compound_statement "{\n        iVar10 = 0;\n        do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);\n      }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        } while (iVar10 < iVar12);" (do "do") (compound_statement "{\n          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);\n          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);\n          iVar10 = iVar10 + 1;\n          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;\n          iVar12 = iVar12 + -1;\n        }" ({ "{") (expression_statement "uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);" (assignment_expression "uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined8 *)(uVar14 + iVar10 * 8)" (* "*") (cast_expression "(undefined8 *)(uVar14 + iVar10 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar14 + iVar10 * 8)" (( "(") (binary_expression "uVar14 + iVar10 * 8" (identifier "uVar14") (+ "+") (binary_expression "iVar10 * 8" (identifier "iVar10") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);" (assignment_expression "*(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8)" (pointer_expression "*(undefined8 *)(uVar14 + iVar10 * 8)" (* "*") (cast_expression "(undefined8 *)(uVar14 + iVar10 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar14 + iVar10 * 8)" (( "(") (binary_expression "uVar14 + iVar10 * 8" (identifier "uVar14") (+ "+") (binary_expression "iVar10 * 8" (identifier "iVar10") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(uVar14 + iVar12 * 8)" (* "*") (cast_expression "(undefined8 *)(uVar14 + iVar12 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar14 + iVar12 * 8)" (( "(") (binary_expression "uVar14 + iVar12 * 8" (identifier "uVar14") (+ "+") (binary_expression "iVar12 * 8" (identifier "iVar12") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;" (assignment_expression "*(undefined8 *)(uVar14 + iVar12 * 8) = uVar3" (pointer_expression "*(undefined8 *)(uVar14 + iVar12 * 8)" (* "*") (cast_expression "(undefined8 *)(uVar14 + iVar12 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar14 + iVar12 * 8)" (( "(") (binary_expression "uVar14 + iVar12 * 8" (identifier "uVar14") (+ "+") (binary_expression "iVar12 * 8" (identifier "iVar12") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar10 < iVar12)" (( "(") (binary_expression "iVar10 < iVar12" (identifier "iVar10") (< "<") (identifier "iVar12")) () ")")) (; ";")) (} "}"))) (expression_statement "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);" (assignment_expression "fVar1 = *(float *)(unaff_EBP + 0x1d3e4e)" (identifier "fVar1") (= "=") (pointer_expression "*(float *)(unaff_EBP + 0x1d3e4e)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1d3e4e)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1d3e4e)" (( "(") (binary_expression "unaff_EBP + 0x1d3e4e" (identifier "unaff_EBP") (+ "+") (number_literal "0x1d3e4e")) () ")"))))) (; ";")) (expression_statement "puVar6[3] = (uVar7 - puVar6[3]) - 1;" (assignment_expression "puVar6[3] = (uVar7 - puVar6[3]) - 1" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(uVar7 - puVar6[3]) - 1" (parenthesized_expression "(uVar7 - puVar6[3])" (( "(") (binary_expression "uVar7 - puVar6[3]" (identifier "uVar7") (- "-") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) () ")")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "puVar6[4] = (uVar9 - puVar6[4]) - 1;" (assignment_expression "puVar6[4] = (uVar9 - puVar6[4]) - 1" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(uVar9 - puVar6[4]) - 1" (parenthesized_expression "(uVar9 - puVar6[4])" (( "(") (binary_expression "uVar9 - puVar6[4]" (identifier "uVar9") (- "-") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]"))) () ")")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);" (assignment_expression "fVar2 = *(float *)(unaff_EBP + 0x1cb5c6)" (identifier "fVar2") (= "=") (pointer_expression "*(float *)(unaff_EBP + 0x1cb5c6)" (* "*") (cast_expression "(float *)(unaff_EBP + 0x1cb5c6)" (( "(") (type_descriptor "float *" (primitive_type "float") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x1cb5c6)" (( "(") (binary_expression "unaff_EBP + 0x1cb5c6" (identifier "unaff_EBP") (+ "+") (number_literal "0x1cb5c6")) () ")"))))) (; ";")) (expression_statement "fmod(local_5c - (double)fVar2,(double)fVar1);" (call_expression "fmod(local_5c - (double)fVar2,(double)fVar1)" (identifier "fmod") (argument_list "(local_5c - (double)fVar2,(double)fVar1)" (( "(") (binary_expression "local_5c - (double)fVar2" (identifier "local_5c") (- "-") (cast_expression "(double)fVar2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar2"))) (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")"))) (; ";")) (expression_statement "dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);" (assignment_expression "dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1)" (identifier "dVar18") (= "=") (call_expression "fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1)" (identifier "fmod") (argument_list "((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1)" (( "(") (binary_expression "(double)fVar2 + *(double *)(puVar6 + 0xe)" (cast_expression "(double)fVar2" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar2")) (+ "+") (pointer_expression "*(double *)(puVar6 + 0xe)" (* "*") (cast_expression "(double *)(puVar6 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xe)" (( "(") (binary_expression "puVar6 + 0xe" (identifier "puVar6") (+ "+") (number_literal "0xe")) () ")"))))) (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")")))) (; ";")) (expression_statement "*(double *)(puVar6 + 0xe) = dVar18;" (assignment_expression "*(double *)(puVar6 + 0xe) = dVar18" (pointer_expression "*(double *)(puVar6 + 0xe)" (* "*") (cast_expression "(double *)(puVar6 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 0xe)" (( "(") (binary_expression "puVar6 + 0xe" (identifier "puVar6") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "dVar18")) (; ";")) (expression_statement "uVar7 = puVar6[1];" (assignment_expression "uVar7 = puVar6[1]" (identifier "uVar7") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (puVar5[1] == uVar7) goto LAB_00114598;" (if "if") (parenthesized_expression "(puVar5[1] == uVar7)" (( "(") (binary_expression "puVar5[1] == uVar7" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "uVar7")) () ")")) (goto_statement "goto LAB_00114598;" (goto "goto") (statement_identifier "LAB_00114598") (; ";"))) (} "}")))) (do_statement "do {\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    } while (puVar16 != (uint *)0x0);" (do "do") (compound_statement "{\n      puVar17 = puVar16;\n      puVar16 = (uint *)puVar17[0x10];\n    }" ({ "{") (expression_statement "puVar17 = puVar16;" (assignment_expression "puVar17 = puVar16" (identifier "puVar17") (= "=") (identifier "puVar16")) (; ";")) (expression_statement "puVar16 = (uint *)puVar17[0x10];" (assignment_expression "puVar16 = (uint *)puVar17[0x10]" (identifier "puVar16") (= "=") (cast_expression "(uint *)puVar17[0x10]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar17[0x10]" (identifier "puVar17") ([ "[") (number_literal "0x10") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar16 != (uint *)0x0)" (( "(") (binary_expression "puVar16 != (uint *)0x0" (identifier "puVar16") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "puVar17[0x10] = (uint)puVar6;" (assignment_expression "puVar17[0x10] = (uint)puVar6" (subscript_expression "puVar17[0x10]" (identifier "puVar17") ([ "[") (number_literal "0x10") (] "]")) (= "=") (cast_expression "(uint)puVar6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar6"))) (; ";")) (expression_statement "puVar16 = puVar6;" (assignment_expression "puVar16 = puVar6" (identifier "puVar16") (= "=") (identifier "puVar6")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void __regparm1 function_1(type_1 *kernel,double angle)

{
  float fVar1;
  type_2 MVar2;
  size_t var_18;
  ssize_t sVar4;
  float var_27;
  type_1 *last;
  type_1 *var_2;
  size_t var_7;
  type_2 *var_26;
  int var_13;
  type_2 *var_23;
  int var_8;
  type_2 *var_22;
  int iVar12;
  type_2 *var_21;
  int var_15;
  type_3 *var_28;
  type_1 *pKVar15;
  double var_14;
  double var_6;
  double var_5;
  double local_54;
  int var_24;
  type_2 *var_20;
  type_2 *var_25;
  type_2 *var_19;
  
  var_28 = kernel;
  do {
    var_2 = var_1(var_28);
    if (var_2 == (type_1 *)0x0) {
      return;
    }
    if (var_2->next != (type_1 *)0x0) {
      var_3(var_2->next,angle);
    }
    var_6 = (double)DAT_002e8154;
    var_5 = var_4(angle,(double)DAT_002e8154);
    if (var_5 < 0.0) {
      var_5 = var_5 + var_6;
    }
    if (((double)DAT_002fbea8 < var_5) || (var_5 <= (double)DAT_002fbeac)) {
LAB_001143e8:
      var_7 = var_2->width;
LAB_00114400:
      if (kernel->width == var_7) {
LAB_00114598:
        if (((kernel->height == var_2->height) && (kernel->x == var_2->x)) &&
           (kernel->y == var_2->y)) {
          var_8 = var_7 * kernel->height;
          if (var_8 == 0) {
LAB_0011462a:
            var_9(var_2);
            return;
          }
          var_13 = 0;
          do {
            var_6 = var_2->values[var_13];
            if (var_10(kernel->values[var_13])) {
              if (!var_10(var_6)) break;
            }
            else if (var_10(var_6)) break;
            if (var_11 <= var_12(kernel->values[var_13] - var_6)) break;
            var_13 = var_13 + 1;
            if (var_13 == var_8) goto LAB_0011462a;
          } while( true );
        }
      }
    }
    else {
      switch(var_2->type) {
      case GaussianKernel:
      case DoGKernel:
      case LoGKernel:
      case LaplacianKernel:
      case DiamondKernel:
      case SquareKernel:
      case DiskKernel:
      case PlusKernel:
      case CrossKernel:
      case PeaksKernel:
      case ChebyshevKernel:
      case ManhattanKernel:
      case EuclideanKernel:
        goto LAB_001143e8;
      case BlurKernel:
        if (((double)DAT_002fbeb0 < var_5) && (var_5 <= (double)DAT_002fbeb4))
        goto LAB_001143e8;
        if (((double)DAT_002fbeb4 < var_5) && (var_5 <= (double)DAT_002fbeb8)) {
          var_5 = var_5 - (double)DAT_002df8cc;
        }
      }
      var_6 = (double)DAT_002df8c4;
      var_14 = var_4(var_5,(double)DAT_002df8c4);
      if (((double)DAT_002fbeac < var_14) &&
         (var_6 = var_4(var_5,var_6), var_6 <= (double)DAT_002fbebc)) {
        if ((var_2->width == 3) && (var_2->height == 3)) {
          var_26 = var_2->values;
          var_8 = var_2->x;
          MVar2 = *var_26;
          *var_26 = var_26[3];
          var_26[3] = var_26[6];
          var_26[6] = var_26[7];
          var_26[7] = var_26[8];
          var_26[8] = var_26[5];
          var_26[5] = var_26[2];
          var_26[2] = var_26[1];
          var_26[1] = MVar2;
          var_13 = var_2->y;
          if (var_8 == 1) {
            var_15 = 1 - var_13;
            if (var_13 != 1) {
LAB_001149a8:
              iVar12 = var_15 + 1;
              goto LAB_00114949;
            }
          }
          else {
            if (var_8 + -1 == var_13 + -1) {
              iVar12 = 1;
              var_13 = var_8;
            }
            else {
              var_15 = 1 - var_13;
              if (var_8 == 1) goto LAB_001149a8;
              iVar12 = var_8;
              if (var_8 + -1 == var_15) {
                var_13 = 1;
              }
              else if (var_13 == 1) {
                var_13 = var_8;
              }
            }
LAB_00114949:
            var_2->x = iVar12;
            var_2->y = var_13;
          }
          var_6 = (double)DAT_002e8154;
          var_5 = var_4(var_5 + (double)DAT_002fbeb8,(double)DAT_002e8154);
          var_6 = var_4((double)(var_16 + (float)var_2->angle),var_6);
          var_2->angle = var_6;
        }
        else {
          var_17("Unable to rotate non-3x3 kernel by 45 degrees");
        }
      }
      var_6 = (double)DAT_002df8cc;
      var_14 = var_4(var_5,(double)DAT_002df8cc);
      if (((double)var_16 < var_14) &&
         (var_6 = var_4(var_5,var_6), var_6 <= (double)DAT_002fbeb0)) {
        var_7 = var_2->width;
        var_18 = var_2->height;
        if (var_7 == 1) {
          var_2->width = var_18;
          sVar4 = var_2->y;
          var_2->height = 1;
          var_2->y = var_2->x;
          var_2->x = sVar4;
          fVar1 = DAT_002e8154;
          if (var_18 == 1) goto LAB_001147a7;
          var_5 = var_4(var_5 + (double)DAT_002df8c4,(double)DAT_002e8154);
          var_27 = _DAT_002f250c;
        }
        else {
          if (var_18 == 1) {
            var_2->height = var_7;
            sVar4 = var_2->x;
            var_2->width = 1;
            var_2->x = var_2->y;
            var_2->y = sVar4;
          }
          else {
            if (var_7 != var_18) {
              var_17("Unable to rotate a non-square, non-linear kernel 90 degrees");
              goto LAB_001144d0;
            }
            var_19 = var_2->values;
            var_8 = var_7 - 1;
            if ((-1 < var_8) && (1 < (int)var_7)) {
              var_24 = 0;
              var_25 = var_19 + var_7 * var_7 + -1;
              var_26 = (type_2 *)(var_8 * var_7 * 8 + (int)var_19);
              var_20 = var_19;
              do {
                var_20 = var_20 + var_7;
                var_13 = 0;
                var_23 = var_25;
                var_22 = var_19;
                var_21 = var_20;
                do {
                  var_21 = var_21 + -1;
                  MVar2 = *var_22;
                  *var_22 = var_26[var_13];
                  var_26[var_13] = *var_23;
                  var_13 = var_13 + 1;
                  *var_23 = *var_21;
                  var_22 = var_22 + var_7;
                  *var_21 = MVar2;
                  var_23 = var_23 + -var_7;
                } while (var_13 < var_8 - var_13);
                var_24 = var_24 + 1;
                var_19 = var_19 + 1;
                var_25 = var_25 + -1;
                var_26 = var_26 + -var_7;
              } while (var_24 <= var_8 - var_24);
            }
            var_8 = var_2->x;
            var_2->x = (int)((var_7 - ((1 - var_18) + var_2->y * 2)) + -1) / 2;
            var_2->y = (var_8 * 2) / 2;
          }
LAB_001147a7:
          fVar1 = DAT_002e8154;
          var_5 = var_4(var_5 + (double)_DAT_002f250c,(double)DAT_002e8154);
          var_27 = DAT_002df8c4;
        }
        local_54 = (double)fVar1;
        var_6 = var_4((double)(var_27 + (float)var_2->angle),local_54);
        var_2->angle = var_6;
      }
LAB_001144d0:
      var_7 = var_2->width;
      if ((var_5 <= (double)DAT_002fbeb0) || ((double)DAT_002fbeb4 < var_5))
      goto LAB_00114400;
      var_18 = var_2->height;
      var_26 = var_2->values;
      var_8 = var_18 * var_7 + -1;
      if (0 < var_8) {
        var_13 = 0;
        do {
          MVar2 = var_26[var_13];
          var_26[var_13] = var_26[var_8];
          var_13 = var_13 + 1;
          var_26[var_8] = MVar2;
          var_8 = var_8 + -1;
        } while (var_13 < var_8);
      }
      fVar1 = DAT_002e8154;
      var_2->x = (var_7 - var_2->x) + -1;
      var_2->y = (var_18 - var_2->y) + -1;
      var_6 = (double)DAT_002df8cc;
      var_4(var_5 - var_6,(double)fVar1);
      var_6 = var_4(var_6 + var_2->angle,(double)fVar1);
      var_2->angle = var_6;
      var_7 = var_2->width;
      if (kernel->width == var_7) goto LAB_00114598;
    }
    do {
      pKVar15 = var_28;
      var_28 = pKVar15->next;
    } while (var_28 != (type_3 *)0x0);
    pKVar15->next = var_2;
    var_28 = var_2;
  } while( true );
}


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

void MASKED(double param_1)

{
  float fVar1;
  float fVar2;
  undefined8 uVar3;
  double dVar4;
  uint *puVar5;
  uint *puVar6;
  uint uVar7;
  undefined8 *puVar8;
  uint uVar9;
  int iVar10;
  undefined8 *puVar11;
  int iVar12;
  undefined8 *puVar13;
  uint uVar14;
  undefined8 *puVar15;
  int unaff_EBP;
  uint *puVar16;
  uint *puVar17;
  double dVar18;
  undefined4 local_64;
  double local_5c;
  double local_54;
  int local_40;
  undefined8 *local_3c;
  undefined8 *local_38;
  undefined8 *local_34;
  
  puVar5 = (uint *)FUN_00045159();
  puVar16 = puVar5;
  do {
    puVar6 = (uint *)CloneKernelInfo(puVar16);
    if (puVar6 == (uint *)0x0) {
      return;
    }
    local_64 = SUB84(param_1,0);
    if (puVar6[0x10] != 0) {
      FUN_001120d0(local_64);
    }
    fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);
    local_5c = fmod(param_1,(double)fVar1);
    if (local_5c < 0.0) {
      local_5c = local_5c + (double)fVar1;
    }
    if (((double)*(float *)(unaff_EBP + 0x1e7ba2) < local_5c) ||
       (local_5c <= (double)*(float *)(unaff_EBP + 0x1e7ba6))) {
      uVar7 = puVar6[1];
LAB_00114400:
      if (puVar5[1] == uVar7) {
LAB_00114598:
        if (((puVar5[2] == puVar6[2]) && (puVar5[3] == puVar6[3])) && (puVar5[4] == puVar6[4])) {
          iVar12 = uVar7 * puVar5[2];
          if (iVar12 == 0) {
LAB_0011462a:
            DestroyKernelInfo(puVar6);
            return;
          }
          iVar10 = 0;
          do {
            dVar18 = *(double *)(puVar6[5] + iVar10 * 8);
            dVar4 = *(double *)(puVar5[5] + iVar10 * 8);
            if (NAN(dVar4)) {
              if (!NAN(dVar18)) break;
            }
            else if (NAN(dVar18)) break;
            if (*(double *)(unaff_EBP + 0x1cafca) <= ABS(dVar4 - dVar18)) break;
            iVar10 = iVar10 + 1;
            if (iVar10 == iVar12) goto LAB_0011462a;
          } while( true );
        }
      }
    }
    else {
      if (*puVar6 < 0x25) {
                    /* WARNING: Could not recover jumptable at 0x001143ab. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        (*(code *)(&UNK_00309cfa + *(int *)(unaff_EBP + 0x1e70ce + *puVar6 * 4) + unaff_EBP))();
        return;
      }
      fVar1 = *(float *)(unaff_EBP + 0x1cb5be);
      dVar18 = fmod(local_5c,(double)fVar1);
      if (((double)*(float *)(unaff_EBP + 0x1e7ba6) < dVar18) &&
         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7bb6))
         ) {
        if ((puVar6[1] == 3) && (puVar6[2] == 3)) {
          puVar8 = (undefined8 *)puVar6[5];
          uVar7 = puVar6[3];
          uVar3 = *puVar8;
          *puVar8 = puVar8[3];
          puVar8[3] = puVar8[6];
          puVar8[6] = puVar8[7];
          puVar8[7] = puVar8[8];
          puVar8[8] = puVar8[5];
          puVar8[5] = puVar8[2];
          puVar8[2] = puVar8[1];
          puVar8[1] = uVar3;
          uVar9 = puVar6[4];
          if (uVar7 == 1) {
            iVar12 = 1 - uVar9;
            if (uVar9 != 1) {
LAB_001149a8:
              uVar14 = iVar12 + 1;
              goto LAB_00114949;
            }
          }
          else {
            if (uVar7 - 1 == uVar9 - 1) {
              uVar14 = 1;
              uVar9 = uVar7;
            }
            else {
              iVar12 = 1 - uVar9;
              if (uVar7 == 1) goto LAB_001149a8;
              uVar14 = uVar7;
              if (uVar7 - 1 == iVar12) {
                uVar9 = 1;
              }
              else if (uVar9 == 1) {
                uVar9 = uVar7;
              }
            }
LAB_00114949:
            puVar6[3] = uVar14;
            puVar6[4] = uVar9;
          }
          fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);
          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1e7bb2),(double)fVar1);
          dVar18 = fmod((double)(*(float *)(unaff_EBP + 0x1dd08e) + (float)*(double *)(puVar6 + 0xe)
                                ),(double)fVar1);
          *(double *)(puVar6 + 0xe) = dVar18;
        }
        else {
          perror((char *)(unaff_EBP + 0x1e694e));
        }
      }
      fVar1 = *(float *)(unaff_EBP + 0x1cb5c6);
      dVar18 = fmod(local_5c,(double)fVar1);
      if (((double)*(float *)(unaff_EBP + 0x1dd08e) < dVar18) &&
         (dVar18 = fmod(local_5c,(double)fVar1), dVar18 <= (double)*(float *)(unaff_EBP + 0x1e7baa))
         ) {
        uVar7 = puVar6[1];
        uVar9 = puVar6[2];
        if (uVar7 == 1) {
          puVar6[1] = uVar9;
          uVar7 = puVar6[4];
          puVar6[2] = 1;
          puVar6[4] = puVar6[3];
          puVar6[3] = uVar7;
          if (uVar9 == 1) goto LAB_001147a7;
          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);
          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1cb5be),(double)fVar2);
          fVar1 = *(float *)(unaff_EBP + 0x1de206);
        }
        else {
          if (uVar9 == 1) {
            puVar6[2] = uVar7;
            uVar7 = puVar6[3];
            puVar6[1] = 1;
            puVar6[3] = puVar6[4];
            puVar6[4] = uVar7;
          }
          else {
            if (uVar7 != uVar9) {
              perror((char *)(unaff_EBP + 0x1e697e));
              goto LAB_001144d0;
            }
            local_34 = (undefined8 *)puVar6[5];
            iVar12 = uVar7 - 1;
            if ((-1 < iVar12) && (1 < (int)uVar7)) {
              local_40 = 0;
              local_38 = local_34 + uVar7 * uVar7 + -1;
              puVar8 = (undefined8 *)(iVar12 * uVar7 * 8 + (int)local_34);
              local_3c = local_34;
              do {
                local_3c = local_3c + uVar7;
                iVar10 = 0;
                puVar11 = local_38;
                puVar13 = local_34;
                puVar15 = local_3c;
                do {
                  puVar15 = puVar15 + -1;
                  uVar3 = *puVar13;
                  *puVar13 = puVar8[iVar10];
                  puVar8[iVar10] = *puVar11;
                  iVar10 = iVar10 + 1;
                  *puVar11 = *puVar15;
                  puVar13 = puVar13 + uVar7;
                  *puVar15 = uVar3;
                  puVar11 = puVar11 + -uVar7;
                } while (iVar10 < iVar12 - iVar10);
                local_40 = local_40 + 1;
                local_34 = local_34 + 1;
                local_38 = local_38 + -1;
                puVar8 = puVar8 + -uVar7;
              } while (local_40 <= iVar12 - local_40);
            }
            uVar14 = puVar6[3];
            puVar6[3] = (int)((uVar7 - ((1 - uVar9) + puVar6[4] * 2)) + -1) / 2;
            puVar6[4] = (int)(uVar14 * 2) / 2;
          }
LAB_001147a7:
          fVar2 = *(float *)(unaff_EBP + 0x1d3e4e);
          local_5c = fmod(local_5c + (double)*(float *)(unaff_EBP + 0x1de206),(double)fVar2);
          fVar1 = *(float *)(unaff_EBP + 0x1cb5be);
        }
        local_54 = (double)fVar2;
        dVar18 = fmod((double)(fVar1 + (float)*(double *)(puVar6 + 0xe)),local_54);
        *(double *)(puVar6 + 0xe) = dVar18;
      }
LAB_001144d0:
      uVar7 = puVar6[1];
      if ((local_5c <= (double)*(float *)(unaff_EBP + 0x1e7baa)) ||
         ((double)*(float *)(unaff_EBP + 0x1e7bae) < local_5c)) goto LAB_00114400;
      uVar9 = puVar6[2];
      uVar14 = puVar6[5];
      iVar12 = uVar9 * uVar7 + -1;
      if (0 < iVar12) {
        iVar10 = 0;
        do {
          uVar3 = *(undefined8 *)(uVar14 + iVar10 * 8);
          *(undefined8 *)(uVar14 + iVar10 * 8) = *(undefined8 *)(uVar14 + iVar12 * 8);
          iVar10 = iVar10 + 1;
          *(undefined8 *)(uVar14 + iVar12 * 8) = uVar3;
          iVar12 = iVar12 + -1;
        } while (iVar10 < iVar12);
      }
      fVar1 = *(float *)(unaff_EBP + 0x1d3e4e);
      puVar6[3] = (uVar7 - puVar6[3]) - 1;
      puVar6[4] = (uVar9 - puVar6[4]) - 1;
      fVar2 = *(float *)(unaff_EBP + 0x1cb5c6);
      fmod(local_5c - (double)fVar2,(double)fVar1);
      dVar18 = fmod((double)fVar2 + *(double *)(puVar6 + 0xe),(double)fVar1);
      *(double *)(puVar6 + 0xe) = dVar18;
      uVar7 = puVar6[1];
      if (puVar5[1] == uVar7) goto LAB_00114598;
    }
    do {
      puVar17 = puVar16;
      puVar16 = (uint *)puVar17[0x10];
    } while (puVar16 != (uint *)0x0);
    puVar17[0x10] = (uint)puVar6;
    puVar16 = puVar6;
  } while( true );
}

