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

void __regparm1 RotateKernelInfo(KernelInfo *kernel,double angle)

{
  int iVar1;
  MagickRealType MVar2;
  size_t sVar3;
  size_t sVar4;
  ssize_t sVar5;
  float fVar6;
  int iVar7;
  int iVar8;
  MagickRealType *pMVar9;
  MagickRealType *pMVar10;
  MagickRealType *pMVar11;
  int iVar12;
  MagickRealType *pMVar13;
  double __x;
  double dVar14;
  double dVar15;
  int local_3c;
  MagickRealType *local_38;
  MagickRealType *local_34;
  MagickRealType *local_30;
  
  if (kernel->next != (KernelInfo *)0x0) {
    RotateKernelInfo(kernel->next,angle);
  }
  dVar15 = (double)DAT_002e8154;
  __x = fmod(angle,(double)DAT_002e8154);
  if (__x < 0.0) {
    __x = __x + dVar15;
  }
  if ((double)DAT_002fbea8 < __x) {
    return;
  }
  if (__x <= (double)DAT_002fbeac) {
    return;
  }
  switch(kernel->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:
    return;
  case BlurKernel:
    if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {
      return;
    }
    if (((double)DAT_002fbeb4 < __x) && (__x <= (double)DAT_002fbeb8)) {
      __x = __x - (double)DAT_002df8cc;
    }
  }
  dVar15 = (double)DAT_002df8c4;
  dVar14 = fmod(__x,(double)DAT_002df8c4);
  if (((double)DAT_002fbeac < dVar14) && (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbebc)
     ) {
    if ((kernel->width == 3) && (kernel->height == 3)) {
      pMVar11 = kernel->values;
      iVar7 = kernel->x;
      iVar12 = kernel->y;
      MVar2 = *pMVar11;
      *pMVar11 = pMVar11[3];
      pMVar11[3] = pMVar11[6];
      pMVar11[6] = pMVar11[7];
      pMVar11[7] = pMVar11[8];
      pMVar11[8] = pMVar11[5];
      pMVar11[5] = pMVar11[2];
      pMVar11[2] = pMVar11[1];
      pMVar11[1] = MVar2;
      if (iVar7 == 1) {
        if (iVar12 != 1) {
          iVar8 = iVar12 + -1;
          if (iVar8 != 0) goto LAB_00112676;
          goto LAB_00112613;
        }
      }
      else {
        iVar1 = iVar7 + -1;
        iVar8 = iVar12 + -1;
        if (iVar1 == iVar8) {
          iVar7 = 1;
        }
        else if (iVar1 == 0) {
LAB_00112676:
          iVar8 = iVar12 + -1;
          iVar7 = 2 - iVar12;
        }
        else if (iVar1 == 1 - iVar12) {
          iVar8 = 0;
        }
        else if (iVar8 == 0) {
          iVar8 = iVar1;
        }
LAB_00112613:
        kernel->x = iVar7;
        kernel->y = iVar8 + 1;
      }
      dVar15 = (double)DAT_002e8154;
      __x = fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154);
      dVar15 = fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15);
      kernel->angle = dVar15;
    }
    else {
      perror("Unable to rotate non-3x3 kernel by 45 degrees");
    }
  }
  dVar15 = (double)DAT_002df8cc;
  dVar14 = fmod(__x,(double)DAT_002df8cc);
  if (((double)_DAT_002f1394 < dVar14) &&
     (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbeb0)) {
    sVar3 = kernel->width;
    sVar4 = kernel->height;
    if (sVar3 == 1) {
      kernel->width = sVar4;
      sVar5 = kernel->y;
      kernel->height = 1;
      kernel->y = kernel->x;
      kernel->x = sVar5;
      if (sVar4 != 1) {
        fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);
        RotateKernelInfo::lexical_block_5();
        return;
      }
    }
    else if (sVar4 == 1) {
      kernel->height = sVar3;
      sVar5 = kernel->x;
      kernel->width = 1;
      kernel->x = kernel->y;
      kernel->y = sVar5;
    }
    else {
      if (sVar3 != sVar4) {
        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");
        goto LAB_001121fc;
      }
      local_30 = kernel->values;
      iVar7 = sVar3 - 1;
      if ((-1 < iVar7) && (1 < (int)sVar3)) {
        local_3c = 0;
        local_34 = local_30 + sVar3 * sVar3 + -1;
        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);
        local_38 = local_30;
        do {
          local_38 = local_38 + sVar3;
          iVar12 = 0;
          pMVar9 = local_34;
          pMVar10 = local_30;
          pMVar13 = local_38;
          do {
            pMVar13 = pMVar13 + -1;
            MVar2 = *pMVar10;
            *pMVar10 = pMVar11[iVar12];
            pMVar11[iVar12] = *pMVar9;
            iVar12 = iVar12 + 1;
            *pMVar9 = *pMVar13;
            pMVar10 = pMVar10 + sVar3;
            *pMVar13 = MVar2;
            pMVar9 = pMVar9 + -sVar3;
          } while (iVar12 < iVar7 - iVar12);
          local_3c = local_3c + 1;
          local_30 = local_30 + 1;
          local_34 = local_34 + -1;
          pMVar11 = pMVar11 + -sVar3;
        } while (local_3c <= iVar7 - local_3c);
      }
      iVar7 = kernel->x;
      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;
      kernel->y = (iVar7 * 2) / 2;
    }
    dVar15 = (double)DAT_002e8154;
    __x = fmod(__x + (double)_DAT_002f250c,(double)DAT_002e8154);
    dVar15 = fmod((double)(DAT_002df8c4 + (float)kernel->angle),dVar15);
    kernel->angle = dVar15;
  }
LAB_001121fc:
  if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {
    sVar3 = kernel->width;
    sVar4 = kernel->height;
    pMVar11 = kernel->values;
    iVar7 = sVar3 * sVar4 + -1;
    if (0 < iVar7) {
      iVar12 = 0;
      do {
        MVar2 = pMVar11[iVar12];
        pMVar11[iVar12] = pMVar11[iVar7];
        iVar12 = iVar12 + 1;
        pMVar11[iVar7] = MVar2;
        iVar7 = iVar7 + -1;
      } while (iVar12 < iVar7);
    }
    fVar6 = DAT_002e8154;
    kernel->x = (sVar3 - kernel->x) + -1;
    kernel->y = (sVar4 - kernel->y) + -1;
    dVar15 = (double)DAT_002df8cc;
    fmod(__x - dVar15,(double)fVar6);
    dVar15 = fmod(dVar15 + kernel->angle,(double)fVar6);
    kernel->angle = dVar15;
  }
  return;
}



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

void __regparm1 FUN_001120d0(undefined4 *param_1,double param_2)

{
  float fVar1;
  undefined8 uVar2;
  int iVar3;
  undefined4 uVar4;
  float fVar5;
  int iVar6;
  int iVar7;
  undefined8 *puVar8;
  int iVar9;
  undefined8 *puVar10;
  undefined8 *puVar11;
  int iVar12;
  undefined8 *puVar13;
  double dVar14;
  double dVar15;
  double local_54;
  int local_3c;
  undefined8 *local_38;
  undefined8 *local_34;
  undefined8 *local_30;
  
  if (param_1[0x10] != 0) {
    FUN_001120d0(param_2);
  }
  dVar15 = (double)DAT_002e8154;
  local_54 = fmod(param_2,(double)DAT_002e8154);
  if (local_54 < 0.0) {
    local_54 = local_54 + dVar15;
  }
  if ((double)DAT_002fbea8 < local_54) {
    return;
  }
  if (local_54 <= (double)DAT_002fbeac) {
    return;
  }
  switch(*param_1) {
  case 2:
  case 3:
  case 4:
  case 8:
  case 0xf:
  case 0x10:
  case 0x13:
  case 0x14:
  case 0x15:
  case 0x17:
  case 0x21:
  case 0x22:
  case 0x24:
    return;
  case 5:
    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {
      return;
    }
    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {
      local_54 = local_54 - (double)DAT_002df8cc;
    }
  }
  dVar15 = (double)DAT_002df8c4;
  dVar14 = fmod(local_54,(double)DAT_002df8c4);
  if (((double)DAT_002fbeac < dVar14) &&
     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {
    if ((param_1[1] == 3) && (param_1[2] == 3)) {
      puVar11 = (undefined8 *)param_1[5];
      iVar9 = param_1[3];
      iVar3 = param_1[4];
      uVar2 = *puVar11;
      *puVar11 = puVar11[3];
      puVar11[3] = puVar11[6];
      puVar11[6] = puVar11[7];
      puVar11[7] = puVar11[8];
      puVar11[8] = puVar11[5];
      puVar11[5] = puVar11[2];
      puVar11[2] = puVar11[1];
      puVar11[1] = uVar2;
      if (iVar9 == 1) {
        if (iVar3 != 1) {
          iVar7 = iVar3 + -1;
          if (iVar7 != 0) goto LAB_00112676;
          goto LAB_00112613;
        }
      }
      else {
        iVar6 = iVar9 + -1;
        iVar7 = iVar3 + -1;
        if (iVar6 == iVar7) {
          iVar9 = 1;
        }
        else if (iVar6 == 0) {
LAB_00112676:
          iVar7 = iVar3 + -1;
          iVar9 = 2 - iVar3;
        }
        else if (iVar6 == 1 - iVar3) {
          iVar7 = 0;
        }
        else if (iVar7 == 0) {
          iVar7 = iVar6;
        }
LAB_00112613:
        param_1[3] = iVar9;
        param_1[4] = iVar7 + 1;
      }
      dVar15 = (double)DAT_002e8154;
      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);
      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);
      *(double *)(param_1 + 0xe) = dVar15;
    }
    else {
      perror("Unable to rotate non-3x3 kernel by 45 degrees");
    }
  }
  dVar15 = (double)DAT_002df8cc;
  dVar14 = fmod(local_54,(double)DAT_002df8cc);
  if ((dVar14 <= (double)_DAT_002f1394) ||
     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;
  iVar9 = param_1[1];
  iVar3 = param_1[2];
  if (iVar9 == 1) {
    param_1[1] = iVar3;
    uVar4 = param_1[4];
    param_1[2] = 1;
    param_1[4] = param_1[3];
    param_1[3] = uVar4;
    fVar1 = DAT_002e8154;
    if (iVar3 == 1) goto LAB_00112452;
    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);
    fVar5 = _DAT_002f250c;
  }
  else {
    if (iVar3 == 1) {
      param_1[2] = iVar9;
      uVar4 = param_1[3];
      param_1[1] = 1;
      param_1[3] = param_1[4];
      param_1[4] = uVar4;
    }
    else {
      if (iVar9 != iVar3) {
        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");
        goto LAB_001121fc;
      }
      local_30 = (undefined8 *)param_1[5];
      iVar7 = iVar9 + -1;
      if ((-1 < iVar7) && (1 < iVar9)) {
        local_3c = 0;
        local_34 = local_30 + iVar9 * iVar9 + -1;
        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);
        local_38 = local_30;
        do {
          local_38 = local_38 + iVar9;
          iVar6 = 0;
          puVar8 = local_34;
          puVar10 = local_30;
          puVar13 = local_38;
          do {
            puVar13 = puVar13 + -1;
            uVar2 = *puVar10;
            *puVar10 = puVar11[iVar6];
            puVar11[iVar6] = *puVar8;
            iVar6 = iVar6 + 1;
            *puVar8 = *puVar13;
            puVar10 = puVar10 + iVar9;
            *puVar13 = uVar2;
            puVar8 = puVar8 + -iVar9;
          } while (iVar6 < iVar7 - iVar6);
          local_3c = local_3c + 1;
          local_30 = local_30 + 1;
          local_34 = local_34 + -1;
          puVar11 = puVar11 + -iVar9;
        } while (local_3c <= iVar7 - local_3c);
      }
      iVar7 = param_1[3];
      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;
      param_1[4] = (iVar7 * 2) / 2;
    }
LAB_00112452:
    fVar1 = DAT_002e8154;
    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);
    fVar5 = DAT_002df8c4;
  }
  dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);
  *(double *)(param_1 + 0xe) = dVar15;
