public unsafe static void Execute(ref T jobData, IntPtr jobData2, IntPtr bufferRangePatchData, ref JobRanges ranges, int jobIndex)
            {
                IJobParallelForTransformExtensions.TransformParallelForLoopStruct <T> .TransformJobData transformJobData;
                UnsafeUtility.CopyPtrToStructure <IJobParallelForTransformExtensions.TransformParallelForLoopStruct <T> .TransformJobData>((void *)jobData2, out transformJobData);
                int *            ptr  = (int *)((void *)TransformAccessArray.GetSortedToUserIndex(transformJobData.TransformAccessArray));
                TransformAccess *ptr2 = (TransformAccess *)((void *)TransformAccessArray.GetSortedTransformAccess(transformJobData.TransformAccessArray));
                bool             flag = transformJobData.IsReadOnly == 1;

                if (flag)
                {
                    while (true)
                    {
                        int  num;
                        int  num2;
                        bool flag2 = !JobsUtility.GetWorkStealingRange(ref ranges, jobIndex, out num, out num2);
                        if (flag2)
                        {
                            break;
                        }
                        int num3 = num2;
                        for (int i = num; i < num3; i++)
                        {
                            int num4 = i;
                            int num5 = ptr[num4];
                            JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf <T>(ref jobData), num5, 1);
                            TransformAccess transform = ptr2[num4];
                            transform.MarkReadOnly();
                            jobData.Execute(num5, transform);
                        }
                    }
                }
                else
                {
                    int num6;
                    int num7;
                    JobsUtility.GetJobRange(ref ranges, jobIndex, out num6, out num7);
                    for (int j = num6; j < num7; j++)
                    {
                        int num8 = j;
                        int num9 = ptr[num8];
                        JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf <T>(ref jobData), num9, 1);
                        TransformAccess transform2 = ptr2[num8];
                        transform2.MarkReadWrite();
                        jobData.Execute(num9, transform2);
                    }
                }
            }
            public unsafe static void Execute(ref T jobData, IntPtr jobData2, IntPtr bufferRangePatchData, ref JobRanges ranges, int jobIndex)
            {
                IntPtr transformArrayIntPtr;

                UnsafeUtility.CopyPtrToStructure <IntPtr>(jobData2, out transformArrayIntPtr);
                int *            ptr  = (int *)((void *)TransformAccessArray.GetSortedToUserIndex(transformArrayIntPtr));
                TransformAccess *ptr2 = (TransformAccess *)((void *)TransformAccessArray.GetSortedTransformAccess(transformArrayIntPtr));
                int num;
                int num2;

                JobsUtility.GetJobRange(ref ranges, jobIndex, out num, out num2);
                for (int i = num; i < num2; i++)
                {
                    int num3 = i;
                    int num4 = ptr[num3];
                    JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf <T>(ref jobData), num4, 1);
                    jobData.Execute(num4, ptr2[num3]);
                }
            }
            public static unsafe void Execute(ref T jobData, System.IntPtr jobData2, System.IntPtr bufferRangePatchData, ref JobRanges ranges, int jobIndex)
            {
                IntPtr transformAccessArray;

                UnsafeUtility.CopyPtrToStructure((void *)jobData2, out transformAccessArray);

                int *            sortedToUserIndex     = (int *)TransformAccessArray.GetSortedToUserIndex(transformAccessArray);
                TransformAccess *sortedTransformAccess = (TransformAccess *)TransformAccessArray.GetSortedTransformAccess(transformAccessArray);

                int begin;
                int end;

                JobsUtility.GetJobRange(ref ranges, jobIndex, out begin, out end);
                for (int i = begin; i < end; i++)
                {
                    int sortedIndex = i;
                    int userIndex   = sortedToUserIndex[sortedIndex];

                    jobData.Execute(userIndex, sortedTransformAccess[sortedIndex]);
                }
            }
            public static unsafe void Execute(ref T jobData, IntPtr jobData2, IntPtr bufferRangePatchData, ref JobRanges ranges, int jobIndex)
            {
                /*IntPtr output;
                 * UnsafeUtility.CopyPtrToStructure<IntPtr>(jobData2, out output);
                 * int* sortedToUserIndex = (int*) (void*) EudiReplicaTransformAccessArray.GetSortedToUserIndex(output);
                 * TransformAccess* sortedTransformAccess = (TransformAccess*) (void*) EudiReplicaTransformAccessArray.GetSortedTransformAccess(output);*/

                IntPtr output;

                UnsafeUtility.CopyPtrToStructure <IntPtr>(jobData2, out output);
                var transformArray = (EudiReplicaTransformAccessArray)GCHandle.FromIntPtr(output).Target;

                int beginIndex;
                int endIndex;

                JobsUtility.GetJobRange(ref ranges, jobIndex, out beginIndex, out endIndex);
                for (int index1 = beginIndex; index1 < endIndex; ++index1)
                {
                    int index2 = index1;
                    //int num = sortedToUserIndex[index2];
                    //JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf<T>(ref jobData), num, 1);
                    jobData.Execute(index2, transformArray[index2]);
                }
            }