LAB_001121fc:
  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {
    iVar9 = param_1[1];
    iVar3 = param_1[2];
    iVar7 = param_1[5];
    iVar6 = iVar9 * iVar3 + -1;
    if (0 < iVar6) {
      iVar12 = 0;
      do {
        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);
        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);
        iVar12 = iVar12 + 1;
        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;
        iVar6 = iVar6 + -1;
      } while (iVar12 < iVar6);
    }
    fVar1 = DAT_002e8154;
    param_1[3] = (iVar9 - param_1[3]) + -1;
    param_1[4] = (iVar3 - param_1[4]) + -1;
    dVar15 = (double)DAT_002df8cc;
    fmod(local_54 - dVar15,(double)fVar1);
    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);
    *(double *)(param_1 + 0xe) = dVar15;
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x00039d70
ADD EBX,0x30bf25
SUB ESP,0x4c
MOV EAX,dword ptr [EAX + 0x40]
FLD qword ptr [ESP + 0x60]
TEST EAX,EAX
JNZ 0x001122d0
FLD dword ptr [EBX + 0xffeca154]
SUB ESP,0x10
FST qword ptr [ESP + 0x18]
FSTP qword ptr [ESP + 0x8]
FSTP qword ptr [ESP]
CALL 0x000305d0
ADD ESP,0x10
FLDZ
FUCOMIP ST0,ST1
JBE 0x00112119
FADD qword ptr [ESP + 0x8]
FLD dword ptr [EBX + 0xffeddea8]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JA 0x00112298
FLD dword ptr [EBX + 0xffeddeac]
FUCOMIP ST0,ST1
JNC 0x001122a0
CMP dword ptr [ESI],0x24
JA 0x00112190
MOV EAX,dword ptr [ESI]
MOV EDI,dword ptr [EBX + EAX*0x4 + 0xffedd20c]
ADD EDI,EBX
JMP EDI
FLD dword ptr [EBX + 0xffec18c4]
SUB ESP,0x10
FST qword ptr [ESP + 0x20]
FSTP qword ptr [ESP + 0x8]
FST qword ptr [ESP]
FSTP qword ptr [ESP + 0x18]
CALL 0x000305d0
FLD dword ptr [EBX + 0xffeddeac]
FXCH
ADD ESP,0x10
FUCOMIP ST0,ST1
FSTP ST0
FLD qword ptr [ESP + 0x8]
JA 0x001124a0
FLD dword ptr [EBX + 0xffec18cc]
SUB ESP,0x10
FST qword ptr [ESP + 0x20]
FSTP qword ptr [ESP + 0x8]
FST qword ptr [ESP]
FSTP qword ptr [ESP + 0x18]
CALL 0x000305d0
FLD dword ptr [EBX + 0xffed3394]
FXCH
ADD ESP,0x10
FUCOMIP ST0,ST1
FSTP ST0
FLD qword ptr [ESP + 0x8]
JA 0x001122f0
FLD dword ptr [EBX + 0xffeddeb0]
FXCH
FUCOMI ST0,ST1
FSTP ST1
JBE 0x001122b8
FLD dword ptr [EBX + 0xffeddeb4]
FUCOMIP ST0,ST1
JC 0x001122c0
MOV EDI,dword ptr [ESI + 0x4]
MOV ECX,dword ptr [ESI + 0x8]
MOV EDX,dword ptr [ESI + 0x14]
MOV EAX,EDI
IMUL EAX,ECX
SUB EAX,0x1
TEST EAX,EAX
JG 0x00112500
LEA ESI,[ESI]
SUB EDI,dword ptr [ESI + 0xc]
SUB ESP,0x10
SUB ECX,dword ptr [ESI + 0x10]
FLD dword ptr [EBX + 0xffeca154]
SUB EDI,0x1
SUB ECX,0x1
MOV dword ptr [ESI + 0xc],EDI
MOV dword ptr [ESI + 0x10],ECX
FST qword ptr [ESP + 0x8]
FSTP qword ptr [ESP + 0x20]
FLD dword ptr [EBX + 0xffec18cc]
FSUB ST1,ST0
FSTP qword ptr [ESP + 0x18]
FSTP qword ptr [ESP]
CALL 0x000305d0
FSTP ST0
SUB ESP,0x10
FLD qword ptr [ESP + 0x30]
FSTP qword ptr [ESP + 0x8]
FLD qword ptr [ESP + 0x28]
FADD qword ptr [ESI + 0x38]
FSTP qword ptr [ESP]
CALL 0x000305d0
ADD ESP,0x20
FSTP qword ptr [ESI + 0x38]
JMP 0x001122c2
FSTP ST0
JMP 0x001122c2
FSTP ST0
JMP 0x001122c2
FSTP ST0
JMP 0x001122c2
FSTP ST0
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x10
FST qword ptr [ESP]
FSTP qword ptr [ESP + 0x18]
CALL 0x001120d0
ADD ESP,0x10
FLD qword ptr [ESP + 0x8]
JMP 0x001120f3
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
SUB ESP,0x8
FST qword ptr [ESP]
FSTP qword ptr [ESP + 0x18]
CALL 0x000305d0
FLD dword ptr [EBX + 0xffeddeb0]
ADD ESP,0x10
FUCOMIP ST0,ST1
FSTP ST0
FLD qword ptr [ESP + 0x8]
JC 0x001121fc
MOV EAX,dword ptr [ESI + 0x4]
MOV ECX,dword ptr [ESI + 0x8]
MOV dword ptr [ESP + 0x34],EAX
MOV dword ptr [ESP + 0x30],ECX
CMP EAX,0x1
JZ 0x00112523
CMP ECX,0x1
JZ 0x0011257b
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x30]
CMP EDX,EAX
JNZ 0x00112596
MOV ECX,EDX
MOV EAX,dword ptr [ESI + 0x14]
SUB ECX,0x1
MOV dword ptr [ESP + 0x38],ECX
JS 0x00112419
CMP EDX,0x1
JLE 0x00112419
MOV dword ptr [ESP + 0x2c],EAX
MOV EDI,EAX
MOV EAX,EDX
IMUL EAX,EDX
LEA EBP,[EDX*0x8 + 0x0]
MOV EDX,EDI
MOV dword ptr [ESP + 0x1c],ECX
MOV dword ptr [ESP + 0x10],EBP
MOV dword ptr [ESP + 0x20],0x0
LEA EAX,[EDI + EAX*0x8 + -0x8]
MOV dword ptr [ESP + 0x3c],ESI
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,EDI
ADD EAX,EBP
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,EBP
NEG EAX
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,ECX
IMUL EAX,EBP
LEA EBP,[EDX + EAX*0x1]
NOP
MOV ESI,dword ptr [ESP + 0x24]
XOR EAX,EAX
MOV ECX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x2c]
NOP
MOV EDI,dword ptr [ESP + 0x1c]
SUB ESI,0x8
FLD qword ptr [EDX]
FLD qword ptr [EBP + EAX*0x8]
FSTP qword ptr [EDX]
FLD qword ptr [ECX]
FSTP qword ptr [EBP + EAX*0x8]
ADD EAX,0x1
FLD qword ptr [ESI]
FSTP qword ptr [ECX]
SUB EDI,EAX
ADD EDX,dword ptr [ESP + 0x10]
FSTP qword ptr [ESI]
ADD ECX,dword ptr [ESP + 0x8]
CMP EAX,EDI
JL 0x001123c0
ADD dword ptr [ESP + 0x20],0x1
MOV EAX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x20]
ADD dword ptr [ESP + 0x2c],0x8
SUB dword ptr [ESP + 0x28],0x8
MOV EDX,dword ptr [ESP + 0x10]
SUB EAX,ECX
ADD EBP,dword ptr [ESP + 0x8]
ADD dword ptr [ESP + 0x24],EDX
CMP ECX,EAX
JLE 0x001123b0
MOV ESI,dword ptr [ESP + 0x3c]
MOV EDX,0x1
MOV EAX,dword ptr [ESI + 0x10]
MOV EDI,EDX
SUB EDI,dword ptr [ESP + 0x30]
MOV ECX,dword ptr [ESI + 0xc]
LEA EAX,[EDI + EAX*0x2]
MOV EDI,dword ptr [ESP + 0x34]
LEA EDX,[EDX + ECX*0x2 + -0x1]
SUB EDI,EAX
LEA EDI,[EDI + -0x1]
MOV EAX,EDI
SHR EAX,0x1f
ADD EAX,EDI
SAR EAX,0x1
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,EDX
SHR EAX,0x1f
ADD EAX,EDX
SAR EAX,0x1
MOV dword ptr [ESI + 0x10],EAX
FADD dword ptr [EBX + 0xffed450c]
SUB ESP,0x10
FLD dword ptr [EBX + 0xffeca154]
FST qword ptr [ESP + 0x8]
FSTP qword ptr [ESP + 0x20]
FSTP qword ptr [ESP]
CALL 0x000305d0
SUB ESP,0x10
FSTP qword ptr [ESP + 0x28]
FLD qword ptr [ESP + 0x30]
FSTP qword ptr [ESP + 0x8]
FLD dword ptr [EBX + 0xffec18c4]
FADD qword ptr [ESI + 0x38]
FSTP qword ptr [ESP]
CALL 0x000305d0
ADD ESP,0x20
FSTP qword ptr [ESI + 0x38]
FLD qword ptr [ESP + 0x8]
JMP 0x001121fc
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
SUB ESP,0x8
FST qword ptr [ESP]
FSTP qword ptr [ESP + 0x18]
CALL 0x000305d0
FLD dword ptr [EBX + 0xffeddebc]
ADD ESP,0x10
FUCOMIP ST0,ST1
FSTP ST0
FLD qword ptr [ESP + 0x8]
JC 0x001121c6
CMP dword ptr [ESI + 0x4],0x3
JNZ 0x001124de
CMP dword ptr [ESI + 0x8],0x3
JZ 0x001125b5
FSTP qword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xffedcc54]
SUB ESP,0xc
PUSH EAX
CALL 0x00031590
ADD ESP,0x10
FLD qword ptr [ESP + 0x8]
JMP 0x001121c6
XOR EBP,EBP
LEA ESI,[ESI]
FLD qword ptr [EDX + EBP*0x8]
FLD qword ptr [EDX + EAX*0x8]
FSTP qword ptr [EDX + EBP*0x8]
ADD EBP,0x1
FSTP qword ptr [EDX + EAX*0x8]
SUB EAX,0x1
CMP EBP,EAX
JL 0x00112508
JMP 0x00112238
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [ESI + 0x4],ECX
MOV EDX,dword ptr [ESI + 0x10]
MOV dword ptr [ESI + 0x8],0x1
MOV dword ptr [ESI + 0x10],EAX
MOV dword ptr [ESI + 0xc],EDX
CMP ECX,0x1
JZ 0x00112452
FADD dword ptr [EBX + 0xffec18c4]
SUB ESP,0x10
FLD dword ptr [EBX + 0xffeca154]
FST qword ptr [ESP + 0x8]
FSTP qword ptr [ESP + 0x20]
FSTP qword ptr [ESP]
CALL 0x000305d0
SUB ESP,0x10
FSTP qword ptr [ESP + 0x28]
FLD qword ptr [ESP + 0x30]
FSTP qword ptr [ESP + 0x8]
FLD dword ptr [EBX + 0xffed450c]
JMP 0x00112486
MOV EDX,dword ptr [ESI + 0x10]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [ESI + 0x4],0x1
MOV dword ptr [ESI + 0xc],EDX
MOV dword ptr [ESI + 0x10],EAX
JMP 0x00112452
FSTP qword ptr [ESP + 0x8]
LEA EAX,[EBX + 0xffedcc84]
SUB ESP,0xc
PUSH EAX
CALL 0x00031590
ADD ESP,0x10
FLD qword ptr [ESP + 0x8]
JMP 0x001121fc
MOV EAX,dword ptr [ESI + 0x14]
MOV ECX,dword ptr [ESI + 0xc]
MOV EDX,dword ptr [ESI + 0x10]
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]
CMP ECX,0x1
JZ 0x0011266a
LEA EDI,[ECX + -0x1]
LEA EAX,[EDX + -0x1]
CMP EDI,EAX
JZ 0x0011267f
TEST EDI,EDI
JZ 0x00112676
MOV EBP,0x1
SUB EBP,EDX
CMP EDI,EBP
JZ 0x00112686
TEST EAX,EAX
CMOVZ EAX,EDI
ADD EAX,0x1
MOV dword ptr [ESI + 0xc],ECX
MOV dword ptr [ESI + 0x10],EAX
FADD dword ptr [EBX + 0xffeddeb8]
SUB ESP,0x10
FLD dword ptr [EBX + 0xffeca154]
FST qword ptr [ESP + 0x8]
FSTP qword ptr [ESP + 0x20]
FSTP qword ptr [ESP]
CALL 0x000305d0
SUB ESP,0x10
FSTP qword ptr [ESP + 0x28]
FLD qword ptr [ESP + 0x30]
FSTP qword ptr [ESP + 0x8]
FLD dword ptr [EBX + 0xffed3394]
FADD qword ptr [ESI + 0x38]
FSTP qword ptr [ESP]
CALL 0x000305d0
ADD ESP,0x20
FSTP qword ptr [ESI + 0x38]
FLD qword ptr [ESP + 0x8]
JMP 0x001121c6
CMP EDX,0x1
JZ 0x0011261c
MOV EAX,EDX
SUB EAX,0x1
JZ 0x00112613
MOV ECX,0x2
SUB ECX,EDX
JMP 0x00112613
MOV ECX,0x1
JMP 0x00112613
XOR EAX,EAX
JMP 0x00112613
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid __regparm1 FUN_001120d0(undefined4 *param_1,double param_2)\n\n{\n  float fVar1;\n  undefined8 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  float fVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  double dVar14;\n  double dVar15;\n  double local_54;\n  int local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  undefined8 *local_30;\n  \n  if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }\n  dVar15 = (double)DAT_002e8154;\n  local_54 = fmod(param_2,(double)DAT_002e8154);\n  if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }\n  if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }\n  if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(local_54,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(local_54,(double)DAT_002df8cc);\n  if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;\n  iVar9 = param_1[1];\n  iVar3 = param_1[2];\n  if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }\n  dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);\n  *(double *)(param_1 + 0xe) = dVar15;\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }\n  return;\n}\n\n" comment comment (function_definition "void __regparm1 FUN_001120d0(undefined4 *param_1,double param_2)\n\n{\n  float fVar1;\n  undefined8 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  float fVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  double dVar14;\n  double dVar15;\n  double local_54;\n  int local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  undefined8 *local_30;\n  \n  if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }\n  dVar15 = (double)DAT_002e8154;\n  local_54 = fmod(param_2,(double)DAT_002e8154);\n  if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }\n  if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }\n  if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(local_54,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(local_54,(double)DAT_002df8cc);\n  if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;\n  iVar9 = param_1[1];\n  iVar3 = param_1[2];\n  if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }\n  dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);\n  *(double *)(param_1 + 0xe) = dVar15;\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }\n  return;\n}" primitive_type (ERROR "__regparm1" identifier) (function_declarator "FUN_001120d0(undefined4 *param_1,double param_2)" identifier (parameter_list "(undefined4 *param_1,double param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "double param_2" primitive_type identifier) ))) (compound_statement "{\n  float fVar1;\n  undefined8 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  float fVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  double dVar14;\n  double dVar15;\n  double local_54;\n  int local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  undefined8 *local_30;\n  \n  if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }\n  dVar15 = (double)DAT_002e8154;\n  local_54 = fmod(param_2,(double)DAT_002e8154);\n  if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }\n  if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }\n  if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(local_54,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(local_54,(double)DAT_002df8cc);\n  if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;\n  iVar9 = param_1[1];\n  iVar3 = param_1[2];\n  if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }\n  dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);\n  *(double *)(param_1 + 0xe) = dVar15;\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }\n  return;\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "float fVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined8 *puVar10;" type_identifier (pointer_declarator "*puVar10" * 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 "double dVar14;" primitive_type identifier ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double local_54;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "undefined8 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined8 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined8 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (if_statement "if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }" if (parenthesized_expression "(param_1[0x10] != 0)" ( (binary_expression "param_1[0x10] != 0" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001120d0(param_2);\n  }" { (expression_statement "FUN_001120d0(param_2);" (call_expression "FUN_001120d0(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) })) (expression_statement "dVar15 = (double)DAT_002e8154;" (assignment_expression "dVar15 = (double)DAT_002e8154" identifier = (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_54 = fmod(param_2,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(param_2,(double)DAT_002e8154)" identifier = (call_expression "fmod(param_2,(double)DAT_002e8154)" identifier (argument_list "(param_2,(double)DAT_002e8154)" ( identifier , (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }" if (parenthesized_expression "(local_54 < 0.0)" ( (binary_expression "local_54 < 0.0" identifier < number_literal) )) (compound_statement "{\n    local_54 = local_54 + dVar15;\n  }" { (expression_statement "local_54 = local_54 + dVar15;" (assignment_expression "local_54 = local_54 + dVar15" identifier = (binary_expression "local_54 + dVar15" identifier + identifier)) ;) })) (if_statement "if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }" if (parenthesized_expression "((double)DAT_002fbea8 < local_54)" ( (binary_expression "(double)DAT_002fbea8 < local_54" (cast_expression "(double)DAT_002fbea8" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }" if (parenthesized_expression "(local_54 <= (double)DAT_002fbeac)" ( (binary_expression "local_54 <= (double)DAT_002fbeac" identifier <= (cast_expression "(double)DAT_002fbeac" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (switch_statement "switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }" switch (parenthesized_expression "(*param_1)" ( (pointer_expression "*param_1" * identifier) )) (compound_statement "{\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }" { (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 8:" case number_literal :) (case_statement "case 0xf:" case number_literal :) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x13:" case number_literal :) (case_statement "case 0x14:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x21:" case number_literal :) (case_statement "case 0x22:" case number_literal :) (case_statement "case 0x24:\n    return;" case number_literal : (return_statement "return;" return ;)) (case_statement "case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }" case number_literal : (if_statement "if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }" if (parenthesized_expression "(((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4))" ( (binary_expression "((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)" (parenthesized_expression "((double)DAT_002fbeb0 < local_54)" ( (binary_expression "(double)DAT_002fbeb0 < local_54" (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(local_54 <= (double)DAT_002fbeb4)" ( (binary_expression "local_54 <= (double)DAT_002fbeb4" identifier <= (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }" if (parenthesized_expression "(((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8))" ( (binary_expression "((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)" (parenthesized_expression "((double)DAT_002fbeb4 < local_54)" ( (binary_expression "(double)DAT_002fbeb4 < local_54" (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(local_54 <= (double)DAT_002fbeb8)" ( (binary_expression "local_54 <= (double)DAT_002fbeb8" identifier <= (cast_expression "(double)DAT_002fbeb8" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }" { (expression_statement "local_54 = local_54 - (double)DAT_002df8cc;" (assignment_expression "local_54 = local_54 - (double)DAT_002df8cc" identifier = (binary_expression "local_54 - (double)DAT_002df8cc" identifier - (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }))) })) (expression_statement "dVar15 = (double)DAT_002df8c4;" (assignment_expression "dVar15 = (double)DAT_002df8c4" identifier = (cast_expression "(double)DAT_002df8c4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar14 = fmod(local_54,(double)DAT_002df8c4);" (assignment_expression "dVar14 = fmod(local_54,(double)DAT_002df8c4)" identifier = (call_expression "fmod(local_54,(double)DAT_002df8c4)" identifier (argument_list "(local_54,(double)DAT_002df8c4)" ( identifier , (cast_expression "(double)DAT_002df8c4" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }" if (parenthesized_expression "(((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc))" ( (binary_expression "((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)" (parenthesized_expression "((double)DAT_002fbeac < dVar14)" ( (binary_expression "(double)DAT_002fbeac < dVar14" (cast_expression "(double)DAT_002fbeac" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)" ( (comma_expression "dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc" (assignment_expression "dVar15 = fmod(local_54,dVar15)" identifier = (call_expression "fmod(local_54,dVar15)" identifier (argument_list "(local_54,dVar15)" ( identifier , identifier )))) , (binary_expression "dVar15 <= (double)DAT_002fbebc" identifier <= (cast_expression "(double)DAT_002fbebc" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }" { (if_statement "if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }" if (parenthesized_expression "((param_1[1] == 3) && (param_1[2] == 3))" ( (binary_expression "(param_1[1] == 3) && (param_1[2] == 3)" (parenthesized_expression "(param_1[1] == 3)" ( (binary_expression "param_1[1] == 3" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(param_1[2] == 3)" ( (binary_expression "param_1[2] == 3" (subscript_expression "param_1[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }" { (expression_statement "puVar11 = (undefined8 *)param_1[5];" (assignment_expression "puVar11 = (undefined8 *)param_1[5]" identifier = (cast_expression "(undefined8 *)param_1[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar9 = param_1[3];" (assignment_expression "iVar9 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = param_1[4];" (assignment_expression "iVar3 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = *puVar11;" (assignment_expression "uVar2 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*puVar11 = puVar11[3];" (assignment_expression "*puVar11 = puVar11[3]" (pointer_expression "*puVar11" * identifier) = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "puVar11[3] = puVar11[6];" (assignment_expression "puVar11[3] = puVar11[6]" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = (subscript_expression "puVar11[6]" identifier [ number_literal ])) ;) (expression_statement "puVar11[6] = puVar11[7];" (assignment_expression "puVar11[6] = puVar11[7]" (subscript_expression "puVar11[6]" identifier [ number_literal ]) = (subscript_expression "puVar11[7]" identifier [ number_literal ])) ;) (expression_statement "puVar11[7] = puVar11[8];" (assignment_expression "puVar11[7] = puVar11[8]" (subscript_expression "puVar11[7]" identifier [ number_literal ]) = (subscript_expression "puVar11[8]" identifier [ number_literal ])) ;) (expression_statement "puVar11[8] = puVar11[5];" (assignment_expression "puVar11[8] = puVar11[5]" (subscript_expression "puVar11[8]" identifier [ number_literal ]) = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "puVar11[5] = puVar11[2];" (assignment_expression "puVar11[5] = puVar11[2]" (subscript_expression "puVar11[5]" identifier [ number_literal ]) = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "puVar11[2] = puVar11[1];" (assignment_expression "puVar11[2] = puVar11[1]" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "puVar11[1] = uVar2;" (assignment_expression "puVar11[1] = uVar2" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }" { (if_statement "if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }" { (expression_statement "iVar7 = iVar3 + -1;" (assignment_expression "iVar7 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (iVar7 != 0) goto LAB_00112676;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00112676;" goto statement_identifier ;)) (goto_statement "goto LAB_00112613;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }" else (compound_statement "{\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }" { (expression_statement "iVar6 = iVar9 + -1;" (assignment_expression "iVar6 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar3 + -1;" (assignment_expression "iVar7 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" if (parenthesized_expression "(iVar6 == iVar7)" ( (binary_expression "iVar6 == iVar7" identifier == identifier) )) (compound_statement "{\n          iVar9 = 1;\n        }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" else (if_statement "if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }" { (labeled_statement "LAB_00112676:\n          iVar7 = iVar3 + -1;" statement_identifier : (expression_statement "iVar7 = iVar3 + -1;" (assignment_expression "iVar7 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;)) (expression_statement "iVar9 = 2 - iVar3;" (assignment_expression "iVar9 = 2 - iVar3" identifier = (binary_expression "2 - iVar3" number_literal - identifier)) ;) }) (else_clause "else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" else (if_statement "if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" if (parenthesized_expression "(iVar6 == 1 - iVar3)" ( (binary_expression "iVar6 == 1 - iVar3" identifier == (binary_expression "1 - iVar3" number_literal - identifier)) )) (compound_statement "{\n          iVar7 = 0;\n        }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" else (if_statement "if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = iVar6;\n        }" { (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" identifier = identifier) ;) })))))))) (labeled_statement "LAB_00112613:\n        param_1[3] = iVar9;" statement_identifier : (expression_statement "param_1[3] = iVar9;" (assignment_expression "param_1[3] = iVar9" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_1[4] = iVar7 + 1;" (assignment_expression "param_1[4] = iVar7 + 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }))) (expression_statement "dVar15 = (double)DAT_002e8154;" (assignment_expression "dVar15 = (double)DAT_002e8154" identifier = (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154)" identifier = (call_expression "fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154)" identifier (argument_list "(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154)" ( (binary_expression "local_54 + (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 "dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);" (assignment_expression "dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15)" identifier = (call_expression "fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15)" identifier (argument_list "((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15)" ( (cast_expression "(double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe))" ( (binary_expression "_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)" identifier + (cast_expression "(float)*(double *)(param_1 + 0xe)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))))) ))) , identifier )))) ;) (expression_statement "*(double *)(param_1 + 0xe) = dVar15;" (assignment_expression "*(double *)(param_1 + 0xe) = dVar15" (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = 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 "dVar15 = (double)DAT_002df8cc;" (assignment_expression "dVar15 = (double)DAT_002df8cc" identifier = (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar14 = fmod(local_54,(double)DAT_002df8cc);" (assignment_expression "dVar14 = fmod(local_54,(double)DAT_002df8cc)" identifier = (call_expression "fmod(local_54,(double)DAT_002df8cc)" identifier (argument_list "(local_54,(double)DAT_002df8cc)" ( identifier , (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;" if (parenthesized_expression "((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15))" ( (binary_expression "(dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)" (parenthesized_expression "(dVar14 <= (double)_DAT_002f1394)" ( (binary_expression "dVar14 <= (double)_DAT_002f1394" identifier <= (cast_expression "(double)_DAT_002f1394" ( (type_descriptor "double" primitive_type) ) identifier)) )) || (parenthesized_expression "(dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)" ( (comma_expression "dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15" (assignment_expression "dVar15 = fmod(local_54,dVar15)" identifier = (call_expression "fmod(local_54,dVar15)" identifier (argument_list "(local_54,dVar15)" ( identifier , identifier )))) , (binary_expression "(double)DAT_002fbeb0 < dVar15" (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier) < identifier)) ))) )) (goto_statement "goto LAB_001121fc;" goto statement_identifier ;)) (expression_statement "iVar9 = param_1[1];" (assignment_expression "iVar9 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = param_1[2];" (assignment_expression "iVar3 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }" { (expression_statement "param_1[1] = iVar3;" (assignment_expression "param_1[1] = iVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = param_1[4];" (assignment_expression "uVar4 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = param_1[3];" (assignment_expression "param_1[4] = param_1[3]" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = uVar4;" (assignment_expression "param_1[3] = uVar4" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" identifier = identifier) ;) (if_statement "if (iVar3 == 1) goto LAB_00112452;" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00112452;" goto statement_identifier ;)) (expression_statement "local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154)" identifier = (call_expression "fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154)" identifier (argument_list "(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154)" ( (binary_expression "local_54 + (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 (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }" else (compound_statement "{\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }" { (if_statement "if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }" { (expression_statement "param_1[2] = iVar9;" (assignment_expression "param_1[2] = iVar9" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = param_1[3];" (assignment_expression "uVar4 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = param_1[4];" (assignment_expression "param_1[3] = param_1[4]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "param_1[4] = uVar4;" (assignment_expression "param_1[4] = uVar4" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }" else (compound_statement "{\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }" { (if_statement "if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }" if (parenthesized_expression "(iVar9 != iVar3)" ( (binary_expression "iVar9 != iVar3" identifier != identifier) )) (compound_statement "{\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\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_001121fc;" goto statement_identifier ;) })) (expression_statement "local_30 = (undefined8 *)param_1[5];" (assignment_expression "local_30 = (undefined8 *)param_1[5]" identifier = (cast_expression "(undefined8 *)param_1[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = iVar9 + -1;" (assignment_expression "iVar7 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }" if (parenthesized_expression "((-1 < iVar7) && (1 < iVar9))" ( (binary_expression "(-1 < iVar7) && (1 < iVar9)" (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) && (parenthesized_expression "(1 < iVar9)" ( (binary_expression "1 < iVar9" number_literal < identifier) ))) )) (compound_statement "{\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_34 = local_30 + iVar9 * iVar9 + -1;" (assignment_expression "local_34 = local_30 + iVar9 * iVar9 + -1" identifier = (binary_expression "local_30 + iVar9 * iVar9 + -1" (binary_expression "local_30 + iVar9 * iVar9" identifier + (binary_expression "iVar9 * iVar9" identifier * identifier)) + number_literal)) ;) (expression_statement "puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);" (assignment_expression "puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8)" identifier = (cast_expression "(undefined8 *)((int)local_30 + iVar7 * iVar9 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 + iVar7 * iVar9 * 8)" ( (binary_expression "(int)local_30 + iVar7 * iVar9 * 8" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar7 * iVar9 * 8" (binary_expression "iVar7 * iVar9" identifier * identifier) * number_literal)) )))) ;) (expression_statement "local_38 = local_30;" (assignment_expression "local_38 = local_30" identifier = identifier) ;) (do_statement "do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);" do (compound_statement "{\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        }" { (expression_statement "local_38 = local_38 + iVar9;" (assignment_expression "local_38 = local_38 + iVar9" identifier = (binary_expression "local_38 + iVar9" identifier + identifier)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar8 = local_34;" (assignment_expression "puVar8 = local_34" identifier = identifier) ;) (expression_statement "puVar10 = local_30;" (assignment_expression "puVar10 = local_30" identifier = identifier) ;) (expression_statement "puVar13 = local_38;" (assignment_expression "puVar13 = local_38" identifier = identifier) ;) (do_statement "do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);" do (compound_statement "{\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          }" { (expression_statement "puVar13 = puVar13 + -1;" (assignment_expression "puVar13 = puVar13 + -1" identifier = (binary_expression "puVar13 + -1" identifier + number_literal)) ;) (expression_statement "uVar2 = *puVar10;" (assignment_expression "uVar2 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*puVar10 = puVar11[iVar6];" (assignment_expression "*puVar10 = puVar11[iVar6]" (pointer_expression "*puVar10" * identifier) = (subscript_expression "puVar11[iVar6]" identifier [ identifier ])) ;) (expression_statement "puVar11[iVar6] = *puVar8;" (assignment_expression "puVar11[iVar6] = *puVar8" (subscript_expression "puVar11[iVar6]" identifier [ identifier ]) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "*puVar8 = *puVar13;" (assignment_expression "*puVar8 = *puVar13" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar10 = puVar10 + iVar9;" (assignment_expression "puVar10 = puVar10 + iVar9" identifier = (binary_expression "puVar10 + iVar9" identifier + identifier)) ;) (expression_statement "*puVar13 = uVar2;" (assignment_expression "*puVar13 = uVar2" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar8 = puVar8 + -iVar9;" (assignment_expression "puVar8 = puVar8 + -iVar9" identifier = (binary_expression "puVar8 + -iVar9" identifier + (unary_expression "-iVar9" - identifier))) ;) }) while (parenthesized_expression "(iVar6 < iVar7 - iVar6)" ( (binary_expression "iVar6 < iVar7 - iVar6" identifier < (binary_expression "iVar7 - iVar6" identifier - identifier)) )) ;) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 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 "puVar11 = puVar11 + -iVar9;" (assignment_expression "puVar11 = puVar11 + -iVar9" identifier = (binary_expression "puVar11 + -iVar9" identifier + (unary_expression "-iVar9" - identifier))) ;) }) while (parenthesized_expression "(local_3c <= iVar7 - local_3c)" ( (binary_expression "local_3c <= iVar7 - local_3c" identifier <= (binary_expression "iVar7 - local_3c" identifier - identifier)) )) ;) })) (expression_statement "iVar7 = param_1[3];" (assignment_expression "iVar7 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;" (assignment_expression "param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2" (parenthesized_expression "((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1)" ( (binary_expression "(iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1" (parenthesized_expression "(iVar9 - ((1 - iVar3) + param_1[4] * 2))" ( (binary_expression "iVar9 - ((1 - iVar3) + param_1[4] * 2)" identifier - (parenthesized_expression "((1 - iVar3) + param_1[4] * 2)" ( (binary_expression "(1 - iVar3) + param_1[4] * 2" (parenthesized_expression "(1 - iVar3)" ( (binary_expression "1 - iVar3" number_literal - identifier) )) + (binary_expression "param_1[4] * 2" (subscript_expression "param_1[4]" identifier [ number_literal ]) * number_literal)) ))) )) + number_literal) )) / number_literal)) ;) (expression_statement "param_1[4] = (iVar7 * 2) / 2;" (assignment_expression "param_1[4] = (iVar7 * 2) / 2" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "(iVar7 * 2) / 2" (parenthesized_expression "(iVar7 * 2)" ( (binary_expression "iVar7 * 2" identifier * number_literal) )) / number_literal)) ;) }))) (labeled_statement "LAB_00112452:\n    fVar1 = DAT_002e8154;" statement_identifier : (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" identifier = identifier) ;)) (expression_statement "local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154)" identifier = (call_expression "fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154)" identifier (argument_list "(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154)" ( (binary_expression "local_54 + (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 "dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);" (assignment_expression "dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1)" identifier = (call_expression "fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1)" identifier (argument_list "((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1)" ( (cast_expression "(double)(fVar5 + (float)*(double *)(param_1 + 0xe))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar5 + (float)*(double *)(param_1 + 0xe))" ( (binary_expression "fVar5 + (float)*(double *)(param_1 + 0xe)" identifier + (cast_expression "(float)*(double *)(param_1 + 0xe)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))))) ))) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "*(double *)(param_1 + 0xe) = dVar15;" (assignment_expression "*(double *)(param_1 + 0xe) = dVar15" (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }" statement_identifier : (if_statement "if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }" if (parenthesized_expression "(((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4))" ( (binary_expression "((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)" (parenthesized_expression "((double)DAT_002fbeb0 < local_54)" ( (binary_expression "(double)DAT_002fbeb0 < local_54" (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(local_54 <= (double)DAT_002fbeb4)" ( (binary_expression "local_54 <= (double)DAT_002fbeb4" identifier <= (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }" { (expression_statement "iVar9 = param_1[1];" (assignment_expression "iVar9 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = param_1[2];" (assignment_expression "iVar3 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = param_1[5];" (assignment_expression "iVar7 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = iVar9 * iVar3 + -1;" (assignment_expression "iVar6 = iVar9 * iVar3 + -1" identifier = (binary_expression "iVar9 * iVar3 + -1" (binary_expression "iVar9 * iVar3" identifier * identifier) + number_literal)) ;) (if_statement "if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);" do (compound_statement "{\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      }" { (expression_statement "uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);" (assignment_expression "uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar7 + iVar12 * 8)" * (cast_expression "(undefined8 *)(iVar7 + iVar12 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar12 * 8)" ( (binary_expression "iVar7 + iVar12 * 8" identifier + (binary_expression "iVar12 * 8" identifier * number_literal)) ))))) ;) (expression_statement "*(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);" (assignment_expression "*(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8)" (pointer_expression "*(undefined8 *)(iVar7 + iVar12 * 8)" * (cast_expression "(undefined8 *)(iVar7 + iVar12 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar12 * 8)" ( (binary_expression "iVar7 + iVar12 * 8" identifier + (binary_expression "iVar12 * 8" identifier * number_literal)) )))) = (pointer_expression "*(undefined8 *)(iVar7 + iVar6 * 8)" * (cast_expression "(undefined8 *)(iVar7 + iVar6 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar6 * 8)" ( (binary_expression "iVar7 + iVar6 * 8" identifier + (binary_expression "iVar6 * 8" identifier * number_literal)) ))))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;" (assignment_expression "*(undefined8 *)(iVar7 + iVar6 * 8) = uVar2" (pointer_expression "*(undefined8 *)(iVar7 + iVar6 * 8)" * (cast_expression "(undefined8 *)(iVar7 + iVar6 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar6 * 8)" ( (binary_expression "iVar7 + iVar6 * 8" identifier + (binary_expression "iVar6 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 < iVar6)" ( (binary_expression "iVar12 < iVar6" identifier < identifier) )) ;) })) (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" identifier = identifier) ;) (expression_statement "param_1[3] = (iVar9 - param_1[3]) + -1;" (assignment_expression "param_1[3] = (iVar9 - param_1[3]) + -1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "(iVar9 - param_1[3]) + -1" (parenthesized_expression "(iVar9 - param_1[3])" ( (binary_expression "iVar9 - param_1[3]" identifier - (subscript_expression "param_1[3]" identifier [ number_literal ])) )) + number_literal)) ;) (expression_statement "param_1[4] = (iVar3 - param_1[4]) + -1;" (assignment_expression "param_1[4] = (iVar3 - param_1[4]) + -1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "(iVar3 - param_1[4]) + -1" (parenthesized_expression "(iVar3 - param_1[4])" ( (binary_expression "iVar3 - param_1[4]" identifier - (subscript_expression "param_1[4]" identifier [ number_literal ])) )) + number_literal)) ;) (expression_statement "dVar15 = (double)DAT_002df8cc;" (assignment_expression "dVar15 = (double)DAT_002df8cc" identifier = (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "fmod(local_54 - dVar15,(double)fVar1);" (call_expression "fmod(local_54 - dVar15,(double)fVar1)" identifier (argument_list "(local_54 - dVar15,(double)fVar1)" ( (binary_expression "local_54 - dVar15" identifier - identifier) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (expression_statement "dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);" (assignment_expression "dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1)" identifier = (call_expression "fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1)" identifier (argument_list "(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1)" ( (binary_expression "dVar15 + *(double *)(param_1 + 0xe)" identifier + (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) ))))) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "*(double *)(param_1 + 0xe) = dVar15;" (assignment_expression "*(double *)(param_1 + 0xe) = dVar15" (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = identifier) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid __regparm1 RotateKernelInfo(KernelInfo *kernel,double angle)\n\n{\n  int iVar1;\n  MagickRealType MVar2;\n  size_t sVar3;\n  size_t sVar4;\n  ssize_t sVar5;\n  float fVar6;\n  int iVar7;\n  int iVar8;\n  MagickRealType *pMVar9;\n  MagickRealType *pMVar10;\n  MagickRealType *pMVar11;\n  int iVar12;\n  MagickRealType *pMVar13;\n  double __x;\n  double dVar14;\n  double dVar15;\n  int local_3c;\n  MagickRealType *local_38;\n  MagickRealType *local_34;\n  MagickRealType *local_30;\n  \n  if (kernel->next != (KernelInfo *)0x0) {\n    RotateKernelInfo(kernel->next,angle);\n  }\n  dVar15 = (double)DAT_002e8154;\n  __x = fmod(angle,(double)DAT_002e8154);\n  if (__x < 0.0) {\n    __x = __x + dVar15;\n  }\n  if ((double)DAT_002fbea8 < __x) {\n    return;\n  }\n  if (__x <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(kernel->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    return;\n  case BlurKernel:\n    if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < __x) && (__x <= (double)DAT_002fbeb8)) {\n      __x = __x - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(__x,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) && (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbebc)\n     ) {\n    if ((kernel->width == 3) && (kernel->height == 3)) {\n      pMVar11 = kernel->values;\n      iVar7 = kernel->x;\n      iVar12 = kernel->y;\n      MVar2 = *pMVar11;\n      *pMVar11 = pMVar11[3];\n      pMVar11[3] = pMVar11[6];\n      pMVar11[6] = pMVar11[7];\n      pMVar11[7] = pMVar11[8];\n      pMVar11[8] = pMVar11[5];\n      pMVar11[5] = pMVar11[2];\n      pMVar11[2] = pMVar11[1];\n      pMVar11[1] = MVar2;\n      if (iVar7 == 1) {\n        if (iVar12 != 1) {\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar1 = iVar7 + -1;\n        iVar8 = iVar12 + -1;\n        if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }\nLAB_00112613:\n        kernel->x = iVar7;\n        kernel->y = iVar8 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      __x = fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15);\n      kernel->angle = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(__x,(double)DAT_002df8cc);\n  if (((double)_DAT_002f1394 < dVar14) &&\n     (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbeb0)) {\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    if (sVar3 == 1) {\n      kernel->width = sVar4;\n      sVar5 = kernel->y;\n      kernel->height = 1;\n      kernel->y = kernel->x;\n      kernel->x = sVar5;\n      if (sVar4 != 1) {\n        fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);\n        RotateKernelInfo::lexical_block_5();\n        return;\n      }\n    }\n    else if (sVar4 == 1) {\n      kernel->height = sVar3;\n      sVar5 = kernel->x;\n      kernel->width = 1;\n      kernel->x = kernel->y;\n      kernel->y = sVar5;\n    }\n    else {\n      if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = kernel->values;\n      iVar7 = sVar3 - 1;\n      if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = kernel->x;\n      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;\n      kernel->y = (iVar7 * 2) / 2;\n    }\n    dVar15 = (double)DAT_002e8154;\n    __x = fmod(__x + (double)_DAT_002f250c,(double)DAT_002e8154);\n    dVar15 = fmod((double)(DAT_002df8c4 + (float)kernel->angle),dVar15);\n    kernel->angle = dVar15;\n  }\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    pMVar11 = kernel->values;\n    iVar7 = sVar3 * sVar4 + -1;\n    if (0 < iVar7) {\n      iVar12 = 0;\n      do {\n        MVar2 = pMVar11[iVar12];\n        pMVar11[iVar12] = pMVar11[iVar7];\n        iVar12 = iVar12 + 1;\n        pMVar11[iVar7] = MVar2;\n        iVar7 = iVar7 + -1;\n      } while (iVar12 < iVar7);\n    }\n    fVar6 = DAT_002e8154;\n    kernel->x = (sVar3 - kernel->x) + -1;\n    kernel->y = (sVar4 - kernel->y) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(__x - dVar15,(double)fVar6);\n    dVar15 = fmod(dVar15 + kernel->angle,(double)fVar6);\n    kernel->angle = dVar15;\n  }\n  return;\n}\n\n" comment comment (function_definition "void __regparm1 RotateKernelInfo(KernelInfo *kernel,double angle)\n\n{\n  int iVar1;\n  MagickRealType MVar2;\n  size_t sVar3;\n  size_t sVar4;\n  ssize_t sVar5;\n  float fVar6;\n  int iVar7;\n  int iVar8;\n  MagickRealType *pMVar9;\n  MagickRealType *pMVar10;\n  MagickRealType *pMVar11;\n  int iVar12;\n  MagickRealType *pMVar13;\n  double __x;\n  double dVar14;\n  double dVar15;\n  int local_3c;\n  MagickRealType *local_38;\n  MagickRealType *local_34;\n  MagickRealType *local_30;\n  \n  if (kernel->next != (KernelInfo *)0x0) {\n    RotateKernelInfo(kernel->next,angle);\n  }\n  dVar15 = (double)DAT_002e8154;\n  __x = fmod(angle,(double)DAT_002e8154);\n  if (__x < 0.0) {\n    __x = __x + dVar15;\n  }\n  if ((double)DAT_002fbea8 < __x) {\n    return;\n  }\n  if (__x <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(kernel->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    return;\n  case BlurKernel:\n    if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < __x) && (__x <= (double)DAT_002fbeb8)) {\n      __x = __x - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(__x,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) && (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbebc)\n     ) {\n    if ((kernel->width == 3) && (kernel->height == 3)) {\n      pMVar11 = kernel->values;\n      iVar7 = kernel->x;\n      iVar12 = kernel->y;\n      MVar2 = *pMVar11;\n      *pMVar11 = pMVar11[3];\n      pMVar11[3] = pMVar11[6];\n      pMVar11[6] = pMVar11[7];\n      pMVar11[7] = pMVar11[8];\n      pMVar11[8] = pMVar11[5];\n      pMVar11[5] = pMVar11[2];\n      pMVar11[2] = pMVar11[1];\n      pMVar11[1] = MVar2;\n      if (iVar7 == 1) {\n        if (iVar12 != 1) {\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar1 = iVar7 + -1;\n        iVar8 = iVar12 + -1;\n        if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }\nLAB_00112613:\n        kernel->x = iVar7;\n        kernel->y = iVar8 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      __x = fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15);\n      kernel->angle = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(__x,(double)DAT_002df8cc);\n  if (((double)_DAT_002f1394 < dVar14) &&\n     (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbeb0)) {\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    if (sVar3 == 1) {\n      kernel->width = sVar4;\n      sVar5 = kernel->y;\n      kernel->height = 1;\n      kernel->y = kernel->x;\n      kernel->x = sVar5;\n      if (sVar4 != 1) {\n        fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);\n        RotateKernelInfo::lexical_block_5();\n        return;\n      }\n    }\n    else if (sVar4 == 1) {\n      kernel->height = sVar3;\n      sVar5 = kernel->x;\n      kernel->width = 1;\n      kernel->x = kernel->y;\n      kernel->y = sVar5;\n    }\n    else {\n      if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = kernel->values;\n      iVar7 = sVar3 - 1;\n      if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = kernel->x;\n      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;\n      kernel->y = (iVar7 * 2) / 2;\n    }\n    dVar15 = (double)DAT_002e8154;\n    __x = fmod(__x + (double)_DAT_002f250c,(double)DAT_002e8154);\n    dVar15 = fmod((double)(DAT_002df8c4 + (float)kernel->angle),dVar15);\n    kernel->angle = dVar15;\n  }\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    pMVar11 = kernel->values;\n    iVar7 = sVar3 * sVar4 + -1;\n    if (0 < iVar7) {\n      iVar12 = 0;\n      do {\n        MVar2 = pMVar11[iVar12];\n        pMVar11[iVar12] = pMVar11[iVar7];\n        iVar12 = iVar12 + 1;\n        pMVar11[iVar7] = MVar2;\n        iVar7 = iVar7 + -1;\n      } while (iVar12 < iVar7);\n    }\n    fVar6 = DAT_002e8154;\n    kernel->x = (sVar3 - kernel->x) + -1;\n    kernel->y = (sVar4 - kernel->y) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(__x - dVar15,(double)fVar6);\n    dVar15 = fmod(dVar15 + kernel->angle,(double)fVar6);\n    kernel->angle = dVar15;\n  }\n  return;\n}" primitive_type (ERROR "__regparm1" identifier) (function_declarator "RotateKernelInfo(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  int iVar1;\n  MagickRealType MVar2;\n  size_t sVar3;\n  size_t sVar4;\n  ssize_t sVar5;\n  float fVar6;\n  int iVar7;\n  int iVar8;\n  MagickRealType *pMVar9;\n  MagickRealType *pMVar10;\n  MagickRealType *pMVar11;\n  int iVar12;\n  MagickRealType *pMVar13;\n  double __x;\n  double dVar14;\n  double dVar15;\n  int local_3c;\n  MagickRealType *local_38;\n  MagickRealType *local_34;\n  MagickRealType *local_30;\n  \n  if (kernel->next != (KernelInfo *)0x0) {\n    RotateKernelInfo(kernel->next,angle);\n  }\n  dVar15 = (double)DAT_002e8154;\n  __x = fmod(angle,(double)DAT_002e8154);\n  if (__x < 0.0) {\n    __x = __x + dVar15;\n  }\n  if ((double)DAT_002fbea8 < __x) {\n    return;\n  }\n  if (__x <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(kernel->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    return;\n  case BlurKernel:\n    if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < __x) && (__x <= (double)DAT_002fbeb8)) {\n      __x = __x - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(__x,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) && (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbebc)\n     ) {\n    if ((kernel->width == 3) && (kernel->height == 3)) {\n      pMVar11 = kernel->values;\n      iVar7 = kernel->x;\n      iVar12 = kernel->y;\n      MVar2 = *pMVar11;\n      *pMVar11 = pMVar11[3];\n      pMVar11[3] = pMVar11[6];\n      pMVar11[6] = pMVar11[7];\n      pMVar11[7] = pMVar11[8];\n      pMVar11[8] = pMVar11[5];\n      pMVar11[5] = pMVar11[2];\n      pMVar11[2] = pMVar11[1];\n      pMVar11[1] = MVar2;\n      if (iVar7 == 1) {\n        if (iVar12 != 1) {\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar1 = iVar7 + -1;\n        iVar8 = iVar12 + -1;\n        if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }\nLAB_00112613:\n        kernel->x = iVar7;\n        kernel->y = iVar8 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      __x = fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15);\n      kernel->angle = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(__x,(double)DAT_002df8cc);\n  if (((double)_DAT_002f1394 < dVar14) &&\n     (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbeb0)) {\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    if (sVar3 == 1) {\n      kernel->width = sVar4;\n      sVar5 = kernel->y;\n      kernel->height = 1;\n      kernel->y = kernel->x;\n      kernel->x = sVar5;\n      if (sVar4 != 1) {\n        fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);\n        RotateKernelInfo::lexical_block_5();\n        return;\n      }\n    }\n    else if (sVar4 == 1) {\n      kernel->height = sVar3;\n      sVar5 = kernel->x;\n      kernel->width = 1;\n      kernel->x = kernel->y;\n      kernel->y = sVar5;\n    }\n    else {\n      if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = kernel->values;\n      iVar7 = sVar3 - 1;\n      if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = kernel->x;\n      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;\n      kernel->y = (iVar7 * 2) / 2;\n    }\n    dVar15 = (double)DAT_002e8154;\n    __x = fmod(__x + (double)_DAT_002f250c,(double)DAT_002e8154);\n    dVar15 = fmod((double)(DAT_002df8c4 + (float)kernel->angle),dVar15);\n    kernel->angle = dVar15;\n  }\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    pMVar11 = kernel->values;\n    iVar7 = sVar3 * sVar4 + -1;\n    if (0 < iVar7) {\n      iVar12 = 0;\n      do {\n        MVar2 = pMVar11[iVar12];\n        pMVar11[iVar12] = pMVar11[iVar7];\n        iVar12 = iVar12 + 1;\n        pMVar11[iVar7] = MVar2;\n        iVar7 = iVar7 + -1;\n      } while (iVar12 < iVar7);\n    }\n    fVar6 = DAT_002e8154;\n    kernel->x = (sVar3 - kernel->x) + -1;\n    kernel->y = (sVar4 - kernel->y) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(__x - dVar15,(double)fVar6);\n    dVar15 = fmod(dVar15 + kernel->angle,(double)fVar6);\n    kernel->angle = dVar15;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "MagickRealType MVar2;" type_identifier identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "ssize_t sVar5;" primitive_type identifier ;) (declaration "float fVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "MagickRealType *pMVar9;" type_identifier (pointer_declarator "*pMVar9" * identifier) ;) (declaration "MagickRealType *pMVar10;" type_identifier (pointer_declarator "*pMVar10" * 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 "double __x;" primitive_type identifier ;) (declaration "double dVar14;" primitive_type identifier ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "MagickRealType *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "MagickRealType *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "MagickRealType *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (if_statement "if (kernel->next != (KernelInfo *)0x0) {\n    RotateKernelInfo(kernel->next,angle);\n  }" if (parenthesized_expression "(kernel->next != (KernelInfo *)0x0)" ( (binary_expression "kernel->next != (KernelInfo *)0x0" (field_expression "kernel->next" identifier -> field_identifier) != (cast_expression "(KernelInfo *)0x0" ( (type_descriptor "KernelInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    RotateKernelInfo(kernel->next,angle);\n  }" { (expression_statement "RotateKernelInfo(kernel->next,angle);" (call_expression "RotateKernelInfo(kernel->next,angle)" identifier (argument_list "(kernel->next,angle)" ( (field_expression "kernel->next" identifier -> field_identifier) , identifier ))) ;) })) (expression_statement "dVar15 = (double)DAT_002e8154;" (assignment_expression "dVar15 = (double)DAT_002e8154" identifier = (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "__x = fmod(angle,(double)DAT_002e8154);" (assignment_expression "__x = 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 (__x < 0.0) {\n    __x = __x + dVar15;\n  }" if (parenthesized_expression "(__x < 0.0)" ( (binary_expression "__x < 0.0" identifier < number_literal) )) (compound_statement "{\n    __x = __x + dVar15;\n  }" { (expression_statement "__x = __x + dVar15;" (assignment_expression "__x = __x + dVar15" identifier = (binary_expression "__x + dVar15" identifier + identifier)) ;) })) (if_statement "if ((double)DAT_002fbea8 < __x) {\n    return;\n  }" if (parenthesized_expression "((double)DAT_002fbea8 < __x)" ( (binary_expression "(double)DAT_002fbea8 < __x" (cast_expression "(double)DAT_002fbea8" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (__x <= (double)DAT_002fbeac) {\n    return;\n  }" if (parenthesized_expression "(__x <= (double)DAT_002fbeac)" ( (binary_expression "__x <= (double)DAT_002fbeac" identifier <= (cast_expression "(double)DAT_002fbeac" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (switch_statement "switch(kernel->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    return;\n  case BlurKernel:\n    if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < __x) && (__x <= (double)DAT_002fbeb8)) {\n      __x = __x - (double)DAT_002df8cc;\n    }\n  }" switch (parenthesized_expression "(kernel->type)" ( (field_expression "kernel->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    return;\n  case BlurKernel:\n    if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < __x) && (__x <= (double)DAT_002fbeb8)) {\n      __x = __x - (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    return;" case identifier : (return_statement "return;" return ;)) (case_statement "case BlurKernel:\n    if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < __x) && (__x <= (double)DAT_002fbeb8)) {\n      __x = __x - (double)DAT_002df8cc;\n    }" case identifier : (if_statement "if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n      return;\n    }" if (parenthesized_expression "(((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4))" ( (binary_expression "((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)" (parenthesized_expression "((double)DAT_002fbeb0 < __x)" ( (binary_expression "(double)DAT_002fbeb0 < __x" (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(__x <= (double)DAT_002fbeb4)" ( (binary_expression "__x <= (double)DAT_002fbeb4" identifier <= (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (((double)DAT_002fbeb4 < __x) && (__x <= (double)DAT_002fbeb8)) {\n      __x = __x - (double)DAT_002df8cc;\n    }" if (parenthesized_expression "(((double)DAT_002fbeb4 < __x) && (__x <= (double)DAT_002fbeb8))" ( (binary_expression "((double)DAT_002fbeb4 < __x) && (__x <= (double)DAT_002fbeb8)" (parenthesized_expression "((double)DAT_002fbeb4 < __x)" ( (binary_expression "(double)DAT_002fbeb4 < __x" (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(__x <= (double)DAT_002fbeb8)" ( (binary_expression "__x <= (double)DAT_002fbeb8" identifier <= (cast_expression "(double)DAT_002fbeb8" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      __x = __x - (double)DAT_002df8cc;\n    }" { (expression_statement "__x = __x - (double)DAT_002df8cc;" (assignment_expression "__x = __x - (double)DAT_002df8cc" identifier = (binary_expression "__x - (double)DAT_002df8cc" identifier - (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }))) })) (expression_statement "dVar15 = (double)DAT_002df8c4;" (assignment_expression "dVar15 = (double)DAT_002df8c4" identifier = (cast_expression "(double)DAT_002df8c4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar14 = fmod(__x,(double)DAT_002df8c4);" (assignment_expression "dVar14 = fmod(__x,(double)DAT_002df8c4)" identifier = (call_expression "fmod(__x,(double)DAT_002df8c4)" identifier (argument_list "(__x,(double)DAT_002df8c4)" ( identifier , (cast_expression "(double)DAT_002df8c4" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (((double)DAT_002fbeac < dVar14) && (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbebc)\n     ) {\n    if ((kernel->width == 3) && (kernel->height == 3)) {\n      pMVar11 = kernel->values;\n      iVar7 = kernel->x;\n      iVar12 = kernel->y;\n      MVar2 = *pMVar11;\n      *pMVar11 = pMVar11[3];\n      pMVar11[3] = pMVar11[6];\n      pMVar11[6] = pMVar11[7];\n      pMVar11[7] = pMVar11[8];\n      pMVar11[8] = pMVar11[5];\n      pMVar11[5] = pMVar11[2];\n      pMVar11[2] = pMVar11[1];\n      pMVar11[1] = MVar2;\n      if (iVar7 == 1) {\n        if (iVar12 != 1) {\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar1 = iVar7 + -1;\n        iVar8 = iVar12 + -1;\n        if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }\nLAB_00112613:\n        kernel->x = iVar7;\n        kernel->y = iVar8 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      __x = fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15);\n      kernel->angle = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }" if (parenthesized_expression "(((double)DAT_002fbeac < dVar14) && (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbebc)\n     )" ( (binary_expression "((double)DAT_002fbeac < dVar14) && (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbebc)" (parenthesized_expression "((double)DAT_002fbeac < dVar14)" ( (binary_expression "(double)DAT_002fbeac < dVar14" (cast_expression "(double)DAT_002fbeac" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbebc)" ( (comma_expression "dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbebc" (assignment_expression "dVar15 = fmod(__x,dVar15)" identifier = (call_expression "fmod(__x,dVar15)" identifier (argument_list "(__x,dVar15)" ( identifier , identifier )))) , (binary_expression "dVar15 <= (double)DAT_002fbebc" identifier <= (cast_expression "(double)DAT_002fbebc" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n    if ((kernel->width == 3) && (kernel->height == 3)) {\n      pMVar11 = kernel->values;\n      iVar7 = kernel->x;\n      iVar12 = kernel->y;\n      MVar2 = *pMVar11;\n      *pMVar11 = pMVar11[3];\n      pMVar11[3] = pMVar11[6];\n      pMVar11[6] = pMVar11[7];\n      pMVar11[7] = pMVar11[8];\n      pMVar11[8] = pMVar11[5];\n      pMVar11[5] = pMVar11[2];\n      pMVar11[2] = pMVar11[1];\n      pMVar11[1] = MVar2;\n      if (iVar7 == 1) {\n        if (iVar12 != 1) {\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar1 = iVar7 + -1;\n        iVar8 = iVar12 + -1;\n        if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }\nLAB_00112613:\n        kernel->x = iVar7;\n        kernel->y = iVar8 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      __x = fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15);\n      kernel->angle = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }" { (if_statement "if ((kernel->width == 3) && (kernel->height == 3)) {\n      pMVar11 = kernel->values;\n      iVar7 = kernel->x;\n      iVar12 = kernel->y;\n      MVar2 = *pMVar11;\n      *pMVar11 = pMVar11[3];\n      pMVar11[3] = pMVar11[6];\n      pMVar11[6] = pMVar11[7];\n      pMVar11[7] = pMVar11[8];\n      pMVar11[8] = pMVar11[5];\n      pMVar11[5] = pMVar11[2];\n      pMVar11[2] = pMVar11[1];\n      pMVar11[1] = MVar2;\n      if (iVar7 == 1) {\n        if (iVar12 != 1) {\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar1 = iVar7 + -1;\n        iVar8 = iVar12 + -1;\n        if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }\nLAB_00112613:\n        kernel->x = iVar7;\n        kernel->y = iVar8 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      __x = fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15);\n      kernel->angle = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }" if (parenthesized_expression "((kernel->width == 3) && (kernel->height == 3))" ( (binary_expression "(kernel->width == 3) && (kernel->height == 3)" (parenthesized_expression "(kernel->width == 3)" ( (binary_expression "kernel->width == 3" (field_expression "kernel->width" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(kernel->height == 3)" ( (binary_expression "kernel->height == 3" (field_expression "kernel->height" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n      pMVar11 = kernel->values;\n      iVar7 = kernel->x;\n      iVar12 = kernel->y;\n      MVar2 = *pMVar11;\n      *pMVar11 = pMVar11[3];\n      pMVar11[3] = pMVar11[6];\n      pMVar11[6] = pMVar11[7];\n      pMVar11[7] = pMVar11[8];\n      pMVar11[8] = pMVar11[5];\n      pMVar11[5] = pMVar11[2];\n      pMVar11[2] = pMVar11[1];\n      pMVar11[1] = MVar2;\n      if (iVar7 == 1) {\n        if (iVar12 != 1) {\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar1 = iVar7 + -1;\n        iVar8 = iVar12 + -1;\n        if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }\nLAB_00112613:\n        kernel->x = iVar7;\n        kernel->y = iVar8 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      __x = fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15);\n      kernel->angle = dVar15;\n    }" { (expression_statement "pMVar11 = kernel->values;" (assignment_expression "pMVar11 = kernel->values" identifier = (field_expression "kernel->values" identifier -> field_identifier)) ;) (expression_statement "iVar7 = kernel->x;" (assignment_expression "iVar7 = kernel->x" identifier = (field_expression "kernel->x" identifier -> field_identifier)) ;) (expression_statement "iVar12 = kernel->y;" (assignment_expression "iVar12 = kernel->y" identifier = (field_expression "kernel->y" identifier -> field_identifier)) ;) (expression_statement "MVar2 = *pMVar11;" (assignment_expression "MVar2 = *pMVar11" identifier = (pointer_expression "*pMVar11" * identifier)) ;) (expression_statement "*pMVar11 = pMVar11[3];" (assignment_expression "*pMVar11 = pMVar11[3]" (pointer_expression "*pMVar11" * identifier) = (subscript_expression "pMVar11[3]" identifier [ number_literal ])) ;) (expression_statement "pMVar11[3] = pMVar11[6];" (assignment_expression "pMVar11[3] = pMVar11[6]" (subscript_expression "pMVar11[3]" identifier [ number_literal ]) = (subscript_expression "pMVar11[6]" identifier [ number_literal ])) ;) (expression_statement "pMVar11[6] = pMVar11[7];" (assignment_expression "pMVar11[6] = pMVar11[7]" (subscript_expression "pMVar11[6]" identifier [ number_literal ]) = (subscript_expression "pMVar11[7]" identifier [ number_literal ])) ;) (expression_statement "pMVar11[7] = pMVar11[8];" (assignment_expression "pMVar11[7] = pMVar11[8]" (subscript_expression "pMVar11[7]" identifier [ number_literal ]) = (subscript_expression "pMVar11[8]" identifier [ number_literal ])) ;) (expression_statement "pMVar11[8] = pMVar11[5];" (assignment_expression "pMVar11[8] = pMVar11[5]" (subscript_expression "pMVar11[8]" identifier [ number_literal ]) = (subscript_expression "pMVar11[5]" identifier [ number_literal ])) ;) (expression_statement "pMVar11[5] = pMVar11[2];" (assignment_expression "pMVar11[5] = pMVar11[2]" (subscript_expression "pMVar11[5]" identifier [ number_literal ]) = (subscript_expression "pMVar11[2]" identifier [ number_literal ])) ;) (expression_statement "pMVar11[2] = pMVar11[1];" (assignment_expression "pMVar11[2] = pMVar11[1]" (subscript_expression "pMVar11[2]" identifier [ number_literal ]) = (subscript_expression "pMVar11[1]" identifier [ number_literal ])) ;) (expression_statement "pMVar11[1] = MVar2;" (assignment_expression "pMVar11[1] = MVar2" (subscript_expression "pMVar11[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 1) {\n        if (iVar12 != 1) {\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar1 = iVar7 + -1;\n        iVar8 = iVar12 + -1;\n        if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }\nLAB_00112613:\n        kernel->x = iVar7;\n        kernel->y = iVar8 + 1;\n      }" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (compound_statement "{\n        if (iVar12 != 1) {\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }" { (if_statement "if (iVar12 != 1) {\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }" if (parenthesized_expression "(iVar12 != 1)" ( (binary_expression "iVar12 != 1" identifier != number_literal) )) (compound_statement "{\n          iVar8 = iVar12 + -1;\n          if (iVar8 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }" { (expression_statement "iVar8 = iVar12 + -1;" (assignment_expression "iVar8 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (if_statement "if (iVar8 != 0) goto LAB_00112676;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00112676;" goto statement_identifier ;)) (goto_statement "goto LAB_00112613;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar1 = iVar7 + -1;\n        iVar8 = iVar12 + -1;\n        if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }\nLAB_00112613:\n        kernel->x = iVar7;\n        kernel->y = iVar8 + 1;\n      }" else (compound_statement "{\n        iVar1 = iVar7 + -1;\n        iVar8 = iVar12 + -1;\n        if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }\nLAB_00112613:\n        kernel->x = iVar7;\n        kernel->y = iVar8 + 1;\n      }" { (expression_statement "iVar1 = iVar7 + -1;" (assignment_expression "iVar1 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "iVar8 = iVar12 + -1;" (assignment_expression "iVar8 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (if_statement "if (iVar1 == iVar8) {\n          iVar7 = 1;\n        }\n        else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }" if (parenthesized_expression "(iVar1 == iVar8)" ( (binary_expression "iVar1 == iVar8" identifier == identifier) )) (compound_statement "{\n          iVar7 = 1;\n        }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }" else (if_statement "if (iVar1 == 0) {\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }\n        else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00112676:\n          iVar8 = iVar12 + -1;\n          iVar7 = 2 - iVar12;\n        }" { (labeled_statement "LAB_00112676:\n          iVar8 = iVar12 + -1;" statement_identifier : (expression_statement "iVar8 = iVar12 + -1;" (assignment_expression "iVar8 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;)) (expression_statement "iVar7 = 2 - iVar12;" (assignment_expression "iVar7 = 2 - iVar12" identifier = (binary_expression "2 - iVar12" number_literal - identifier)) ;) }) (else_clause "else if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }" else (if_statement "if (iVar1 == 1 - iVar12) {\n          iVar8 = 0;\n        }\n        else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }" if (parenthesized_expression "(iVar1 == 1 - iVar12)" ( (binary_expression "iVar1 == 1 - iVar12" identifier == (binary_expression "1 - iVar12" number_literal - identifier)) )) (compound_statement "{\n          iVar8 = 0;\n        }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }" else (if_statement "if (iVar8 == 0) {\n          iVar8 = iVar1;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar8 = iVar1;\n        }" { (expression_statement "iVar8 = iVar1;" (assignment_expression "iVar8 = iVar1" identifier = identifier) ;) })))))))) (labeled_statement "LAB_00112613:\n        kernel->x = iVar7;" statement_identifier : (expression_statement "kernel->x = iVar7;" (assignment_expression "kernel->x = iVar7" (field_expression "kernel->x" identifier -> field_identifier) = identifier) ;)) (expression_statement "kernel->y = iVar8 + 1;" (assignment_expression "kernel->y = iVar8 + 1" (field_expression "kernel->y" identifier -> field_identifier) = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }))) (expression_statement "dVar15 = (double)DAT_002e8154;" (assignment_expression "dVar15 = (double)DAT_002e8154" identifier = (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "__x = fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154);" (assignment_expression "__x = fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154)" identifier = (call_expression "fmod(__x + (double)DAT_002fbeb8,(double)DAT_002e8154)" identifier (argument_list "(__x + (double)DAT_002fbeb8,(double)DAT_002e8154)" ( (binary_expression "__x + (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 "dVar15 = fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15);" (assignment_expression "dVar15 = fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15)" identifier = (call_expression "fmod((double)(_DAT_002f1394 + (float)kernel->angle),dVar15)" identifier (argument_list "((double)(_DAT_002f1394 + (float)kernel->angle),dVar15)" ( (cast_expression "(double)(_DAT_002f1394 + (float)kernel->angle)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(_DAT_002f1394 + (float)kernel->angle)" ( (binary_expression "_DAT_002f1394 + (float)kernel->angle" identifier + (cast_expression "(float)kernel->angle" ( (type_descriptor "float" primitive_type) ) (field_expression "kernel->angle" identifier -> field_identifier))) ))) , identifier )))) ;) (expression_statement "kernel->angle = dVar15;" (assignment_expression "kernel->angle = dVar15" (field_expression "kernel->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 "dVar15 = (double)DAT_002df8cc;" (assignment_expression "dVar15 = (double)DAT_002df8cc" identifier = (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar14 = fmod(__x,(double)DAT_002df8cc);" (assignment_expression "dVar14 = fmod(__x,(double)DAT_002df8cc)" identifier = (call_expression "fmod(__x,(double)DAT_002df8cc)" identifier (argument_list "(__x,(double)DAT_002df8cc)" ( identifier , (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (((double)_DAT_002f1394 < dVar14) &&\n     (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbeb0)) {\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    if (sVar3 == 1) {\n      kernel->width = sVar4;\n      sVar5 = kernel->y;\n      kernel->height = 1;\n      kernel->y = kernel->x;\n      kernel->x = sVar5;\n      if (sVar4 != 1) {\n        fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);\n        RotateKernelInfo::lexical_block_5();\n        return;\n      }\n    }\n    else if (sVar4 == 1) {\n      kernel->height = sVar3;\n      sVar5 = kernel->x;\n      kernel->width = 1;\n      kernel->x = kernel->y;\n      kernel->y = sVar5;\n    }\n    else {\n      if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = kernel->values;\n      iVar7 = sVar3 - 1;\n      if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = kernel->x;\n      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;\n      kernel->y = (iVar7 * 2) / 2;\n    }\n    dVar15 = (double)DAT_002e8154;\n    __x = fmod(__x + (double)_DAT_002f250c,(double)DAT_002e8154);\n    dVar15 = fmod((double)(DAT_002df8c4 + (float)kernel->angle),dVar15);\n    kernel->angle = dVar15;\n  }" if (parenthesized_expression "(((double)_DAT_002f1394 < dVar14) &&\n     (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbeb0))" ( (binary_expression "((double)_DAT_002f1394 < dVar14) &&\n     (dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbeb0)" (parenthesized_expression "((double)_DAT_002f1394 < dVar14)" ( (binary_expression "(double)_DAT_002f1394 < dVar14" (cast_expression "(double)_DAT_002f1394" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbeb0)" ( (comma_expression "dVar15 = fmod(__x,dVar15), dVar15 <= (double)DAT_002fbeb0" (assignment_expression "dVar15 = fmod(__x,dVar15)" identifier = (call_expression "fmod(__x,dVar15)" identifier (argument_list "(__x,dVar15)" ( identifier , identifier )))) , (binary_expression "dVar15 <= (double)DAT_002fbeb0" identifier <= (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    if (sVar3 == 1) {\n      kernel->width = sVar4;\n      sVar5 = kernel->y;\n      kernel->height = 1;\n      kernel->y = kernel->x;\n      kernel->x = sVar5;\n      if (sVar4 != 1) {\n        fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);\n        RotateKernelInfo::lexical_block_5();\n        return;\n      }\n    }\n    else if (sVar4 == 1) {\n      kernel->height = sVar3;\n      sVar5 = kernel->x;\n      kernel->width = 1;\n      kernel->x = kernel->y;\n      kernel->y = sVar5;\n    }\n    else {\n      if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = kernel->values;\n      iVar7 = sVar3 - 1;\n      if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = kernel->x;\n      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;\n      kernel->y = (iVar7 * 2) / 2;\n    }\n    dVar15 = (double)DAT_002e8154;\n    __x = fmod(__x + (double)_DAT_002f250c,(double)DAT_002e8154);\n    dVar15 = fmod((double)(DAT_002df8c4 + (float)kernel->angle),dVar15);\n    kernel->angle = dVar15;\n  }" { (expression_statement "sVar3 = kernel->width;" (assignment_expression "sVar3 = kernel->width" identifier = (field_expression "kernel->width" identifier -> field_identifier)) ;) (expression_statement "sVar4 = kernel->height;" (assignment_expression "sVar4 = kernel->height" identifier = (field_expression "kernel->height" identifier -> field_identifier)) ;) (if_statement "if (sVar3 == 1) {\n      kernel->width = sVar4;\n      sVar5 = kernel->y;\n      kernel->height = 1;\n      kernel->y = kernel->x;\n      kernel->x = sVar5;\n      if (sVar4 != 1) {\n        fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);\n        RotateKernelInfo::lexical_block_5();\n        return;\n      }\n    }\n    else if (sVar4 == 1) {\n      kernel->height = sVar3;\n      sVar5 = kernel->x;\n      kernel->width = 1;\n      kernel->x = kernel->y;\n      kernel->y = sVar5;\n    }\n    else {\n      if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = kernel->values;\n      iVar7 = sVar3 - 1;\n      if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = kernel->x;\n      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;\n      kernel->y = (iVar7 * 2) / 2;\n    }" if (parenthesized_expression "(sVar3 == 1)" ( (binary_expression "sVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      kernel->width = sVar4;\n      sVar5 = kernel->y;\n      kernel->height = 1;\n      kernel->y = kernel->x;\n      kernel->x = sVar5;\n      if (sVar4 != 1) {\n        fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);\n        RotateKernelInfo::lexical_block_5();\n        return;\n      }\n    }" { (expression_statement "kernel->width = sVar4;" (assignment_expression "kernel->width = sVar4" (field_expression "kernel->width" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar5 = kernel->y;" (assignment_expression "sVar5 = kernel->y" identifier = (field_expression "kernel->y" identifier -> field_identifier)) ;) (expression_statement "kernel->height = 1;" (assignment_expression "kernel->height = 1" (field_expression "kernel->height" identifier -> field_identifier) = number_literal) ;) (expression_statement "kernel->y = kernel->x;" (assignment_expression "kernel->y = kernel->x" (field_expression "kernel->y" identifier -> field_identifier) = (field_expression "kernel->x" identifier -> field_identifier)) ;) (expression_statement "kernel->x = sVar5;" (assignment_expression "kernel->x = sVar5" (field_expression "kernel->x" identifier -> field_identifier) = identifier) ;) (if_statement "if (sVar4 != 1) {\n        fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);\n        RotateKernelInfo::lexical_block_5();\n        return;\n      }" if (parenthesized_expression "(sVar4 != 1)" ( (binary_expression "sVar4 != 1" identifier != number_literal) )) (compound_statement "{\n        fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);\n        RotateKernelInfo::lexical_block_5();\n        return;\n      }" { (expression_statement "fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154);" (call_expression "fmod(__x + (double)DAT_002df8c4,(double)DAT_002e8154)" identifier (argument_list "(__x + (double)DAT_002df8c4,(double)DAT_002e8154)" ( (binary_expression "__x + (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) ))) ;) (labeled_statement "RotateKernelInfo::lexical_block_5();" statement_identifier : (ERROR ":" :) (expression_statement "lexical_block_5();" (call_expression "lexical_block_5()" identifier (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })) }) (else_clause "else if (sVar4 == 1) {\n      kernel->height = sVar3;\n      sVar5 = kernel->x;\n      kernel->width = 1;\n      kernel->x = kernel->y;\n      kernel->y = sVar5;\n    }\n    else {\n      if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = kernel->values;\n      iVar7 = sVar3 - 1;\n      if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = kernel->x;\n      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;\n      kernel->y = (iVar7 * 2) / 2;\n    }" else (if_statement "if (sVar4 == 1) {\n      kernel->height = sVar3;\n      sVar5 = kernel->x;\n      kernel->width = 1;\n      kernel->x = kernel->y;\n      kernel->y = sVar5;\n    }\n    else {\n      if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = kernel->values;\n      iVar7 = sVar3 - 1;\n      if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = kernel->x;\n      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;\n      kernel->y = (iVar7 * 2) / 2;\n    }" if (parenthesized_expression "(sVar4 == 1)" ( (binary_expression "sVar4 == 1" identifier == number_literal) )) (compound_statement "{\n      kernel->height = sVar3;\n      sVar5 = kernel->x;\n      kernel->width = 1;\n      kernel->x = kernel->y;\n      kernel->y = sVar5;\n    }" { (expression_statement "kernel->height = sVar3;" (assignment_expression "kernel->height = sVar3" (field_expression "kernel->height" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar5 = kernel->x;" (assignment_expression "sVar5 = kernel->x" identifier = (field_expression "kernel->x" identifier -> field_identifier)) ;) (expression_statement "kernel->width = 1;" (assignment_expression "kernel->width = 1" (field_expression "kernel->width" identifier -> field_identifier) = number_literal) ;) (expression_statement "kernel->x = kernel->y;" (assignment_expression "kernel->x = kernel->y" (field_expression "kernel->x" identifier -> field_identifier) = (field_expression "kernel->y" identifier -> field_identifier)) ;) (expression_statement "kernel->y = sVar5;" (assignment_expression "kernel->y = sVar5" (field_expression "kernel->y" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n      if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = kernel->values;\n      iVar7 = sVar3 - 1;\n      if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = kernel->x;\n      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;\n      kernel->y = (iVar7 * 2) / 2;\n    }" else (compound_statement "{\n      if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = kernel->values;\n      iVar7 = sVar3 - 1;\n      if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = kernel->x;\n      kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;\n      kernel->y = (iVar7 * 2) / 2;\n    }" { (if_statement "if (sVar3 != sVar4) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }" if (parenthesized_expression "(sVar3 != sVar4)" ( (binary_expression "sVar3 != sVar4" identifier != identifier) )) (compound_statement "{\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\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_001121fc;" goto statement_identifier ;) })) (expression_statement "local_30 = kernel->values;" (assignment_expression "local_30 = kernel->values" identifier = (field_expression "kernel->values" identifier -> field_identifier)) ;) (expression_statement "iVar7 = sVar3 - 1;" (assignment_expression "iVar7 = sVar3 - 1" identifier = (binary_expression "sVar3 - 1" identifier - number_literal)) ;) (if_statement "if ((-1 < iVar7) && (1 < (int)sVar3)) {\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }" if (parenthesized_expression "((-1 < iVar7) && (1 < (int)sVar3))" ( (binary_expression "(-1 < iVar7) && (1 < (int)sVar3)" (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) && (parenthesized_expression "(1 < (int)sVar3)" ( (binary_expression "1 < (int)sVar3" number_literal < (cast_expression "(int)sVar3" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        local_3c = 0;\n        local_34 = local_30 + sVar3 * sVar3 + -1;\n        pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);\n      }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_34 = local_30 + sVar3 * sVar3 + -1;" (assignment_expression "local_34 = local_30 + sVar3 * sVar3 + -1" identifier = (binary_expression "local_30 + sVar3 * sVar3 + -1" (binary_expression "local_30 + sVar3 * sVar3" identifier + (binary_expression "sVar3 * sVar3" identifier * identifier)) + number_literal)) ;) (expression_statement "pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8);" (assignment_expression "pMVar11 = (MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8)" identifier = (cast_expression "(MagickRealType *)((int)local_30 + iVar7 * sVar3 * 8)" ( (type_descriptor "MagickRealType *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 + iVar7 * sVar3 * 8)" ( (binary_expression "(int)local_30 + iVar7 * sVar3 * 8" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar7 * sVar3 * 8" (binary_expression "iVar7 * sVar3" identifier * identifier) * number_literal)) )))) ;) (expression_statement "local_38 = local_30;" (assignment_expression "local_38 = local_30" identifier = identifier) ;) (do_statement "do {\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        } while (local_3c <= iVar7 - local_3c);" do (compound_statement "{\n          local_38 = local_38 + sVar3;\n          iVar12 = 0;\n          pMVar9 = local_34;\n          pMVar10 = local_30;\n          pMVar13 = local_38;\n          do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          pMVar11 = pMVar11 + -sVar3;\n        }" { (expression_statement "local_38 = local_38 + sVar3;" (assignment_expression "local_38 = local_38 + sVar3" identifier = (binary_expression "local_38 + sVar3" identifier + identifier)) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "pMVar9 = local_34;" (assignment_expression "pMVar9 = local_34" identifier = identifier) ;) (expression_statement "pMVar10 = local_30;" (assignment_expression "pMVar10 = local_30" identifier = identifier) ;) (expression_statement "pMVar13 = local_38;" (assignment_expression "pMVar13 = local_38" identifier = identifier) ;) (do_statement "do {\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          } while (iVar12 < iVar7 - iVar12);" do (compound_statement "{\n            pMVar13 = pMVar13 + -1;\n            MVar2 = *pMVar10;\n            *pMVar10 = pMVar11[iVar12];\n            pMVar11[iVar12] = *pMVar9;\n            iVar12 = iVar12 + 1;\n            *pMVar9 = *pMVar13;\n            pMVar10 = pMVar10 + sVar3;\n            *pMVar13 = MVar2;\n            pMVar9 = pMVar9 + -sVar3;\n          }" { (expression_statement "pMVar13 = pMVar13 + -1;" (assignment_expression "pMVar13 = pMVar13 + -1" identifier = (binary_expression "pMVar13 + -1" identifier + number_literal)) ;) (expression_statement "MVar2 = *pMVar10;" (assignment_expression "MVar2 = *pMVar10" identifier = (pointer_expression "*pMVar10" * identifier)) ;) (expression_statement "*pMVar10 = pMVar11[iVar12];" (assignment_expression "*pMVar10 = pMVar11[iVar12]" (pointer_expression "*pMVar10" * identifier) = (subscript_expression "pMVar11[iVar12]" identifier [ identifier ])) ;) (expression_statement "pMVar11[iVar12] = *pMVar9;" (assignment_expression "pMVar11[iVar12] = *pMVar9" (subscript_expression "pMVar11[iVar12]" identifier [ identifier ]) = (pointer_expression "*pMVar9" * identifier)) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "*pMVar9 = *pMVar13;" (assignment_expression "*pMVar9 = *pMVar13" (pointer_expression "*pMVar9" * identifier) = (pointer_expression "*pMVar13" * identifier)) ;) (expression_statement "pMVar10 = pMVar10 + sVar3;" (assignment_expression "pMVar10 = pMVar10 + sVar3" identifier = (binary_expression "pMVar10 + sVar3" identifier + identifier)) ;) (expression_statement "*pMVar13 = MVar2;" (assignment_expression "*pMVar13 = MVar2" (pointer_expression "*pMVar13" * identifier) = identifier) ;) (expression_statement "pMVar9 = pMVar9 + -sVar3;" (assignment_expression "pMVar9 = pMVar9 + -sVar3" identifier = (binary_expression "pMVar9 + -sVar3" identifier + (unary_expression "-sVar3" - identifier))) ;) }) while (parenthesized_expression "(iVar12 < iVar7 - iVar12)" ( (binary_expression "iVar12 < iVar7 - iVar12" identifier < (binary_expression "iVar7 - iVar12" identifier - identifier)) )) ;) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 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 "pMVar11 = pMVar11 + -sVar3;" (assignment_expression "pMVar11 = pMVar11 + -sVar3" identifier = (binary_expression "pMVar11 + -sVar3" identifier + (unary_expression "-sVar3" - identifier))) ;) }) while (parenthesized_expression "(local_3c <= iVar7 - local_3c)" ( (binary_expression "local_3c <= iVar7 - local_3c" identifier <= (binary_expression "iVar7 - local_3c" identifier - identifier)) )) ;) })) (expression_statement "iVar7 = kernel->x;" (assignment_expression "iVar7 = kernel->x" identifier = (field_expression "kernel->x" identifier -> field_identifier)) ;) (expression_statement "kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2;" (assignment_expression "kernel->x = (int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2" (field_expression "kernel->x" identifier -> field_identifier) = (binary_expression "(int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1) / 2" (cast_expression "(int)((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1)" ( (binary_expression "(sVar3 - ((1 - sVar4) + kernel->y * 2)) + -1" (parenthesized_expression "(sVar3 - ((1 - sVar4) + kernel->y * 2))" ( (binary_expression "sVar3 - ((1 - sVar4) + kernel->y * 2)" identifier - (parenthesized_expression "((1 - sVar4) + kernel->y * 2)" ( (binary_expression "(1 - sVar4) + kernel->y * 2" (parenthesized_expression "(1 - sVar4)" ( (binary_expression "1 - sVar4" number_literal - identifier) )) + (binary_expression "kernel->y * 2" (field_expression "kernel->y" identifier -> field_identifier) * number_literal)) ))) )) + number_literal) ))) / number_literal)) ;) (expression_statement "kernel->y = (iVar7 * 2) / 2;" (assignment_expression "kernel->y = (iVar7 * 2) / 2" (field_expression "kernel->y" identifier -> field_identifier) = (binary_expression "(iVar7 * 2) / 2" (parenthesized_expression "(iVar7 * 2)" ( (binary_expression "iVar7 * 2" identifier * number_literal) )) / number_literal)) ;) }))))) (expression_statement "dVar15 = (double)DAT_002e8154;" (assignment_expression "dVar15 = (double)DAT_002e8154" identifier = (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "__x = fmod(__x + (double)_DAT_002f250c,(double)DAT_002e8154);" (assignment_expression "__x = fmod(__x + (double)_DAT_002f250c,(double)DAT_002e8154)" identifier = (call_expression "fmod(__x + (double)_DAT_002f250c,(double)DAT_002e8154)" identifier (argument_list "(__x + (double)_DAT_002f250c,(double)DAT_002e8154)" ( (binary_expression "__x + (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 "dVar15 = fmod((double)(DAT_002df8c4 + (float)kernel->angle),dVar15);" (assignment_expression "dVar15 = fmod((double)(DAT_002df8c4 + (float)kernel->angle),dVar15)" identifier = (call_expression "fmod((double)(DAT_002df8c4 + (float)kernel->angle),dVar15)" identifier (argument_list "((double)(DAT_002df8c4 + (float)kernel->angle),dVar15)" ( (cast_expression "(double)(DAT_002df8c4 + (float)kernel->angle)" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(DAT_002df8c4 + (float)kernel->angle)" ( (binary_expression "DAT_002df8c4 + (float)kernel->angle" identifier + (cast_expression "(float)kernel->angle" ( (type_descriptor "float" primitive_type) ) (field_expression "kernel->angle" identifier -> field_identifier))) ))) , identifier )))) ;) (expression_statement "kernel->angle = dVar15;" (assignment_expression "kernel->angle = dVar15" (field_expression "kernel->angle" identifier -> field_identifier) = identifier) ;) })) (labeled_statement "LAB_001121fc:\n  if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    pMVar11 = kernel->values;\n    iVar7 = sVar3 * sVar4 + -1;\n    if (0 < iVar7) {\n      iVar12 = 0;\n      do {\n        MVar2 = pMVar11[iVar12];\n        pMVar11[iVar12] = pMVar11[iVar7];\n        iVar12 = iVar12 + 1;\n        pMVar11[iVar7] = MVar2;\n        iVar7 = iVar7 + -1;\n      } while (iVar12 < iVar7);\n    }\n    fVar6 = DAT_002e8154;\n    kernel->x = (sVar3 - kernel->x) + -1;\n    kernel->y = (sVar4 - kernel->y) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(__x - dVar15,(double)fVar6);\n    dVar15 = fmod(dVar15 + kernel->angle,(double)fVar6);\n    kernel->angle = dVar15;\n  }" statement_identifier : (if_statement "if (((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)) {\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    pMVar11 = kernel->values;\n    iVar7 = sVar3 * sVar4 + -1;\n    if (0 < iVar7) {\n      iVar12 = 0;\n      do {\n        MVar2 = pMVar11[iVar12];\n        pMVar11[iVar12] = pMVar11[iVar7];\n        iVar12 = iVar12 + 1;\n        pMVar11[iVar7] = MVar2;\n        iVar7 = iVar7 + -1;\n      } while (iVar12 < iVar7);\n    }\n    fVar6 = DAT_002e8154;\n    kernel->x = (sVar3 - kernel->x) + -1;\n    kernel->y = (sVar4 - kernel->y) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(__x - dVar15,(double)fVar6);\n    dVar15 = fmod(dVar15 + kernel->angle,(double)fVar6);\n    kernel->angle = dVar15;\n  }" if (parenthesized_expression "(((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4))" ( (binary_expression "((double)DAT_002fbeb0 < __x) && (__x <= (double)DAT_002fbeb4)" (parenthesized_expression "((double)DAT_002fbeb0 < __x)" ( (binary_expression "(double)DAT_002fbeb0 < __x" (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(__x <= (double)DAT_002fbeb4)" ( (binary_expression "__x <= (double)DAT_002fbeb4" identifier <= (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    sVar3 = kernel->width;\n    sVar4 = kernel->height;\n    pMVar11 = kernel->values;\n    iVar7 = sVar3 * sVar4 + -1;\n    if (0 < iVar7) {\n      iVar12 = 0;\n      do {\n        MVar2 = pMVar11[iVar12];\n        pMVar11[iVar12] = pMVar11[iVar7];\n        iVar12 = iVar12 + 1;\n        pMVar11[iVar7] = MVar2;\n        iVar7 = iVar7 + -1;\n      } while (iVar12 < iVar7);\n    }\n    fVar6 = DAT_002e8154;\n    kernel->x = (sVar3 - kernel->x) + -1;\n    kernel->y = (sVar4 - kernel->y) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(__x - dVar15,(double)fVar6);\n    dVar15 = fmod(dVar15 + kernel->angle,(double)fVar6);\n    kernel->angle = dVar15;\n  }" { (expression_statement "sVar3 = kernel->width;" (assignment_expression "sVar3 = kernel->width" identifier = (field_expression "kernel->width" identifier -> field_identifier)) ;) (expression_statement "sVar4 = kernel->height;" (assignment_expression "sVar4 = kernel->height" identifier = (field_expression "kernel->height" identifier -> field_identifier)) ;) (expression_statement "pMVar11 = kernel->values;" (assignment_expression "pMVar11 = kernel->values" identifier = (field_expression "kernel->values" identifier -> field_identifier)) ;) (expression_statement "iVar7 = sVar3 * sVar4 + -1;" (assignment_expression "iVar7 = sVar3 * sVar4 + -1" identifier = (binary_expression "sVar3 * sVar4 + -1" (binary_expression "sVar3 * sVar4" identifier * identifier) + number_literal)) ;) (if_statement "if (0 < iVar7) {\n      iVar12 = 0;\n      do {\n        MVar2 = pMVar11[iVar12];\n        pMVar11[iVar12] = pMVar11[iVar7];\n        iVar12 = iVar12 + 1;\n        pMVar11[iVar7] = MVar2;\n        iVar7 = iVar7 + -1;\n      } while (iVar12 < iVar7);\n    }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n      iVar12 = 0;\n      do {\n        MVar2 = pMVar11[iVar12];\n        pMVar11[iVar12] = pMVar11[iVar7];\n        iVar12 = iVar12 + 1;\n        pMVar11[iVar7] = MVar2;\n        iVar7 = iVar7 + -1;\n      } while (iVar12 < iVar7);\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n        MVar2 = pMVar11[iVar12];\n        pMVar11[iVar12] = pMVar11[iVar7];\n        iVar12 = iVar12 + 1;\n        pMVar11[iVar7] = MVar2;\n        iVar7 = iVar7 + -1;\n      } while (iVar12 < iVar7);" do (compound_statement "{\n        MVar2 = pMVar11[iVar12];\n        pMVar11[iVar12] = pMVar11[iVar7];\n        iVar12 = iVar12 + 1;\n        pMVar11[iVar7] = MVar2;\n        iVar7 = iVar7 + -1;\n      }" { (expression_statement "MVar2 = pMVar11[iVar12];" (assignment_expression "MVar2 = pMVar11[iVar12]" identifier = (subscript_expression "pMVar11[iVar12]" identifier [ identifier ])) ;) (expression_statement "pMVar11[iVar12] = pMVar11[iVar7];" (assignment_expression "pMVar11[iVar12] = pMVar11[iVar7]" (subscript_expression "pMVar11[iVar12]" identifier [ identifier ]) = (subscript_expression "pMVar11[iVar7]" identifier [ identifier ])) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "pMVar11[iVar7] = MVar2;" (assignment_expression "pMVar11[iVar7] = MVar2" (subscript_expression "pMVar11[iVar7]" identifier [ identifier ]) = identifier) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 < iVar7)" ( (binary_expression "iVar12 < iVar7" identifier < identifier) )) ;) })) (expression_statement "fVar6 = DAT_002e8154;" (assignment_expression "fVar6 = DAT_002e8154" identifier = identifier) ;) (expression_statement "kernel->x = (sVar3 - kernel->x) + -1;" (assignment_expression "kernel->x = (sVar3 - kernel->x) + -1" (field_expression "kernel->x" identifier -> field_identifier) = (binary_expression "(sVar3 - kernel->x) + -1" (parenthesized_expression "(sVar3 - kernel->x)" ( (binary_expression "sVar3 - kernel->x" identifier - (field_expression "kernel->x" identifier -> field_identifier)) )) + number_literal)) ;) (expression_statement "kernel->y = (sVar4 - kernel->y) + -1;" (assignment_expression "kernel->y = (sVar4 - kernel->y) + -1" (field_expression "kernel->y" identifier -> field_identifier) = (binary_expression "(sVar4 - kernel->y) + -1" (parenthesized_expression "(sVar4 - kernel->y)" ( (binary_expression "sVar4 - kernel->y" identifier - (field_expression "kernel->y" identifier -> field_identifier)) )) + number_literal)) ;) (expression_statement "dVar15 = (double)DAT_002df8cc;" (assignment_expression "dVar15 = (double)DAT_002df8cc" identifier = (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "fmod(__x - dVar15,(double)fVar6);" (call_expression "fmod(__x - dVar15,(double)fVar6)" identifier (argument_list "(__x - dVar15,(double)fVar6)" ( (binary_expression "__x - dVar15" identifier - identifier) , (cast_expression "(double)fVar6" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (expression_statement "dVar15 = fmod(dVar15 + kernel->angle,(double)fVar6);" (assignment_expression "dVar15 = fmod(dVar15 + kernel->angle,(double)fVar6)" identifier = (call_expression "fmod(dVar15 + kernel->angle,(double)fVar6)" identifier (argument_list "(dVar15 + kernel->angle,(double)fVar6)" ( (binary_expression "dVar15 + kernel->angle" identifier + (field_expression "kernel->angle" identifier -> field_identifier)) , (cast_expression "(double)fVar6" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "kernel->angle = dVar15;" (assignment_expression "kernel->angle = dVar15" (field_expression "kernel->angle" identifier -> field_identifier) = identifier) ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void __regparm1 FUN_001120d0(undefined4 *param_1,double param_2)\n\n{\n  float fVar1;\n  undefined8 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  float fVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  double dVar14;\n  double dVar15;\n  double local_54;\n  int local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  undefined8 *local_30;\n  \n  if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }\n  dVar15 = (double)DAT_002e8154;\n  local_54 = fmod(param_2,(double)DAT_002e8154);\n  if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }\n  if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }\n  if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(local_54,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(local_54,(double)DAT_002df8cc);\n  if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;\n  iVar9 = param_1[1];\n  iVar3 = param_1[2];\n  if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }\n  dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);\n  *(double *)(param_1 + 0xe) = dVar15;\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }\n  return;\n}\n\n" (function_definition "void __regparm1 FUN_001120d0(undefined4 *param_1,double param_2)\n\n{\n  float fVar1;\n  undefined8 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  float fVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  double dVar14;\n  double dVar15;\n  double local_54;\n  int local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  undefined8 *local_30;\n  \n  if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }\n  dVar15 = (double)DAT_002e8154;\n  local_54 = fmod(param_2,(double)DAT_002e8154);\n  if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }\n  if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }\n  if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(local_54,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(local_54,(double)DAT_002df8cc);\n  if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;\n  iVar9 = param_1[1];\n  iVar3 = param_1[2];\n  if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }\n  dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);\n  *(double *)(param_1 + 0xe) = dVar15;\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }\n  return;\n}" primitive_type (ERROR "__regparm1" identifier) (function_declarator "FUN_001120d0(undefined4 *param_1,double param_2)" identifier (parameter_list "(undefined4 *param_1,double param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "double param_2" primitive_type identifier) ))) (compound_statement "{\n  float fVar1;\n  undefined8 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  float fVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  double dVar14;\n  double dVar15;\n  double local_54;\n  int local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  undefined8 *local_30;\n  \n  if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }\n  dVar15 = (double)DAT_002e8154;\n  local_54 = fmod(param_2,(double)DAT_002e8154);\n  if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }\n  if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }\n  if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(local_54,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(local_54,(double)DAT_002df8cc);\n  if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;\n  iVar9 = param_1[1];\n  iVar3 = param_1[2];\n  if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }\n  dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);\n  *(double *)(param_1 + 0xe) = dVar15;\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }\n  return;\n}" { (declaration "float fVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "float fVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined8 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined8 *puVar10;" type_identifier (pointer_declarator "*puVar10" * 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 "double dVar14;" primitive_type identifier ;) (declaration "double dVar15;" primitive_type identifier ;) (declaration "double local_54;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "undefined8 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined8 *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "undefined8 *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (if_statement "if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }" if (parenthesized_expression "(param_1[0x10] != 0)" ( (binary_expression "param_1[0x10] != 0" (subscript_expression "param_1[0x10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_001120d0(param_2);\n  }" { (expression_statement "FUN_001120d0(param_2);" (call_expression "FUN_001120d0(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) })) (expression_statement "dVar15 = (double)DAT_002e8154;" (assignment_expression "dVar15 = (double)DAT_002e8154" identifier = (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_54 = fmod(param_2,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(param_2,(double)DAT_002e8154)" identifier = (call_expression "fmod(param_2,(double)DAT_002e8154)" identifier (argument_list "(param_2,(double)DAT_002e8154)" ( identifier , (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }" if (parenthesized_expression "(local_54 < 0.0)" ( (binary_expression "local_54 < 0.0" identifier < number_literal) )) (compound_statement "{\n    local_54 = local_54 + dVar15;\n  }" { (expression_statement "local_54 = local_54 + dVar15;" (assignment_expression "local_54 = local_54 + dVar15" identifier = (binary_expression "local_54 + dVar15" identifier + identifier)) ;) })) (if_statement "if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }" if (parenthesized_expression "((double)DAT_002fbea8 < local_54)" ( (binary_expression "(double)DAT_002fbea8 < local_54" (cast_expression "(double)DAT_002fbea8" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }" if (parenthesized_expression "(local_54 <= (double)DAT_002fbeac)" ( (binary_expression "local_54 <= (double)DAT_002fbeac" identifier <= (cast_expression "(double)DAT_002fbeac" ( (type_descriptor "double" primitive_type) ) identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (switch_statement "switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }" switch (parenthesized_expression "(*param_1)" ( (pointer_expression "*param_1" * identifier) )) (compound_statement "{\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }" { (case_statement "case 2:" case number_literal :) (case_statement "case 3:" case number_literal :) (case_statement "case 4:" case number_literal :) (case_statement "case 8:" case number_literal :) (case_statement "case 0xf:" case number_literal :) (case_statement "case 0x10:" case number_literal :) (case_statement "case 0x13:" case number_literal :) (case_statement "case 0x14:" case number_literal :) (case_statement "case 0x15:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x21:" case number_literal :) (case_statement "case 0x22:" case number_literal :) (case_statement "case 0x24:\n    return;" case number_literal : (return_statement "return;" return ;)) (case_statement "case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }" case number_literal : (if_statement "if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }" if (parenthesized_expression "(((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4))" ( (binary_expression "((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)" (parenthesized_expression "((double)DAT_002fbeb0 < local_54)" ( (binary_expression "(double)DAT_002fbeb0 < local_54" (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(local_54 <= (double)DAT_002fbeb4)" ( (binary_expression "local_54 <= (double)DAT_002fbeb4" identifier <= (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (if_statement "if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }" if (parenthesized_expression "(((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8))" ( (binary_expression "((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)" (parenthesized_expression "((double)DAT_002fbeb4 < local_54)" ( (binary_expression "(double)DAT_002fbeb4 < local_54" (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(local_54 <= (double)DAT_002fbeb8)" ( (binary_expression "local_54 <= (double)DAT_002fbeb8" identifier <= (cast_expression "(double)DAT_002fbeb8" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }" { (expression_statement "local_54 = local_54 - (double)DAT_002df8cc;" (assignment_expression "local_54 = local_54 - (double)DAT_002df8cc" identifier = (binary_expression "local_54 - (double)DAT_002df8cc" identifier - (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier))) ;) }))) })) (expression_statement "dVar15 = (double)DAT_002df8c4;" (assignment_expression "dVar15 = (double)DAT_002df8c4" identifier = (cast_expression "(double)DAT_002df8c4" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar14 = fmod(local_54,(double)DAT_002df8c4);" (assignment_expression "dVar14 = fmod(local_54,(double)DAT_002df8c4)" identifier = (call_expression "fmod(local_54,(double)DAT_002df8c4)" identifier (argument_list "(local_54,(double)DAT_002df8c4)" ( identifier , (cast_expression "(double)DAT_002df8c4" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }" if (parenthesized_expression "(((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc))" ( (binary_expression "((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)" (parenthesized_expression "((double)DAT_002fbeac < dVar14)" ( (binary_expression "(double)DAT_002fbeac < dVar14" (cast_expression "(double)DAT_002fbeac" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)" ( (comma_expression "dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc" (assignment_expression "dVar15 = fmod(local_54,dVar15)" identifier = (call_expression "fmod(local_54,dVar15)" identifier (argument_list "(local_54,dVar15)" ( identifier , identifier )))) , (binary_expression "dVar15 <= (double)DAT_002fbebc" identifier <= (cast_expression "(double)DAT_002fbebc" ( (type_descriptor "double" primitive_type) ) identifier))) ))) )) (compound_statement "{\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }" { (if_statement "if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }" if (parenthesized_expression "((param_1[1] == 3) && (param_1[2] == 3))" ( (binary_expression "(param_1[1] == 3) && (param_1[2] == 3)" (parenthesized_expression "(param_1[1] == 3)" ( (binary_expression "param_1[1] == 3" (subscript_expression "param_1[1]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(param_1[2] == 3)" ( (binary_expression "param_1[2] == 3" (subscript_expression "param_1[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }" { (expression_statement "puVar11 = (undefined8 *)param_1[5];" (assignment_expression "puVar11 = (undefined8 *)param_1[5]" identifier = (cast_expression "(undefined8 *)param_1[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar9 = param_1[3];" (assignment_expression "iVar9 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = param_1[4];" (assignment_expression "iVar3 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = *puVar11;" (assignment_expression "uVar2 = *puVar11" identifier = (pointer_expression "*puVar11" * identifier)) ;) (expression_statement "*puVar11 = puVar11[3];" (assignment_expression "*puVar11 = puVar11[3]" (pointer_expression "*puVar11" * identifier) = (subscript_expression "puVar11[3]" identifier [ number_literal ])) ;) (expression_statement "puVar11[3] = puVar11[6];" (assignment_expression "puVar11[3] = puVar11[6]" (subscript_expression "puVar11[3]" identifier [ number_literal ]) = (subscript_expression "puVar11[6]" identifier [ number_literal ])) ;) (expression_statement "puVar11[6] = puVar11[7];" (assignment_expression "puVar11[6] = puVar11[7]" (subscript_expression "puVar11[6]" identifier [ number_literal ]) = (subscript_expression "puVar11[7]" identifier [ number_literal ])) ;) (expression_statement "puVar11[7] = puVar11[8];" (assignment_expression "puVar11[7] = puVar11[8]" (subscript_expression "puVar11[7]" identifier [ number_literal ]) = (subscript_expression "puVar11[8]" identifier [ number_literal ])) ;) (expression_statement "puVar11[8] = puVar11[5];" (assignment_expression "puVar11[8] = puVar11[5]" (subscript_expression "puVar11[8]" identifier [ number_literal ]) = (subscript_expression "puVar11[5]" identifier [ number_literal ])) ;) (expression_statement "puVar11[5] = puVar11[2];" (assignment_expression "puVar11[5] = puVar11[2]" (subscript_expression "puVar11[5]" identifier [ number_literal ]) = (subscript_expression "puVar11[2]" identifier [ number_literal ])) ;) (expression_statement "puVar11[2] = puVar11[1];" (assignment_expression "puVar11[2] = puVar11[1]" (subscript_expression "puVar11[2]" identifier [ number_literal ]) = (subscript_expression "puVar11[1]" identifier [ number_literal ])) ;) (expression_statement "puVar11[1] = uVar2;" (assignment_expression "puVar11[1] = uVar2" (subscript_expression "puVar11[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }" { (if_statement "if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }" if (parenthesized_expression "(iVar3 != 1)" ( (binary_expression "iVar3 != 1" identifier != number_literal) )) (compound_statement "{\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }" { (expression_statement "iVar7 = iVar3 + -1;" (assignment_expression "iVar7 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (iVar7 != 0) goto LAB_00112676;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00112676;" goto statement_identifier ;)) (goto_statement "goto LAB_00112613;" goto statement_identifier ;) })) }) (else_clause "else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }" else (compound_statement "{\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }" { (expression_statement "iVar6 = iVar9 + -1;" (assignment_expression "iVar6 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar3 + -1;" (assignment_expression "iVar7 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" if (parenthesized_expression "(iVar6 == iVar7)" ( (binary_expression "iVar6 == iVar7" identifier == identifier) )) (compound_statement "{\n          iVar9 = 1;\n        }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) }) (else_clause "else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" else (if_statement "if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }" { (labeled_statement "LAB_00112676:\n          iVar7 = iVar3 + -1;" statement_identifier : (expression_statement "iVar7 = iVar3 + -1;" (assignment_expression "iVar7 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;)) (expression_statement "iVar9 = 2 - iVar3;" (assignment_expression "iVar9 = 2 - iVar3" identifier = (binary_expression "2 - iVar3" number_literal - identifier)) ;) }) (else_clause "else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" else (if_statement "if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" if (parenthesized_expression "(iVar6 == 1 - iVar3)" ( (binary_expression "iVar6 == 1 - iVar3" identifier == (binary_expression "1 - iVar3" number_literal - identifier)) )) (compound_statement "{\n          iVar7 = 0;\n        }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) }) (else_clause "else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" else (if_statement "if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = iVar6;\n        }" { (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" identifier = identifier) ;) })))))))) (labeled_statement "LAB_00112613:\n        param_1[3] = iVar9;" statement_identifier : (expression_statement "param_1[3] = iVar9;" (assignment_expression "param_1[3] = iVar9" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;)) (expression_statement "param_1[4] = iVar7 + 1;" (assignment_expression "param_1[4] = iVar7 + 1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }))) (expression_statement "dVar15 = (double)DAT_002e8154;" (assignment_expression "dVar15 = (double)DAT_002e8154" identifier = (cast_expression "(double)DAT_002e8154" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154)" identifier = (call_expression "fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154)" identifier (argument_list "(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154)" ( (binary_expression "local_54 + (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 "dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);" (assignment_expression "dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15)" identifier = (call_expression "fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15)" identifier (argument_list "((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15)" ( (cast_expression "(double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe))" ( (binary_expression "_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)" identifier + (cast_expression "(float)*(double *)(param_1 + 0xe)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))))) ))) , identifier )))) ;) (expression_statement "*(double *)(param_1 + 0xe) = dVar15;" (assignment_expression "*(double *)(param_1 + 0xe) = dVar15" (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = 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 "dVar15 = (double)DAT_002df8cc;" (assignment_expression "dVar15 = (double)DAT_002df8cc" identifier = (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "dVar14 = fmod(local_54,(double)DAT_002df8cc);" (assignment_expression "dVar14 = fmod(local_54,(double)DAT_002df8cc)" identifier = (call_expression "fmod(local_54,(double)DAT_002df8cc)" identifier (argument_list "(local_54,(double)DAT_002df8cc)" ( identifier , (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (if_statement "if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;" if (parenthesized_expression "((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15))" ( (binary_expression "(dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)" (parenthesized_expression "(dVar14 <= (double)_DAT_002f1394)" ( (binary_expression "dVar14 <= (double)_DAT_002f1394" identifier <= (cast_expression "(double)_DAT_002f1394" ( (type_descriptor "double" primitive_type) ) identifier)) )) || (parenthesized_expression "(dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)" ( (comma_expression "dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15" (assignment_expression "dVar15 = fmod(local_54,dVar15)" identifier = (call_expression "fmod(local_54,dVar15)" identifier (argument_list "(local_54,dVar15)" ( identifier , identifier )))) , (binary_expression "(double)DAT_002fbeb0 < dVar15" (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier) < identifier)) ))) )) (goto_statement "goto LAB_001121fc;" goto statement_identifier ;)) (expression_statement "iVar9 = param_1[1];" (assignment_expression "iVar9 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = param_1[2];" (assignment_expression "iVar3 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }" { (expression_statement "param_1[1] = iVar3;" (assignment_expression "param_1[1] = iVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = param_1[4];" (assignment_expression "uVar4 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[4] = param_1[3];" (assignment_expression "param_1[4] = param_1[3]" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = uVar4;" (assignment_expression "param_1[3] = uVar4" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" identifier = identifier) ;) (if_statement "if (iVar3 == 1) goto LAB_00112452;" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00112452;" goto statement_identifier ;)) (expression_statement "local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154)" identifier = (call_expression "fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154)" identifier (argument_list "(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154)" ( (binary_expression "local_54 + (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 (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }" else (compound_statement "{\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }" { (if_statement "if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }" { (expression_statement "param_1[2] = iVar9;" (assignment_expression "param_1[2] = iVar9" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar4 = param_1[3];" (assignment_expression "uVar4 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[3] = param_1[4];" (assignment_expression "param_1[3] = param_1[4]" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "param_1[4] = uVar4;" (assignment_expression "param_1[4] = uVar4" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }" else (compound_statement "{\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }" { (if_statement "if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }" if (parenthesized_expression "(iVar9 != iVar3)" ( (binary_expression "iVar9 != iVar3" identifier != identifier) )) (compound_statement "{\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\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_001121fc;" goto statement_identifier ;) })) (expression_statement "local_30 = (undefined8 *)param_1[5];" (assignment_expression "local_30 = (undefined8 *)param_1[5]" identifier = (cast_expression "(undefined8 *)param_1[5]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = iVar9 + -1;" (assignment_expression "iVar7 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ;) (if_statement "if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }" if (parenthesized_expression "((-1 < iVar7) && (1 < iVar9))" ( (binary_expression "(-1 < iVar7) && (1 < iVar9)" (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) && (parenthesized_expression "(1 < iVar9)" ( (binary_expression "1 < iVar9" number_literal < identifier) ))) )) (compound_statement "{\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }" { (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_34 = local_30 + iVar9 * iVar9 + -1;" (assignment_expression "local_34 = local_30 + iVar9 * iVar9 + -1" identifier = (binary_expression "local_30 + iVar9 * iVar9 + -1" (binary_expression "local_30 + iVar9 * iVar9" identifier + (binary_expression "iVar9 * iVar9" identifier * identifier)) + number_literal)) ;) (expression_statement "puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);" (assignment_expression "puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8)" identifier = (cast_expression "(undefined8 *)((int)local_30 + iVar7 * iVar9 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_30 + iVar7 * iVar9 * 8)" ( (binary_expression "(int)local_30 + iVar7 * iVar9 * 8" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar7 * iVar9 * 8" (binary_expression "iVar7 * iVar9" identifier * identifier) * number_literal)) )))) ;) (expression_statement "local_38 = local_30;" (assignment_expression "local_38 = local_30" identifier = identifier) ;) (do_statement "do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);" do (compound_statement "{\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        }" { (expression_statement "local_38 = local_38 + iVar9;" (assignment_expression "local_38 = local_38 + iVar9" identifier = (binary_expression "local_38 + iVar9" identifier + identifier)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar8 = local_34;" (assignment_expression "puVar8 = local_34" identifier = identifier) ;) (expression_statement "puVar10 = local_30;" (assignment_expression "puVar10 = local_30" identifier = identifier) ;) (expression_statement "puVar13 = local_38;" (assignment_expression "puVar13 = local_38" identifier = identifier) ;) (do_statement "do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);" do (compound_statement "{\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          }" { (expression_statement "puVar13 = puVar13 + -1;" (assignment_expression "puVar13 = puVar13 + -1" identifier = (binary_expression "puVar13 + -1" identifier + number_literal)) ;) (expression_statement "uVar2 = *puVar10;" (assignment_expression "uVar2 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "*puVar10 = puVar11[iVar6];" (assignment_expression "*puVar10 = puVar11[iVar6]" (pointer_expression "*puVar10" * identifier) = (subscript_expression "puVar11[iVar6]" identifier [ identifier ])) ;) (expression_statement "puVar11[iVar6] = *puVar8;" (assignment_expression "puVar11[iVar6] = *puVar8" (subscript_expression "puVar11[iVar6]" identifier [ identifier ]) = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "*puVar8 = *puVar13;" (assignment_expression "*puVar8 = *puVar13" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "puVar10 = puVar10 + iVar9;" (assignment_expression "puVar10 = puVar10 + iVar9" identifier = (binary_expression "puVar10 + iVar9" identifier + identifier)) ;) (expression_statement "*puVar13 = uVar2;" (assignment_expression "*puVar13 = uVar2" (pointer_expression "*puVar13" * identifier) = identifier) ;) (expression_statement "puVar8 = puVar8 + -iVar9;" (assignment_expression "puVar8 = puVar8 + -iVar9" identifier = (binary_expression "puVar8 + -iVar9" identifier + (unary_expression "-iVar9" - identifier))) ;) }) while (parenthesized_expression "(iVar6 < iVar7 - iVar6)" ( (binary_expression "iVar6 < iVar7 - iVar6" identifier < (binary_expression "iVar7 - iVar6" identifier - identifier)) )) ;) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" identifier = (binary_expression "local_30 + 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 "puVar11 = puVar11 + -iVar9;" (assignment_expression "puVar11 = puVar11 + -iVar9" identifier = (binary_expression "puVar11 + -iVar9" identifier + (unary_expression "-iVar9" - identifier))) ;) }) while (parenthesized_expression "(local_3c <= iVar7 - local_3c)" ( (binary_expression "local_3c <= iVar7 - local_3c" identifier <= (binary_expression "iVar7 - local_3c" identifier - identifier)) )) ;) })) (expression_statement "iVar7 = param_1[3];" (assignment_expression "iVar7 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;" (assignment_expression "param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2" (parenthesized_expression "((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1)" ( (binary_expression "(iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1" (parenthesized_expression "(iVar9 - ((1 - iVar3) + param_1[4] * 2))" ( (binary_expression "iVar9 - ((1 - iVar3) + param_1[4] * 2)" identifier - (parenthesized_expression "((1 - iVar3) + param_1[4] * 2)" ( (binary_expression "(1 - iVar3) + param_1[4] * 2" (parenthesized_expression "(1 - iVar3)" ( (binary_expression "1 - iVar3" number_literal - identifier) )) + (binary_expression "param_1[4] * 2" (subscript_expression "param_1[4]" identifier [ number_literal ]) * number_literal)) ))) )) + number_literal) )) / number_literal)) ;) (expression_statement "param_1[4] = (iVar7 * 2) / 2;" (assignment_expression "param_1[4] = (iVar7 * 2) / 2" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "(iVar7 * 2) / 2" (parenthesized_expression "(iVar7 * 2)" ( (binary_expression "iVar7 * 2" identifier * number_literal) )) / number_literal)) ;) }))) (labeled_statement "LAB_00112452:\n    fVar1 = DAT_002e8154;" statement_identifier : (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" identifier = identifier) ;)) (expression_statement "local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154)" identifier = (call_expression "fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154)" identifier (argument_list "(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154)" ( (binary_expression "local_54 + (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 "dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);" (assignment_expression "dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1)" identifier = (call_expression "fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1)" identifier (argument_list "((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1)" ( (cast_expression "(double)(fVar5 + (float)*(double *)(param_1 + 0xe))" ( (type_descriptor "double" primitive_type) ) (parenthesized_expression "(fVar5 + (float)*(double *)(param_1 + 0xe))" ( (binary_expression "fVar5 + (float)*(double *)(param_1 + 0xe)" identifier + (cast_expression "(float)*(double *)(param_1 + 0xe)" ( (type_descriptor "float" primitive_type) ) (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))))) ))) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "*(double *)(param_1 + 0xe) = dVar15;" (assignment_expression "*(double *)(param_1 + 0xe) = dVar15" (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = identifier) ;) (labeled_statement "LAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }" statement_identifier : (if_statement "if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }" if (parenthesized_expression "(((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4))" ( (binary_expression "((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)" (parenthesized_expression "((double)DAT_002fbeb0 < local_54)" ( (binary_expression "(double)DAT_002fbeb0 < local_54" (cast_expression "(double)DAT_002fbeb0" ( (type_descriptor "double" primitive_type) ) identifier) < identifier) )) && (parenthesized_expression "(local_54 <= (double)DAT_002fbeb4)" ( (binary_expression "local_54 <= (double)DAT_002fbeb4" identifier <= (cast_expression "(double)DAT_002fbeb4" ( (type_descriptor "double" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }" { (expression_statement "iVar9 = param_1[1];" (assignment_expression "iVar9 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = param_1[2];" (assignment_expression "iVar3 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = param_1[5];" (assignment_expression "iVar7 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "iVar6 = iVar9 * iVar3 + -1;" (assignment_expression "iVar6 = iVar9 * iVar3 + -1" identifier = (binary_expression "iVar9 * iVar3 + -1" (binary_expression "iVar9 * iVar3" identifier * identifier) + number_literal)) ;) (if_statement "if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }" if (parenthesized_expression "(0 < iVar6)" ( (binary_expression "0 < iVar6" number_literal < identifier) )) (compound_statement "{\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);" do (compound_statement "{\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      }" { (expression_statement "uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);" (assignment_expression "uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8)" identifier = (pointer_expression "*(undefined8 *)(iVar7 + iVar12 * 8)" * (cast_expression "(undefined8 *)(iVar7 + iVar12 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar12 * 8)" ( (binary_expression "iVar7 + iVar12 * 8" identifier + (binary_expression "iVar12 * 8" identifier * number_literal)) ))))) ;) (expression_statement "*(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);" (assignment_expression "*(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8)" (pointer_expression "*(undefined8 *)(iVar7 + iVar12 * 8)" * (cast_expression "(undefined8 *)(iVar7 + iVar12 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar12 * 8)" ( (binary_expression "iVar7 + iVar12 * 8" identifier + (binary_expression "iVar12 * 8" identifier * number_literal)) )))) = (pointer_expression "*(undefined8 *)(iVar7 + iVar6 * 8)" * (cast_expression "(undefined8 *)(iVar7 + iVar6 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar6 * 8)" ( (binary_expression "iVar7 + iVar6 * 8" identifier + (binary_expression "iVar6 * 8" identifier * number_literal)) ))))) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;" (assignment_expression "*(undefined8 *)(iVar7 + iVar6 * 8) = uVar2" (pointer_expression "*(undefined8 *)(iVar7 + iVar6 * 8)" * (cast_expression "(undefined8 *)(iVar7 + iVar6 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar6 * 8)" ( (binary_expression "iVar7 + iVar6 * 8" identifier + (binary_expression "iVar6 * 8" identifier * number_literal)) )))) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar12 < iVar6)" ( (binary_expression "iVar12 < iVar6" identifier < identifier) )) ;) })) (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" identifier = identifier) ;) (expression_statement "param_1[3] = (iVar9 - param_1[3]) + -1;" (assignment_expression "param_1[3] = (iVar9 - param_1[3]) + -1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "(iVar9 - param_1[3]) + -1" (parenthesized_expression "(iVar9 - param_1[3])" ( (binary_expression "iVar9 - param_1[3]" identifier - (subscript_expression "param_1[3]" identifier [ number_literal ])) )) + number_literal)) ;) (expression_statement "param_1[4] = (iVar3 - param_1[4]) + -1;" (assignment_expression "param_1[4] = (iVar3 - param_1[4]) + -1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "(iVar3 - param_1[4]) + -1" (parenthesized_expression "(iVar3 - param_1[4])" ( (binary_expression "iVar3 - param_1[4]" identifier - (subscript_expression "param_1[4]" identifier [ number_literal ])) )) + number_literal)) ;) (expression_statement "dVar15 = (double)DAT_002df8cc;" (assignment_expression "dVar15 = (double)DAT_002df8cc" identifier = (cast_expression "(double)DAT_002df8cc" ( (type_descriptor "double" primitive_type) ) identifier)) ;) (expression_statement "fmod(local_54 - dVar15,(double)fVar1);" (call_expression "fmod(local_54 - dVar15,(double)fVar1)" identifier (argument_list "(local_54 - dVar15,(double)fVar1)" ( (binary_expression "local_54 - dVar15" identifier - identifier) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) ))) ;) (expression_statement "dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);" (assignment_expression "dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1)" identifier = (call_expression "fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1)" identifier (argument_list "(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1)" ( (binary_expression "dVar15 + *(double *)(param_1 + 0xe)" identifier + (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) ))))) , (cast_expression "(double)fVar1" ( (type_descriptor "double" primitive_type) ) identifier) )))) ;) (expression_statement "*(double *)(param_1 + 0xe) = dVar15;" (assignment_expression "*(double *)(param_1 + 0xe) = dVar15" (pointer_expression "*(double *)(param_1 + 0xe)" * (cast_expression "(double *)(param_1 + 0xe)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) = identifier) ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 + IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (return_statement return ;) })) (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (return_statement return ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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) ) IDENT) < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (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 = (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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression LIT - IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression 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 ]) = (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 ( (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 ( (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) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (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) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (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 = IDENT) ;) }) (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 ( (string_literal " string_content ") ))) ;) (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 < 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (binary_expression IDENT * IDENT) * LIT)) )))) ;) (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 (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 (parenthesized_expression ( (binary_expression IDENT * LIT) )) / LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (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 = 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) )))))) ))) , (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) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 = IDENT) ;) (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 = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression 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) ;) }))) (return_statement return ;) })))
(function_definition "void __regparm1 FUN_001120d0(undefined4 *param_1,double param_2)\n\n{\n  float fVar1;\n  undefined8 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  float fVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  double dVar14;\n  double dVar15;\n  double local_54;\n  int local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  undefined8 *local_30;\n  \n  if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }\n  dVar15 = (double)DAT_002e8154;\n  local_54 = fmod(param_2,(double)DAT_002e8154);\n  if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }\n  if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }\n  if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(local_54,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(local_54,(double)DAT_002df8cc);\n  if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;\n  iVar9 = param_1[1];\n  iVar3 = param_1[2];\n  if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }\n  dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);\n  *(double *)(param_1 + 0xe) = dVar15;\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm1" (identifier "__regparm1")) (function_declarator "FUN_001120d0(undefined4 *param_1,double param_2)" (identifier "FUN_001120d0") (parameter_list "(undefined4 *param_1,double param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "double param_2" (primitive_type "double") (identifier "param_2")) () ")"))) (compound_statement "{\n  float fVar1;\n  undefined8 uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  float fVar5;\n  int iVar6;\n  int iVar7;\n  undefined8 *puVar8;\n  int iVar9;\n  undefined8 *puVar10;\n  undefined8 *puVar11;\n  int iVar12;\n  undefined8 *puVar13;\n  double dVar14;\n  double dVar15;\n  double local_54;\n  int local_3c;\n  undefined8 *local_38;\n  undefined8 *local_34;\n  undefined8 *local_30;\n  \n  if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }\n  dVar15 = (double)DAT_002e8154;\n  local_54 = fmod(param_2,(double)DAT_002e8154);\n  if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }\n  if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }\n  if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }\n  switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }\n  dVar15 = (double)DAT_002df8c4;\n  dVar14 = fmod(local_54,(double)DAT_002df8c4);\n  if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }\n  dVar15 = (double)DAT_002df8cc;\n  dVar14 = fmod(local_54,(double)DAT_002df8cc);\n  if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;\n  iVar9 = param_1[1];\n  iVar3 = param_1[2];\n  if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }\n  dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);\n  *(double *)(param_1 + 0xe) = dVar15;\nLAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }\n  return;\n}" ({ "{") (declaration "float fVar1;" (primitive_type "float") (identifier "fVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "float fVar5;" (primitive_type "float") (identifier "fVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined8 *puVar8;" (type_identifier "undefined8") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined8 *puVar10;" (type_identifier "undefined8") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (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 "double dVar14;" (primitive_type "double") (identifier "dVar14") (; ";")) (declaration "double dVar15;" (primitive_type "double") (identifier "dVar15") (; ";")) (declaration "double local_54;" (primitive_type "double") (identifier "local_54") (; ";")) (declaration "int local_3c;" (primitive_type "int") (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")) (; ";")) (declaration "undefined8 *local_30;" (type_identifier "undefined8") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (if_statement "if (param_1[0x10] != 0) {\n    FUN_001120d0(param_2);\n  }" (if "if") (parenthesized_expression "(param_1[0x10] != 0)" (( "(") (binary_expression "param_1[0x10] != 0" (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_001120d0(param_2);\n  }" ({ "{") (expression_statement "FUN_001120d0(param_2);" (call_expression "FUN_001120d0(param_2)" (identifier "FUN_001120d0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (expression_statement "dVar15 = (double)DAT_002e8154;" (assignment_expression "dVar15 = (double)DAT_002e8154" (identifier "dVar15") (= "=") (cast_expression "(double)DAT_002e8154" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8154"))) (; ";")) (expression_statement "local_54 = fmod(param_2,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(param_2,(double)DAT_002e8154)" (identifier "local_54") (= "=") (call_expression "fmod(param_2,(double)DAT_002e8154)" (identifier "fmod") (argument_list "(param_2,(double)DAT_002e8154)" (( "(") (identifier "param_2") (, ",") (cast_expression "(double)DAT_002e8154" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8154")) () ")")))) (; ";")) (if_statement "if (local_54 < 0.0) {\n    local_54 = local_54 + dVar15;\n  }" (if "if") (parenthesized_expression "(local_54 < 0.0)" (( "(") (binary_expression "local_54 < 0.0" (identifier "local_54") (< "<") (number_literal "0.0")) () ")")) (compound_statement "{\n    local_54 = local_54 + dVar15;\n  }" ({ "{") (expression_statement "local_54 = local_54 + dVar15;" (assignment_expression "local_54 = local_54 + dVar15" (identifier "local_54") (= "=") (binary_expression "local_54 + dVar15" (identifier "local_54") (+ "+") (identifier "dVar15"))) (; ";")) (} "}"))) (if_statement "if ((double)DAT_002fbea8 < local_54) {\n    return;\n  }" (if "if") (parenthesized_expression "((double)DAT_002fbea8 < local_54)" (( "(") (binary_expression "(double)DAT_002fbea8 < local_54" (cast_expression "(double)DAT_002fbea8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbea8")) (< "<") (identifier "local_54")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (local_54 <= (double)DAT_002fbeac) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_54 <= (double)DAT_002fbeac)" (( "(") (binary_expression "local_54 <= (double)DAT_002fbeac" (identifier "local_54") (<= "<=") (cast_expression "(double)DAT_002fbeac" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbeac"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (switch_statement "switch(*param_1) {\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }" (switch "switch") (parenthesized_expression "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")) (compound_statement "{\n  case 2:\n  case 3:\n  case 4:\n  case 8:\n  case 0xf:\n  case 0x10:\n  case 0x13:\n  case 0x14:\n  case 0x15:\n  case 0x17:\n  case 0x21:\n  case 0x22:\n  case 0x24:\n    return;\n  case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }\n  }" ({ "{") (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 3:" (case "case") (number_literal "3") (: ":")) (case_statement "case 4:" (case "case") (number_literal "4") (: ":")) (case_statement "case 8:" (case "case") (number_literal "8") (: ":")) (case_statement "case 0xf:" (case "case") (number_literal "0xf") (: ":")) (case_statement "case 0x10:" (case "case") (number_literal "0x10") (: ":")) (case_statement "case 0x13:" (case "case") (number_literal "0x13") (: ":")) (case_statement "case 0x14:" (case "case") (number_literal "0x14") (: ":")) (case_statement "case 0x15:" (case "case") (number_literal "0x15") (: ":")) (case_statement "case 0x17:" (case "case") (number_literal "0x17") (: ":")) (case_statement "case 0x21:" (case "case") (number_literal "0x21") (: ":")) (case_statement "case 0x22:" (case "case") (number_literal "0x22") (: ":")) (case_statement "case 0x24:\n    return;" (case "case") (number_literal "0x24") (: ":") (return_statement "return;" (return "return") (; ";"))) (case_statement "case 5:\n    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }\n    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }" (case "case") (number_literal "5") (: ":") (if_statement "if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n      return;\n    }" (if "if") (parenthesized_expression "(((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4))" (( "(") (binary_expression "((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)" (parenthesized_expression "((double)DAT_002fbeb0 < local_54)" (( "(") (binary_expression "(double)DAT_002fbeb0 < local_54" (cast_expression "(double)DAT_002fbeb0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbeb0")) (< "<") (identifier "local_54")) () ")")) (&& "&&") (parenthesized_expression "(local_54 <= (double)DAT_002fbeb4)" (( "(") (binary_expression "local_54 <= (double)DAT_002fbeb4" (identifier "local_54") (<= "<=") (cast_expression "(double)DAT_002fbeb4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbeb4"))) () ")"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }" (if "if") (parenthesized_expression "(((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8))" (( "(") (binary_expression "((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)" (parenthesized_expression "((double)DAT_002fbeb4 < local_54)" (( "(") (binary_expression "(double)DAT_002fbeb4 < local_54" (cast_expression "(double)DAT_002fbeb4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbeb4")) (< "<") (identifier "local_54")) () ")")) (&& "&&") (parenthesized_expression "(local_54 <= (double)DAT_002fbeb8)" (( "(") (binary_expression "local_54 <= (double)DAT_002fbeb8" (identifier "local_54") (<= "<=") (cast_expression "(double)DAT_002fbeb8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbeb8"))) () ")"))) () ")")) (compound_statement "{\n      local_54 = local_54 - (double)DAT_002df8cc;\n    }" ({ "{") (expression_statement "local_54 = local_54 - (double)DAT_002df8cc;" (assignment_expression "local_54 = local_54 - (double)DAT_002df8cc" (identifier "local_54") (= "=") (binary_expression "local_54 - (double)DAT_002df8cc" (identifier "local_54") (- "-") (cast_expression "(double)DAT_002df8cc" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8cc")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "dVar15 = (double)DAT_002df8c4;" (assignment_expression "dVar15 = (double)DAT_002df8c4" (identifier "dVar15") (= "=") (cast_expression "(double)DAT_002df8c4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8c4"))) (; ";")) (expression_statement "dVar14 = fmod(local_54,(double)DAT_002df8c4);" (assignment_expression "dVar14 = fmod(local_54,(double)DAT_002df8c4)" (identifier "dVar14") (= "=") (call_expression "fmod(local_54,(double)DAT_002df8c4)" (identifier "fmod") (argument_list "(local_54,(double)DAT_002df8c4)" (( "(") (identifier "local_54") (, ",") (cast_expression "(double)DAT_002df8c4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8c4")) () ")")))) (; ";")) (if_statement "if (((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }" (if "if") (parenthesized_expression "(((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc))" (( "(") (binary_expression "((double)DAT_002fbeac < dVar14) &&\n     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)" (parenthesized_expression "((double)DAT_002fbeac < dVar14)" (( "(") (binary_expression "(double)DAT_002fbeac < dVar14" (cast_expression "(double)DAT_002fbeac" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbeac")) (< "<") (identifier "dVar14")) () ")")) (&& "&&") (parenthesized_expression "(dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)" (( "(") (comma_expression "dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc" (assignment_expression "dVar15 = fmod(local_54,dVar15)" (identifier "dVar15") (= "=") (call_expression "fmod(local_54,dVar15)" (identifier "fmod") (argument_list "(local_54,dVar15)" (( "(") (identifier "local_54") (, ",") (identifier "dVar15") () ")")))) (, ",") (binary_expression "dVar15 <= (double)DAT_002fbebc" (identifier "dVar15") (<= "<=") (cast_expression "(double)DAT_002fbebc" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbebc")))) () ")"))) () ")")) (compound_statement "{\n    if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }\n  }" ({ "{") (if_statement "if ((param_1[1] == 3) && (param_1[2] == 3)) {\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }\n    else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }" (if "if") (parenthesized_expression "((param_1[1] == 3) && (param_1[2] == 3))" (( "(") (binary_expression "(param_1[1] == 3) && (param_1[2] == 3)" (parenthesized_expression "(param_1[1] == 3)" (( "(") (binary_expression "param_1[1] == 3" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(param_1[2] == 3)" (( "(") (binary_expression "param_1[2] == 3" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n      puVar11 = (undefined8 *)param_1[5];\n      iVar9 = param_1[3];\n      iVar3 = param_1[4];\n      uVar2 = *puVar11;\n      *puVar11 = puVar11[3];\n      puVar11[3] = puVar11[6];\n      puVar11[6] = puVar11[7];\n      puVar11[7] = puVar11[8];\n      puVar11[8] = puVar11[5];\n      puVar11[5] = puVar11[2];\n      puVar11[2] = puVar11[1];\n      puVar11[1] = uVar2;\n      if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }\n      dVar15 = (double)DAT_002e8154;\n      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);\n      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);\n      *(double *)(param_1 + 0xe) = dVar15;\n    }" ({ "{") (expression_statement "puVar11 = (undefined8 *)param_1[5];" (assignment_expression "puVar11 = (undefined8 *)param_1[5]" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)param_1[5]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "iVar9 = param_1[3];" (assignment_expression "iVar9 = param_1[3]" (identifier "iVar9") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar3 = param_1[4];" (assignment_expression "iVar3 = param_1[4]" (identifier "iVar3") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar2 = *puVar11;" (assignment_expression "uVar2 = *puVar11" (identifier "uVar2") (= "=") (pointer_expression "*puVar11" (* "*") (identifier "puVar11"))) (; ";")) (expression_statement "*puVar11 = puVar11[3];" (assignment_expression "*puVar11 = puVar11[3]" (pointer_expression "*puVar11" (* "*") (identifier "puVar11")) (= "=") (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar11[3] = puVar11[6];" (assignment_expression "puVar11[3] = puVar11[6]" (subscript_expression "puVar11[3]" (identifier "puVar11") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar11[6]" (identifier "puVar11") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar11[6] = puVar11[7];" (assignment_expression "puVar11[6] = puVar11[7]" (subscript_expression "puVar11[6]" (identifier "puVar11") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar11[7]" (identifier "puVar11") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar11[7] = puVar11[8];" (assignment_expression "puVar11[7] = puVar11[8]" (subscript_expression "puVar11[7]" (identifier "puVar11") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar11[8]" (identifier "puVar11") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar11[8] = puVar11[5];" (assignment_expression "puVar11[8] = puVar11[5]" (subscript_expression "puVar11[8]" (identifier "puVar11") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar11[5] = puVar11[2];" (assignment_expression "puVar11[5] = puVar11[2]" (subscript_expression "puVar11[5]" (identifier "puVar11") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar11[2] = puVar11[1];" (assignment_expression "puVar11[2] = puVar11[1]" (subscript_expression "puVar11[2]" (identifier "puVar11") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar11[1] = uVar2;" (assignment_expression "puVar11[1] = uVar2" (subscript_expression "puVar11[1]" (identifier "puVar11") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (iVar9 == 1) {\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }\n      else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }" (if "if") (parenthesized_expression "(iVar9 == 1)" (( "(") (binary_expression "iVar9 == 1" (identifier "iVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }\n      }" ({ "{") (if_statement "if (iVar3 != 1) {\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }" (if "if") (parenthesized_expression "(iVar3 != 1)" (( "(") (binary_expression "iVar3 != 1" (identifier "iVar3") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          iVar7 = iVar3 + -1;\n          if (iVar7 != 0) goto LAB_00112676;\n          goto LAB_00112613;\n        }" ({ "{") (expression_statement "iVar7 = iVar3 + -1;" (assignment_expression "iVar7 = iVar3 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_00112676;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00112676;" (goto "goto") (statement_identifier "LAB_00112676") (; ";"))) (goto_statement "goto LAB_00112613;" (goto "goto") (statement_identifier "LAB_00112613") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }" (else "else") (compound_statement "{\n        iVar6 = iVar9 + -1;\n        iVar7 = iVar3 + -1;\n        if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }\nLAB_00112613:\n        param_1[3] = iVar9;\n        param_1[4] = iVar7 + 1;\n      }" ({ "{") (expression_statement "iVar6 = iVar9 + -1;" (assignment_expression "iVar6 = iVar9 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar7 = iVar3 + -1;" (assignment_expression "iVar7 = iVar3 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar6 == iVar7) {\n          iVar9 = 1;\n        }\n        else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" (if "if") (parenthesized_expression "(iVar6 == iVar7)" (( "(") (binary_expression "iVar6 == iVar7" (identifier "iVar6") (== "==") (identifier "iVar7")) () ")")) (compound_statement "{\n          iVar9 = 1;\n        }" ({ "{") (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" (else "else") (if_statement "if (iVar6 == 0) {\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }\n        else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00112676:\n          iVar7 = iVar3 + -1;\n          iVar9 = 2 - iVar3;\n        }" ({ "{") (labeled_statement "LAB_00112676:\n          iVar7 = iVar3 + -1;" (statement_identifier "LAB_00112676") (: ":") (expression_statement "iVar7 = iVar3 + -1;" (assignment_expression "iVar7 = iVar3 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";"))) (expression_statement "iVar9 = 2 - iVar3;" (assignment_expression "iVar9 = 2 - iVar3" (identifier "iVar9") (= "=") (binary_expression "2 - iVar3" (number_literal "2") (- "-") (identifier "iVar3"))) (; ";")) (} "}")) (else_clause "else if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" (else "else") (if_statement "if (iVar6 == 1 - iVar3) {\n          iVar7 = 0;\n        }\n        else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" (if "if") (parenthesized_expression "(iVar6 == 1 - iVar3)" (( "(") (binary_expression "iVar6 == 1 - iVar3" (identifier "iVar6") (== "==") (binary_expression "1 - iVar3" (number_literal "1") (- "-") (identifier "iVar3"))) () ")")) (compound_statement "{\n          iVar7 = 0;\n        }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" (else "else") (if_statement "if (iVar7 == 0) {\n          iVar7 = iVar6;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar7 = iVar6;\n        }" ({ "{") (expression_statement "iVar7 = iVar6;" (assignment_expression "iVar7 = iVar6" (identifier "iVar7") (= "=") (identifier "iVar6")) (; ";")) (} "}"))))))))) (labeled_statement "LAB_00112613:\n        param_1[3] = iVar9;" (statement_identifier "LAB_00112613") (: ":") (expression_statement "param_1[3] = iVar9;" (assignment_expression "param_1[3] = iVar9" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar9")) (; ";"))) (expression_statement "param_1[4] = iVar7 + 1;" (assignment_expression "param_1[4] = iVar7 + 1" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "dVar15 = (double)DAT_002e8154;" (assignment_expression "dVar15 = (double)DAT_002e8154" (identifier "dVar15") (= "=") (cast_expression "(double)DAT_002e8154" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8154"))) (; ";")) (expression_statement "local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154)" (identifier "local_54") (= "=") (call_expression "fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154)" (identifier "fmod") (argument_list "(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154)" (( "(") (binary_expression "local_54 + (double)DAT_002fbeb8" (identifier "local_54") (+ "+") (cast_expression "(double)DAT_002fbeb8" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbeb8"))) (, ",") (cast_expression "(double)DAT_002e8154" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8154")) () ")")))) (; ";")) (expression_statement "dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);" (assignment_expression "dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15)" (identifier "dVar15") (= "=") (call_expression "fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15)" (identifier "fmod") (argument_list "((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15)" (( "(") (cast_expression "(double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe))" (( "(") (binary_expression "_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)" (identifier "_DAT_002f1394") (+ "+") (cast_expression "(float)*(double *)(param_1 + 0xe)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_1 + 0xe)" (* "*") (cast_expression "(double *)(param_1 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")")))))) () ")"))) (, ",") (identifier "dVar15") () ")")))) (; ";")) (expression_statement "*(double *)(param_1 + 0xe) = dVar15;" (assignment_expression "*(double *)(param_1 + 0xe) = dVar15" (pointer_expression "*(double *)(param_1 + 0xe)" (* "*") (cast_expression "(double *)(param_1 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "dVar15")) (; ";")) (} "}")) (else_clause "else {\n      perror("Unable to rotate non-3x3 kernel by 45 degrees");\n    }" (else "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 "perror") (argument_list "("Unable to rotate non-3x3 kernel by 45 degrees")" (( "(") (string_literal ""Unable to rotate non-3x3 kernel by 45 degrees"" (" """) (string_content "Unable to rotate non-3x3 kernel by 45 degrees") (" """)) () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "dVar15 = (double)DAT_002df8cc;" (assignment_expression "dVar15 = (double)DAT_002df8cc" (identifier "dVar15") (= "=") (cast_expression "(double)DAT_002df8cc" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8cc"))) (; ";")) (expression_statement "dVar14 = fmod(local_54,(double)DAT_002df8cc);" (assignment_expression "dVar14 = fmod(local_54,(double)DAT_002df8cc)" (identifier "dVar14") (= "=") (call_expression "fmod(local_54,(double)DAT_002df8cc)" (identifier "fmod") (argument_list "(local_54,(double)DAT_002df8cc)" (( "(") (identifier "local_54") (, ",") (cast_expression "(double)DAT_002df8cc" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8cc")) () ")")))) (; ";")) (if_statement "if ((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;" (if "if") (parenthesized_expression "((dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15))" (( "(") (binary_expression "(dVar14 <= (double)_DAT_002f1394) ||\n     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)" (parenthesized_expression "(dVar14 <= (double)_DAT_002f1394)" (( "(") (binary_expression "dVar14 <= (double)_DAT_002f1394" (identifier "dVar14") (<= "<=") (cast_expression "(double)_DAT_002f1394" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "_DAT_002f1394"))) () ")")) (|| "||") (parenthesized_expression "(dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)" (( "(") (comma_expression "dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15" (assignment_expression "dVar15 = fmod(local_54,dVar15)" (identifier "dVar15") (= "=") (call_expression "fmod(local_54,dVar15)" (identifier "fmod") (argument_list "(local_54,dVar15)" (( "(") (identifier "local_54") (, ",") (identifier "dVar15") () ")")))) (, ",") (binary_expression "(double)DAT_002fbeb0 < dVar15" (cast_expression "(double)DAT_002fbeb0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbeb0")) (< "<") (identifier "dVar15"))) () ")"))) () ")")) (goto_statement "goto LAB_001121fc;" (goto "goto") (statement_identifier "LAB_001121fc") (; ";"))) (expression_statement "iVar9 = param_1[1];" (assignment_expression "iVar9 = param_1[1]" (identifier "iVar9") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar3 = param_1[2];" (assignment_expression "iVar3 = param_1[2]" (identifier "iVar3") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (iVar9 == 1) {\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }\n  else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }" (if "if") (parenthesized_expression "(iVar9 == 1)" (( "(") (binary_expression "iVar9 == 1" (identifier "iVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    param_1[1] = iVar3;\n    uVar4 = param_1[4];\n    param_1[2] = 1;\n    param_1[4] = param_1[3];\n    param_1[3] = uVar4;\n    fVar1 = DAT_002e8154;\n    if (iVar3 == 1) goto LAB_00112452;\n    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);\n    fVar5 = _DAT_002f250c;\n  }" ({ "{") (expression_statement "param_1[1] = iVar3;" (assignment_expression "param_1[1] = iVar3" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "uVar4 = param_1[4];" (assignment_expression "uVar4 = param_1[4]" (identifier "uVar4") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "param_1[2] = 1;" (assignment_expression "param_1[2] = 1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[4] = param_1[3];" (assignment_expression "param_1[4] = param_1[3]" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "param_1[3] = uVar4;" (assignment_expression "param_1[3] = uVar4" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" (identifier "fVar1") (= "=") (identifier "DAT_002e8154")) (; ";")) (if_statement "if (iVar3 == 1) goto LAB_00112452;" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00112452;" (goto "goto") (statement_identifier "LAB_00112452") (; ";"))) (expression_statement "local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154)" (identifier "local_54") (= "=") (call_expression "fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154)" (identifier "fmod") (argument_list "(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154)" (( "(") (binary_expression "local_54 + (double)DAT_002df8c4" (identifier "local_54") (+ "+") (cast_expression "(double)DAT_002df8c4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8c4"))) (, ",") (cast_expression "(double)DAT_002e8154" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8154")) () ")")))) (; ";")) (expression_statement "fVar5 = _DAT_002f250c;" (assignment_expression "fVar5 = _DAT_002f250c" (identifier "fVar5") (= "=") (identifier "_DAT_002f250c")) (; ";")) (} "}")) (else_clause "else {\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }" (else "else") (compound_statement "{\n    if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }\nLAB_00112452:\n    fVar1 = DAT_002e8154;\n    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);\n    fVar5 = DAT_002df8c4;\n  }" ({ "{") (if_statement "if (iVar3 == 1) {\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }\n    else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      param_1[2] = iVar9;\n      uVar4 = param_1[3];\n      param_1[1] = 1;\n      param_1[3] = param_1[4];\n      param_1[4] = uVar4;\n    }" ({ "{") (expression_statement "param_1[2] = iVar9;" (assignment_expression "param_1[2] = iVar9" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "uVar4 = param_1[3];" (assignment_expression "uVar4 = param_1[3]" (identifier "uVar4") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "param_1[1] = 1;" (assignment_expression "param_1[1] = 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1[3] = param_1[4];" (assignment_expression "param_1[3] = param_1[4]" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "param_1[4] = uVar4;" (assignment_expression "param_1[4] = uVar4" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (} "}")) (else_clause "else {\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }" (else "else") (compound_statement "{\n      if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }\n      local_30 = (undefined8 *)param_1[5];\n      iVar7 = iVar9 + -1;\n      if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }\n      iVar7 = param_1[3];\n      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;\n      param_1[4] = (iVar7 * 2) / 2;\n    }" ({ "{") (if_statement "if (iVar9 != iVar3) {\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\n      }" (if "if") (parenthesized_expression "(iVar9 != iVar3)" (( "(") (binary_expression "iVar9 != iVar3" (identifier "iVar9") (!= "!=") (identifier "iVar3")) () ")")) (compound_statement "{\n        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");\n        goto LAB_001121fc;\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 "perror") (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 "Unable to rotate a non-square, non-linear kernel 90 degrees") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_001121fc;" (goto "goto") (statement_identifier "LAB_001121fc") (; ";")) (} "}"))) (expression_statement "local_30 = (undefined8 *)param_1[5];" (assignment_expression "local_30 = (undefined8 *)param_1[5]" (identifier "local_30") (= "=") (cast_expression "(undefined8 *)param_1[5]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "iVar7 = iVar9 + -1;" (assignment_expression "iVar7 = iVar9 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if ((-1 < iVar7) && (1 < iVar9)) {\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }" (if "if") (parenthesized_expression "((-1 < iVar7) && (1 < iVar9))" (( "(") (binary_expression "(-1 < iVar7) && (1 < iVar9)" (parenthesized_expression "(-1 < iVar7)" (( "(") (binary_expression "-1 < iVar7" (number_literal "-1") (< "<") (identifier "iVar7")) () ")")) (&& "&&") (parenthesized_expression "(1 < iVar9)" (( "(") (binary_expression "1 < iVar9" (number_literal "1") (< "<") (identifier "iVar9")) () ")"))) () ")")) (compound_statement "{\n        local_3c = 0;\n        local_34 = local_30 + iVar9 * iVar9 + -1;\n        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);\n        local_38 = local_30;\n        do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);\n      }" ({ "{") (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = local_30 + iVar9 * iVar9 + -1;" (assignment_expression "local_34 = local_30 + iVar9 * iVar9 + -1" (identifier "local_34") (= "=") (binary_expression "local_30 + iVar9 * iVar9 + -1" (binary_expression "local_30 + iVar9 * iVar9" (identifier "local_30") (+ "+") (binary_expression "iVar9 * iVar9" (identifier "iVar9") (* "*") (identifier "iVar9"))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);" (assignment_expression "puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8)" (identifier "puVar11") (= "=") (cast_expression "(undefined8 *)((int)local_30 + iVar7 * iVar9 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_30 + iVar7 * iVar9 * 8)" (( "(") (binary_expression "(int)local_30 + iVar7 * iVar9 * 8" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (+ "+") (binary_expression "iVar7 * iVar9 * 8" (binary_expression "iVar7 * iVar9" (identifier "iVar7") (* "*") (identifier "iVar9")) (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "local_38 = local_30;" (assignment_expression "local_38 = local_30" (identifier "local_38") (= "=") (identifier "local_30")) (; ";")) (do_statement "do {\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        } while (local_3c <= iVar7 - local_3c);" (do "do") (compound_statement "{\n          local_38 = local_38 + iVar9;\n          iVar6 = 0;\n          puVar8 = local_34;\n          puVar10 = local_30;\n          puVar13 = local_38;\n          do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);\n          local_3c = local_3c + 1;\n          local_30 = local_30 + 1;\n          local_34 = local_34 + -1;\n          puVar11 = puVar11 + -iVar9;\n        }" ({ "{") (expression_statement "local_38 = local_38 + iVar9;" (assignment_expression "local_38 = local_38 + iVar9" (identifier "local_38") (= "=") (binary_expression "local_38 + iVar9" (identifier "local_38") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar8 = local_34;" (assignment_expression "puVar8 = local_34" (identifier "puVar8") (= "=") (identifier "local_34")) (; ";")) (expression_statement "puVar10 = local_30;" (assignment_expression "puVar10 = local_30" (identifier "puVar10") (= "=") (identifier "local_30")) (; ";")) (expression_statement "puVar13 = local_38;" (assignment_expression "puVar13 = local_38" (identifier "puVar13") (= "=") (identifier "local_38")) (; ";")) (do_statement "do {\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          } while (iVar6 < iVar7 - iVar6);" (do "do") (compound_statement "{\n            puVar13 = puVar13 + -1;\n            uVar2 = *puVar10;\n            *puVar10 = puVar11[iVar6];\n            puVar11[iVar6] = *puVar8;\n            iVar6 = iVar6 + 1;\n            *puVar8 = *puVar13;\n            puVar10 = puVar10 + iVar9;\n            *puVar13 = uVar2;\n            puVar8 = puVar8 + -iVar9;\n          }" ({ "{") (expression_statement "puVar13 = puVar13 + -1;" (assignment_expression "puVar13 = puVar13 + -1" (identifier "puVar13") (= "=") (binary_expression "puVar13 + -1" (identifier "puVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar2 = *puVar10;" (assignment_expression "uVar2 = *puVar10" (identifier "uVar2") (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "*puVar10 = puVar11[iVar6];" (assignment_expression "*puVar10 = puVar11[iVar6]" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (subscript_expression "puVar11[iVar6]" (identifier "puVar11") ([ "[") (identifier "iVar6") (] "]"))) (; ";")) (expression_statement "puVar11[iVar6] = *puVar8;" (assignment_expression "puVar11[iVar6] = *puVar8" (subscript_expression "puVar11[iVar6]" (identifier "puVar11") ([ "[") (identifier "iVar6") (] "]")) (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar8 = *puVar13;" (assignment_expression "*puVar8 = *puVar13" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "puVar10 = puVar10 + iVar9;" (assignment_expression "puVar10 = puVar10 + iVar9" (identifier "puVar10") (= "=") (binary_expression "puVar10 + iVar9" (identifier "puVar10") (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "*puVar13 = uVar2;" (assignment_expression "*puVar13 = uVar2" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "puVar8 = puVar8 + -iVar9;" (assignment_expression "puVar8 = puVar8 + -iVar9" (identifier "puVar8") (= "=") (binary_expression "puVar8 + -iVar9" (identifier "puVar8") (+ "+") (unary_expression "-iVar9" (- "-") (identifier "iVar9")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 < iVar7 - iVar6)" (( "(") (binary_expression "iVar6 < iVar7 - iVar6" (identifier "iVar6") (< "<") (binary_expression "iVar7 - iVar6" (identifier "iVar7") (- "-") (identifier "iVar6"))) () ")")) (; ";")) (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" (identifier "local_3c") (= "=") (binary_expression "local_3c + 1" (identifier "local_3c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_30 = local_30 + 1;" (assignment_expression "local_30 = local_30 + 1" (identifier "local_30") (= "=") (binary_expression "local_30 + 1" (identifier "local_30") (+ "+") (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 "puVar11 = puVar11 + -iVar9;" (assignment_expression "puVar11 = puVar11 + -iVar9" (identifier "puVar11") (= "=") (binary_expression "puVar11 + -iVar9" (identifier "puVar11") (+ "+") (unary_expression "-iVar9" (- "-") (identifier "iVar9")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_3c <= iVar7 - local_3c)" (( "(") (binary_expression "local_3c <= iVar7 - local_3c" (identifier "local_3c") (<= "<=") (binary_expression "iVar7 - local_3c" (identifier "iVar7") (- "-") (identifier "local_3c"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar7 = param_1[3];" (assignment_expression "iVar7 = param_1[3]" (identifier "iVar7") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;" (assignment_expression "param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2" (parenthesized_expression "((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1)" (( "(") (binary_expression "(iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1" (parenthesized_expression "(iVar9 - ((1 - iVar3) + param_1[4] * 2))" (( "(") (binary_expression "iVar9 - ((1 - iVar3) + param_1[4] * 2)" (identifier "iVar9") (- "-") (parenthesized_expression "((1 - iVar3) + param_1[4] * 2)" (( "(") (binary_expression "(1 - iVar3) + param_1[4] * 2" (parenthesized_expression "(1 - iVar3)" (( "(") (binary_expression "1 - iVar3" (number_literal "1") (- "-") (identifier "iVar3")) () ")")) (+ "+") (binary_expression "param_1[4] * 2" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (* "*") (number_literal "2"))) () ")"))) () ")")) (+ "+") (number_literal "-1")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (expression_statement "param_1[4] = (iVar7 * 2) / 2;" (assignment_expression "param_1[4] = (iVar7 * 2) / 2" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(iVar7 * 2) / 2" (parenthesized_expression "(iVar7 * 2)" (( "(") (binary_expression "iVar7 * 2" (identifier "iVar7") (* "*") (number_literal "2")) () ")")) (/ "/") (number_literal "2"))) (; ";")) (} "}")))) (labeled_statement "LAB_00112452:\n    fVar1 = DAT_002e8154;" (statement_identifier "LAB_00112452") (: ":") (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" (identifier "fVar1") (= "=") (identifier "DAT_002e8154")) (; ";"))) (expression_statement "local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);" (assignment_expression "local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154)" (identifier "local_54") (= "=") (call_expression "fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154)" (identifier "fmod") (argument_list "(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154)" (( "(") (binary_expression "local_54 + (double)_DAT_002f250c" (identifier "local_54") (+ "+") (cast_expression "(double)_DAT_002f250c" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "_DAT_002f250c"))) (, ",") (cast_expression "(double)DAT_002e8154" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002e8154")) () ")")))) (; ";")) (expression_statement "fVar5 = DAT_002df8c4;" (assignment_expression "fVar5 = DAT_002df8c4" (identifier "fVar5") (= "=") (identifier "DAT_002df8c4")) (; ";")) (} "}")))) (expression_statement "dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);" (assignment_expression "dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1)" (identifier "dVar15") (= "=") (call_expression "fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1)" (identifier "fmod") (argument_list "((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1)" (( "(") (cast_expression "(double)(fVar5 + (float)*(double *)(param_1 + 0xe))" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (parenthesized_expression "(fVar5 + (float)*(double *)(param_1 + 0xe))" (( "(") (binary_expression "fVar5 + (float)*(double *)(param_1 + 0xe)" (identifier "fVar5") (+ "+") (cast_expression "(float)*(double *)(param_1 + 0xe)" (( "(") (type_descriptor "float" (primitive_type "float")) () ")") (pointer_expression "*(double *)(param_1 + 0xe)" (* "*") (cast_expression "(double *)(param_1 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")")))))) () ")"))) (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")")))) (; ";")) (expression_statement "*(double *)(param_1 + 0xe) = dVar15;" (assignment_expression "*(double *)(param_1 + 0xe) = dVar15" (pointer_expression "*(double *)(param_1 + 0xe)" (* "*") (cast_expression "(double *)(param_1 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "dVar15")) (; ";")) (labeled_statement "LAB_001121fc:\n  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }" (statement_identifier "LAB_001121fc") (: ":") (if_statement "if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }" (if "if") (parenthesized_expression "(((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4))" (( "(") (binary_expression "((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)" (parenthesized_expression "((double)DAT_002fbeb0 < local_54)" (( "(") (binary_expression "(double)DAT_002fbeb0 < local_54" (cast_expression "(double)DAT_002fbeb0" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbeb0")) (< "<") (identifier "local_54")) () ")")) (&& "&&") (parenthesized_expression "(local_54 <= (double)DAT_002fbeb4)" (( "(") (binary_expression "local_54 <= (double)DAT_002fbeb4" (identifier "local_54") (<= "<=") (cast_expression "(double)DAT_002fbeb4" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002fbeb4"))) () ")"))) () ")")) (compound_statement "{\n    iVar9 = param_1[1];\n    iVar3 = param_1[2];\n    iVar7 = param_1[5];\n    iVar6 = iVar9 * iVar3 + -1;\n    if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }\n    fVar1 = DAT_002e8154;\n    param_1[3] = (iVar9 - param_1[3]) + -1;\n    param_1[4] = (iVar3 - param_1[4]) + -1;\n    dVar15 = (double)DAT_002df8cc;\n    fmod(local_54 - dVar15,(double)fVar1);\n    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);\n    *(double *)(param_1 + 0xe) = dVar15;\n  }" ({ "{") (expression_statement "iVar9 = param_1[1];" (assignment_expression "iVar9 = param_1[1]" (identifier "iVar9") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar3 = param_1[2];" (assignment_expression "iVar3 = param_1[2]" (identifier "iVar3") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar7 = param_1[5];" (assignment_expression "iVar7 = param_1[5]" (identifier "iVar7") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar6 = iVar9 * iVar3 + -1;" (assignment_expression "iVar6 = iVar9 * iVar3 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar9 * iVar3 + -1" (binary_expression "iVar9 * iVar3" (identifier "iVar9") (* "*") (identifier "iVar3")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (0 < iVar6) {\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }" (if "if") (parenthesized_expression "(0 < iVar6)" (( "(") (binary_expression "0 < iVar6" (number_literal "0") (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n      iVar12 = 0;\n      do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);\n    }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      } while (iVar12 < iVar6);" (do "do") (compound_statement "{\n        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);\n        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);\n        iVar12 = iVar12 + 1;\n        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;\n        iVar6 = iVar6 + -1;\n      }" ({ "{") (expression_statement "uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);" (assignment_expression "uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(iVar7 + iVar12 * 8)" (* "*") (cast_expression "(undefined8 *)(iVar7 + iVar12 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + iVar12 * 8)" (( "(") (binary_expression "iVar7 + iVar12 * 8" (identifier "iVar7") (+ "+") (binary_expression "iVar12 * 8" (identifier "iVar12") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "*(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);" (assignment_expression "*(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8)" (pointer_expression "*(undefined8 *)(iVar7 + iVar12 * 8)" (* "*") (cast_expression "(undefined8 *)(iVar7 + iVar12 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + iVar12 * 8)" (( "(") (binary_expression "iVar7 + iVar12 * 8" (identifier "iVar7") (+ "+") (binary_expression "iVar12 * 8" (identifier "iVar12") (* "*") (number_literal "8"))) () ")")))) (= "=") (pointer_expression "*(undefined8 *)(iVar7 + iVar6 * 8)" (* "*") (cast_expression "(undefined8 *)(iVar7 + iVar6 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + iVar6 * 8)" (( "(") (binary_expression "iVar7 + iVar6 * 8" (identifier "iVar7") (+ "+") (binary_expression "iVar6 * 8" (identifier "iVar6") (* "*") (number_literal "8"))) () ")"))))) (; ";")) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;" (assignment_expression "*(undefined8 *)(iVar7 + iVar6 * 8) = uVar2" (pointer_expression "*(undefined8 *)(iVar7 + iVar6 * 8)" (* "*") (cast_expression "(undefined8 *)(iVar7 + iVar6 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + iVar6 * 8)" (( "(") (binary_expression "iVar7 + iVar6 * 8" (identifier "iVar7") (+ "+") (binary_expression "iVar6 * 8" (identifier "iVar6") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 < iVar6)" (( "(") (binary_expression "iVar12 < iVar6" (identifier "iVar12") (< "<") (identifier "iVar6")) () ")")) (; ";")) (} "}"))) (expression_statement "fVar1 = DAT_002e8154;" (assignment_expression "fVar1 = DAT_002e8154" (identifier "fVar1") (= "=") (identifier "DAT_002e8154")) (; ";")) (expression_statement "param_1[3] = (iVar9 - param_1[3]) + -1;" (assignment_expression "param_1[3] = (iVar9 - param_1[3]) + -1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "(iVar9 - param_1[3]) + -1" (parenthesized_expression "(iVar9 - param_1[3])" (( "(") (binary_expression "iVar9 - param_1[3]" (identifier "iVar9") (- "-") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) () ")")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_1[4] = (iVar3 - param_1[4]) + -1;" (assignment_expression "param_1[4] = (iVar3 - param_1[4]) + -1" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "(iVar3 - param_1[4]) + -1" (parenthesized_expression "(iVar3 - param_1[4])" (( "(") (binary_expression "iVar3 - param_1[4]" (identifier "iVar3") (- "-") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) () ")")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "dVar15 = (double)DAT_002df8cc;" (assignment_expression "dVar15 = (double)DAT_002df8cc" (identifier "dVar15") (= "=") (cast_expression "(double)DAT_002df8cc" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "DAT_002df8cc"))) (; ";")) (expression_statement "fmod(local_54 - dVar15,(double)fVar1);" (call_expression "fmod(local_54 - dVar15,(double)fVar1)" (identifier "fmod") (argument_list "(local_54 - dVar15,(double)fVar1)" (( "(") (binary_expression "local_54 - dVar15" (identifier "local_54") (- "-") (identifier "dVar15")) (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")"))) (; ";")) (expression_statement "dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);" (assignment_expression "dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1)" (identifier "dVar15") (= "=") (call_expression "fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1)" (identifier "fmod") (argument_list "(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1)" (( "(") (binary_expression "dVar15 + *(double *)(param_1 + 0xe)" (identifier "dVar15") (+ "+") (pointer_expression "*(double *)(param_1 + 0xe)" (* "*") (cast_expression "(double *)(param_1 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")"))))) (, ",") (cast_expression "(double)fVar1" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (identifier "fVar1")) () ")")))) (; ";")) (expression_statement "*(double *)(param_1 + 0xe) = dVar15;" (assignment_expression "*(double *)(param_1 + 0xe) = dVar15" (pointer_expression "*(double *)(param_1 + 0xe)" (* "*") (cast_expression "(double *)(param_1 + 0xe)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "dVar15")) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm1 function_1(type_1 *kernel,double angle)

{
  int var_8;
  type_2 MVar2;
  size_t var_11;
  size_t var_12;
  ssize_t sVar5;
  float fVar6;
  int var_5;
  int var_7;
  type_2 *var_18;
  type_2 *var_17;
  type_2 *var_21;
  int var_6;
  type_2 *var_16;
  double var_2;
  double var_4;
  double var_3;
  int var_19;
  type_2 *var_15;
  type_2 *var_20;
  type_2 *var_14;
  
  if (kernel->next != (type_1 *)0x0) {
    function_1(kernel->next,angle);
  }
  var_3 = (double)DAT_002e8154;
  var_2 = var_1(angle,(double)DAT_002e8154);
  if (var_2 < 0.0) {
    var_2 = var_2 + var_3;
  }
  if ((double)DAT_002fbea8 < var_2) {
    return;
  }
  if (var_2 <= (double)DAT_002fbeac) {
    return;
  }
  switch(kernel->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:
    return;
  case BlurKernel:
    if (((double)DAT_002fbeb0 < var_2) && (var_2 <= (double)DAT_002fbeb4)) {
      return;
    }
    if (((double)DAT_002fbeb4 < var_2) && (var_2 <= (double)DAT_002fbeb8)) {
      var_2 = var_2 - (double)DAT_002df8cc;
    }
  }
  var_3 = (double)var_22;
  var_4 = var_1(var_2,(double)var_22);
  if (((double)DAT_002fbeac < var_4) && (var_3 = var_1(var_2,var_3), var_3 <= (double)DAT_002fbebc)
     ) {
    if ((kernel->width == 3) && (kernel->height == 3)) {
      var_21 = kernel->values;
      var_5 = kernel->x;
      var_6 = kernel->y;
      MVar2 = *var_21;
      *var_21 = var_21[3];
      var_21[3] = var_21[6];
      var_21[6] = var_21[7];
      var_21[7] = var_21[8];
      var_21[8] = var_21[5];
      var_21[5] = var_21[2];
      var_21[2] = var_21[1];
      var_21[1] = MVar2;
      if (var_5 == 1) {
        if (var_6 != 1) {
          var_7 = var_6 + -1;
          if (var_7 != 0) goto LAB_00112676;
          goto LAB_00112613;
        }
      }
      else {
        var_8 = var_5 + -1;
        var_7 = var_6 + -1;
        if (var_8 == var_7) {
          var_5 = 1;
        }
        else if (var_8 == 0) {
LAB_00112676:
          var_7 = var_6 + -1;
          var_5 = 2 - var_6;
        }
        else if (var_8 == 1 - var_6) {
          var_7 = 0;
        }
        else if (var_7 == 0) {
          var_7 = var_8;
        }
LAB_00112613:
        kernel->x = var_5;
        kernel->y = var_7 + 1;
      }
      var_3 = (double)DAT_002e8154;
      var_2 = var_1(var_2 + (double)DAT_002fbeb8,(double)DAT_002e8154);
      var_3 = var_1((double)(var_9 + (float)kernel->angle),var_3);
      kernel->angle = var_3;
    }
    else {
      var_10("Unable to rotate non-3x3 kernel by 45 degrees");
    }
  }
  var_3 = (double)DAT_002df8cc;
  var_4 = var_1(var_2,(double)DAT_002df8cc);
  if (((double)var_9 < var_4) &&
     (var_3 = var_1(var_2,var_3), var_3 <= (double)DAT_002fbeb0)) {
    var_11 = kernel->width;
    var_12 = kernel->height;
    if (var_11 == 1) {
      kernel->width = var_12;
      sVar5 = kernel->y;
      kernel->height = 1;
      kernel->y = kernel->x;
      kernel->x = sVar5;
      if (var_12 != 1) {
        var_1(var_2 + (double)var_22,(double)DAT_002e8154);
        RotateKernelInfo::var_13();
        return;
      }
    }
    else if (var_12 == 1) {
      kernel->height = var_11;
      sVar5 = kernel->x;
      kernel->width = 1;
      kernel->x = kernel->y;
      kernel->y = sVar5;
    }
    else {
      if (var_11 != var_12) {
        var_10("Unable to rotate a non-square, non-linear kernel 90 degrees");
        goto LAB_001121fc;
      }
      var_14 = kernel->values;
      var_5 = var_11 - 1;
      if ((-1 < var_5) && (1 < (int)var_11)) {
        var_19 = 0;
        var_20 = var_14 + var_11 * var_11 + -1;
        var_21 = (type_2 *)((int)var_14 + var_5 * var_11 * 8);
        var_15 = var_14;
        do {
          var_15 = var_15 + var_11;
          var_6 = 0;
          var_18 = var_20;
          var_17 = var_14;
          var_16 = var_15;
          do {
            var_16 = var_16 + -1;
            MVar2 = *var_17;
            *var_17 = var_21[var_6];
            var_21[var_6] = *var_18;
            var_6 = var_6 + 1;
            *var_18 = *var_16;
            var_17 = var_17 + var_11;
            *var_16 = MVar2;
            var_18 = var_18 + -var_11;
          } while (var_6 < var_5 - var_6);
          var_19 = var_19 + 1;
          var_14 = var_14 + 1;
          var_20 = var_20 + -1;
          var_21 = var_21 + -var_11;
        } while (var_19 <= var_5 - var_19);
      }
      var_5 = kernel->x;
      kernel->x = (int)((var_11 - ((1 - var_12) + kernel->y * 2)) + -1) / 2;
      kernel->y = (var_5 * 2) / 2;
    }
    var_3 = (double)DAT_002e8154;
    var_2 = var_1(var_2 + (double)_DAT_002f250c,(double)DAT_002e8154);
    var_3 = var_1((double)(var_22 + (float)kernel->angle),var_3);
    kernel->angle = var_3;
  }
LAB_001121fc:
  if (((double)DAT_002fbeb0 < var_2) && (var_2 <= (double)DAT_002fbeb4)) {
    var_11 = kernel->width;
    var_12 = kernel->height;
    var_21 = kernel->values;
    var_5 = var_11 * var_12 + -1;
    if (0 < var_5) {
      var_6 = 0;
      do {
        MVar2 = var_21[var_6];
        var_21[var_6] = var_21[var_5];
        var_6 = var_6 + 1;
        var_21[var_5] = MVar2;
        var_5 = var_5 + -1;
      } while (var_6 < var_5);
    }
    fVar6 = DAT_002e8154;
    kernel->x = (var_11 - kernel->x) + -1;
    kernel->y = (var_12 - kernel->y) + -1;
    var_3 = (double)DAT_002df8cc;
    var_1(var_2 - var_3,(double)fVar6);
    var_3 = var_1(var_3 + kernel->angle,(double)fVar6);
    kernel->angle = var_3;
  }
  return;
}


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

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

void __regparm1 MASKED(undefined4 *param_1,double param_2)

{
  float fVar1;
  undefined8 uVar2;
  int iVar3;
  undefined4 uVar4;
  float fVar5;
  int iVar6;
  int iVar7;
  undefined8 *puVar8;
  int iVar9;
  undefined8 *puVar10;
  undefined8 *puVar11;
  int iVar12;
  undefined8 *puVar13;
  double dVar14;
  double dVar15;
  double local_54;
  int local_3c;
  undefined8 *local_38;
  undefined8 *local_34;
  undefined8 *local_30;
  
  if (param_1[0x10] != 0) {
    MASKED(param_2);
  }
  dVar15 = (double)DAT_002e8154;
  local_54 = fmod(param_2,(double)DAT_002e8154);
  if (local_54 < 0.0) {
    local_54 = local_54 + dVar15;
  }
  if ((double)DAT_002fbea8 < local_54) {
    return;
  }
  if (local_54 <= (double)DAT_002fbeac) {
    return;
  }
  switch(*param_1) {
  case 2:
  case 3:
  case 4:
  case 8:
  case 0xf:
  case 0x10:
  case 0x13:
  case 0x14:
  case 0x15:
  case 0x17:
  case 0x21:
  case 0x22:
  case 0x24:
    return;
  case 5:
    if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {
      return;
    }
    if (((double)DAT_002fbeb4 < local_54) && (local_54 <= (double)DAT_002fbeb8)) {
      local_54 = local_54 - (double)DAT_002df8cc;
    }
  }
  dVar15 = (double)DAT_002df8c4;
  dVar14 = fmod(local_54,(double)DAT_002df8c4);
  if (((double)DAT_002fbeac < dVar14) &&
     (dVar15 = fmod(local_54,dVar15), dVar15 <= (double)DAT_002fbebc)) {
    if ((param_1[1] == 3) && (param_1[2] == 3)) {
      puVar11 = (undefined8 *)param_1[5];
      iVar9 = param_1[3];
      iVar3 = param_1[4];
      uVar2 = *puVar11;
      *puVar11 = puVar11[3];
      puVar11[3] = puVar11[6];
      puVar11[6] = puVar11[7];
      puVar11[7] = puVar11[8];
      puVar11[8] = puVar11[5];
      puVar11[5] = puVar11[2];
      puVar11[2] = puVar11[1];
      puVar11[1] = uVar2;
      if (iVar9 == 1) {
        if (iVar3 != 1) {
          iVar7 = iVar3 + -1;
          if (iVar7 != 0) goto LAB_00112676;
          goto LAB_00112613;
        }
      }
      else {
        iVar6 = iVar9 + -1;
        iVar7 = iVar3 + -1;
        if (iVar6 == iVar7) {
          iVar9 = 1;
        }
        else if (iVar6 == 0) {
LAB_00112676:
          iVar7 = iVar3 + -1;
          iVar9 = 2 - iVar3;
        }
        else if (iVar6 == 1 - iVar3) {
          iVar7 = 0;
        }
        else if (iVar7 == 0) {
          iVar7 = iVar6;
        }
LAB_00112613:
        param_1[3] = iVar9;
        param_1[4] = iVar7 + 1;
      }
      dVar15 = (double)DAT_002e8154;
      local_54 = fmod(local_54 + (double)DAT_002fbeb8,(double)DAT_002e8154);
      dVar15 = fmod((double)(_DAT_002f1394 + (float)*(double *)(param_1 + 0xe)),dVar15);
      *(double *)(param_1 + 0xe) = dVar15;
    }
    else {
      perror("Unable to rotate non-3x3 kernel by 45 degrees");
    }
  }
  dVar15 = (double)DAT_002df8cc;
  dVar14 = fmod(local_54,(double)DAT_002df8cc);
  if ((dVar14 <= (double)_DAT_002f1394) ||
     (dVar15 = fmod(local_54,dVar15), (double)DAT_002fbeb0 < dVar15)) goto LAB_001121fc;
  iVar9 = param_1[1];
  iVar3 = param_1[2];
  if (iVar9 == 1) {
    param_1[1] = iVar3;
    uVar4 = param_1[4];
    param_1[2] = 1;
    param_1[4] = param_1[3];
    param_1[3] = uVar4;
    fVar1 = DAT_002e8154;
    if (iVar3 == 1) goto LAB_00112452;
    local_54 = fmod(local_54 + (double)DAT_002df8c4,(double)DAT_002e8154);
    fVar5 = _DAT_002f250c;
  }
  else {
    if (iVar3 == 1) {
      param_1[2] = iVar9;
      uVar4 = param_1[3];
      param_1[1] = 1;
      param_1[3] = param_1[4];
      param_1[4] = uVar4;
    }
    else {
      if (iVar9 != iVar3) {
        perror("Unable to rotate a non-square, non-linear kernel 90 degrees");
        goto LAB_001121fc;
      }
      local_30 = (undefined8 *)param_1[5];
      iVar7 = iVar9 + -1;
      if ((-1 < iVar7) && (1 < iVar9)) {
        local_3c = 0;
        local_34 = local_30 + iVar9 * iVar9 + -1;
        puVar11 = (undefined8 *)((int)local_30 + iVar7 * iVar9 * 8);
        local_38 = local_30;
        do {
          local_38 = local_38 + iVar9;
          iVar6 = 0;
          puVar8 = local_34;
          puVar10 = local_30;
          puVar13 = local_38;
          do {
            puVar13 = puVar13 + -1;
            uVar2 = *puVar10;
            *puVar10 = puVar11[iVar6];
            puVar11[iVar6] = *puVar8;
            iVar6 = iVar6 + 1;
            *puVar8 = *puVar13;
            puVar10 = puVar10 + iVar9;
            *puVar13 = uVar2;
            puVar8 = puVar8 + -iVar9;
          } while (iVar6 < iVar7 - iVar6);
          local_3c = local_3c + 1;
          local_30 = local_30 + 1;
          local_34 = local_34 + -1;
          puVar11 = puVar11 + -iVar9;
        } while (local_3c <= iVar7 - local_3c);
      }
      iVar7 = param_1[3];
      param_1[3] = ((iVar9 - ((1 - iVar3) + param_1[4] * 2)) + -1) / 2;
      param_1[4] = (iVar7 * 2) / 2;
    }
LAB_00112452:
    fVar1 = DAT_002e8154;
    local_54 = fmod(local_54 + (double)_DAT_002f250c,(double)DAT_002e8154);
    fVar5 = DAT_002df8c4;
  }
  dVar15 = fmod((double)(fVar5 + (float)*(double *)(param_1 + 0xe)),(double)fVar1);
  *(double *)(param_1 + 0xe) = dVar15;
LAB_001121fc:
  if (((double)DAT_002fbeb0 < local_54) && (local_54 <= (double)DAT_002fbeb4)) {
    iVar9 = param_1[1];
    iVar3 = param_1[2];
    iVar7 = param_1[5];
    iVar6 = iVar9 * iVar3 + -1;
    if (0 < iVar6) {
      iVar12 = 0;
      do {
        uVar2 = *(undefined8 *)(iVar7 + iVar12 * 8);
        *(undefined8 *)(iVar7 + iVar12 * 8) = *(undefined8 *)(iVar7 + iVar6 * 8);
        iVar12 = iVar12 + 1;
        *(undefined8 *)(iVar7 + iVar6 * 8) = uVar2;
        iVar6 = iVar6 + -1;
      } while (iVar12 < iVar6);
    }
    fVar1 = DAT_002e8154;
    param_1[3] = (iVar9 - param_1[3]) + -1;
    param_1[4] = (iVar3 - param_1[4]) + -1;
    dVar15 = (double)DAT_002df8cc;
    fmod(local_54 - dVar15,(double)fVar1);
    dVar15 = fmod(dVar15 + *(double *)(param_1 + 0xe),(double)fVar1);
    *(double *)(param_1 + 0xe) = dVar15;
  }
  return;
}

