//light bolts - flashes
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.16384
//
//   using 3Dmigoto v1.3.11 on Sun Nov 25 08:48:15 2018
//
//
// Buffer Definitions:
//
// Resource bind info for gPointInfo
// {
//
//   struct tArsonPointInfo
//   {
//
//       float mTimeAlive;              // Offset:    0
//       float mAgingScale;             // Offset:    4
//       uint mPackedData;              // Offset:    8
//       uint mEmitterParticleIndex;    // Offset:   12
//
//   } $Element;                        // Offset:    0 Size:    16
//
// }
//
// Resource bind info for gDynamicPosVel
// {
//
//   float3 $Element;                   // Offset:    0 Size:    12
//
// }
//
// Resource bind info for gGlobalData
// {
//
//   struct tArsonComputeVBGlobalData
//   {
//
//       row_major float4x4 mCameraMatrix;// Offset:    0
//       row_major float4x4 mInverseCameraMatrix;// Offset:   64
//       row_major float4x4 mSnowBlockerVolumes[16];// Offset:  128
//       float4 mSnowBlockerExtents[16];// Offset: 1152
//       float3 mViewDir;               // Offset: 1408
//       float3 mRightVec;              // Offset: 1420
//       float3 mUpVec;                 // Offset: 1432
//       int mNumPoints;                // Offset: 1444
//       int mClampTintValue;           // Offset: 1448
//       int mNumSnowBlockerVolumes;    // Offset: 1452
//
//   } $Element;                        // Offset:    0 Size:  1456
//
// }
//
// Resource bind info for gEmitterData
// {
//
//   struct tArsonComputeVBEmitterData
//   {
//
//       row_major float4x4 mForceFollowMatrix;// Offset:    0
//       float3 mVec3UserControl[4];    // Offset:   64
//       float3 mPosition;              // Offset:  112
//       float3 mPrevPosition;          // Offset:  124
//       float3 mDirection;             // Offset:  136
//       float3 mPrevDirection;         // Offset:  148
//       float3 mUp;                    // Offset:  160
//       float3 mPrevUp;                // Offset:  172
//       float3 mRotationOffset;        // Offset:  184
//       uint mRandomSeed;              // Offset:  196
//       int mMakeVBCommandBufferOffset;// Offset:  200
//       int mUpdateCommandBufferOffset;// Offset:  204
//       int mInitCommandBufferOffset;  // Offset:  208
//       int mPosVelIndexOffset;        // Offset:  212
//       int mPosVelStrideFloat3s;      // Offset:  216
//       float mDistanceToCamera;       // Offset:  220
//       float mSpeed;                  // Offset:  224
//       float mPrevSpeed;              // Offset:  228
//       float mFloatUserControl[4];    // Offset:  232
//       int mRotateMode;               // Offset:  248
//       float mFillScale;              // Offset:  252
//       int mLightIndexOffset;         // Offset:  256
//       int mLightStrideFloat3s;       // Offset:  260
//       int mLightingFlags;            // Offset:  264
//       int mSubdivision;              // Offset:  268
//       float mTimeSinceLastUpdate;    // Offset:  272
//       float mTimeIntoBurst;          // Offset:  276
//       float mInitialForceFollow;     // Offset:  280
//       float mStaticFixedCountSystem; // Offset:  284
//       float mDelayUntilRender;       // Offset:  288
//       float mHideIndoorsFadeoutEnd;  // Offset:  292
//       float mHideIndoorsFadeoutDistance;// Offset:  296
//       float mVisionModeOpacity;      // Offset:  300
//       int mLightRegion;              // Offset:  304
//       int mRotateOnVelocity;         // Offset:  308
//       int mRotateOnVelocityFlipYWhenMovingLeft;// Offset:  312
//       int mUsingGPUPosVel;           // Offset:  316
//       int mIsPreRollFrame;           // Offset:  320
//       int mHideIndoors;              // Offset:  324
//       int mLockedForceFollow;        // Offset:  328
//
//   } $Element;                        // Offset:    0 Size:   332
//
// }
//
// Resource bind info for mCommandBuffer
// {
//
//   int $Element;                      // Offset:    0 Size:     4
//
// }
//
// Resource bind info for mCommandBufferFloat
// {
//
//   float $Element;                    // Offset:    0 Size:     4
//
// }
//
// Resource bind info for gOutputVertices
// {
//
//   struct tArsonVertex
//   {
//
//       float3 mPosition;              // Offset:    0
//       float3 mPrevPosition;          // Offset:   12
//       float4 mColour;                // Offset:   24
//       float3 mRight;                 // Offset:   40
//       float3 mUp;                    // Offset:   52
//       uint mLightFlagsIndex;         // Offset:   64
//       uint mSubdivisionFrameFillScale;// Offset:   68
//       uint mLightRegion;             // Offset:   72
//
//   } $Element;                        // Offset:    0 Size:    76
//
// }
//
// Resource bind info for gStaticPosVel
// {
//
//   float3 $Element;                   // Offset:    0 Size:    12
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// gPointInfo                        texture  struct         r/o    0        1
// gDynamicPosVel                    texture  struct         r/o    1        1
// gGlobalData                       texture  struct         r/o    2        1
// gEmitterData                      texture  struct         r/o    3        1
// mCommandBuffer                    texture  struct         r/o    4        1
// mCommandBufferFloat               texture  struct         r/o    5        1
// gOutputVertices                       UAV  struct         r/w    0        1
// gStaticPosVel                         UAV  struct         r/w    1        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_resource_structured t0, 16
dcl_resource_structured t1, 12
dcl_resource_structured t2, 1456
dcl_resource_structured t3, 332
dcl_resource_structured t4, 4
dcl_resource_structured t5, 4
dcl_uav_structured u0, 76
dcl_uav_structured u1, 12
dcl_input vThreadIDInGroup.x
dcl_input vThreadID.x
dcl_temps 40
dcl_tgsm_structured g0, 96, 64
dcl_thread_group 64, 1, 1
ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r0.x, l(0), l(1444), t2.xxxx
ige r0.x, vThreadID.x, r0.x
if_nz r0.x
  ret
endif
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.xy, vThreadID.x, l(8), t0.xyxx
ushr r0.xy, r0.yxyy, l(16, 9, 0, 0)
ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r1.xyz, r0.x, l(300), t3.xzyx
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.z, vThreadID.x, l(12), t0.xxxx
and r0.z, r0.z, l(0x0000ffff)
ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r0.w, r0.x, l(316), t3.xxxx
if_nz r0.w
  ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r2.xy, r0.x, l(212), t3.xyxx
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.w, vThreadID.x, l(8), t0.xxxx
  ushr r1.w, r0.w, l(16)
  imad r2.x, r2.y, r1.w, r2.x
  ld_structured_indexable(structured_buffer, stride=12)(mixed,mixed,mixed,mixed) r3.xyz, r2.x, l(0), u1.xyzx
  iadd r2.y, r2.x, l(1)
  ld_structured_indexable(structured_buffer, stride=12)(mixed,mixed,mixed,mixed) r4.xyz, r2.y, l(0), u1.xyzx
  if_nz r1.y
    iadd r2.z, r2.x, l(2)
    ld_structured_indexable(structured_buffer, stride=12)(mixed,mixed,mixed,mixed) r5.xyz, r2.z, l(0), u1.xyzx
  else
    mov r5.xyz, l(0,0,0,0)
  endif
  mov r6.xyz, r3.xyzx
  and r2.zw, r0.wwww, l(0, 0, 256, 255)
  utof r2.w, r2.w
  mul r4.w, r2.w, l(0.00392156886)
  if_nz r2.z
    mad r2.z, -r2.w, l(0.00392156886), l(1.000000)
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r7.xyz, r0.x, l(276), t3.xyzx
    mad r2.w, r2.z, r7.z, r7.x
    mad r2.z, r2.z, r7.y, r4.w
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r5.w, r0.x, l(328), t3.xxxx
    if_nz r5.w
      mov r7.xyz, l(0,0,0,0)
    else
      ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r8.xyzw, r0.x, l(112), t3.xyzw
      ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r9.xy, r0.x, l(128), t3.xyxx
      mov r9.z, r8.w
      add r9.xyz, -r8.xyzx, r9.zxyz
      mad r7.xyz, r2.zzzz, r9.xyzx, r8.xyzx
    endif
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r7.w, r0.x, l(208), t3.xxxx
    ushr r8.x, r0.w, l(9)
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r8.y, r0.x, l(196), t3.xxxx
    xor r8.x, r7.w, r8.x
    xor r8.z, r8.x, l(61)
    ushr r8.x, r8.x, l(16)
    or r8.x, r8.x, r8.z
    imul null, r8.x, r8.x, l(9)
    ushr r8.z, r8.x, l(4)
    xor r8.x, r8.z, r8.x
    imul null, r8.x, r8.x, l(0x27d4eb2d)
    ushr r8.z, r8.x, l(15)
    xor r8.x, r8.z, r8.x
    xor r8.x, r8.y, r8.x
    iadd r8.yz, r7.wwww, l(0, 1, 2, 0)
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.y, r8.y, l(0), t4.xxxx
    imin r8.y, r8.y, l(2048)
    iadd r7.w, r7.w, r8.y
    iadd r7.w, r7.w, l(-1)
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r8.yw, r0.x, l(220), t3.xxxy
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r9.xyz, l(0), l(1408), t2.xyzx
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r10.xyzw, l(0), l(0), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r11.xyzw, l(0), l(16), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r12.xyzw, l(0), l(32), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r13.xyzw, r0.x, l(160), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r14.xy, r0.x, l(176), t3.xyxx
    mov r14.z, r13.w
    add r14.xyz, -r13.xyzx, r14.zxyz
    mad r13.xyz, r2.zzzz, r14.xyzx, r13.xyzx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r14.xyzw, r0.x, l(136), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r15.xy, r0.x, l(152), t3.xyxx
    mov r15.z, r14.w
    add r15.xyz, -r14.xyzx, r15.zxyz
    mad r14.xyz, r2.zzzz, r15.xyzx, r14.xyzx
    mul r15.xyz, r13.zxyz, r14.yzxy
    mad r15.xyz, r13.yzxy, r14.zxyz, -r15.xyzx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r16.xyz, r0.x, l(148), t3.xyzx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r17.xy, r0.x, l(224), t3.xyxx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r18.xyz, r0.x, l(136), t3.xyzx
    mul r17.xzw, r17.xxxx, r18.xxyz
    mad r16.xyz, r16.xyzx, r17.yyyy, -r17.xzwx
    mad r16.xyz, r2.zzzz, r16.xyzx, r17.xzwx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r17.xyzw, r0.x, l(112), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r18.xy, r0.x, l(128), t3.xyxx
    mov r18.z, r17.w
    add r18.xyz, -r17.xyzx, r18.zxyz
    mad r17.xyz, r2.zzzz, r18.xyzx, r17.xyzx
    mov r3.w, l(1.000000)
    mov r18.x, l(0)
    mov r3.xyz, r7.xyzx
    mov r4.xyz, l(0,0,0,0)
    mov r19.xyz, r5.xyzx
    mov r2.z, l(0)
    mov r9.w, r8.x
    mov r20.x, r8.z
    loop
      ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r20.x, l(0), t4.xxxx
      ine r14.w, r13.w, l(0x0000ffff)
      ige r15.w, r7.w, r20.x
      and r14.w, r14.w, r15.w
      breakc_z r14.w
      iadd r14.w, r20.x, l(1)
      switch r13.w
        case l(0x00008000)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t5.xxxx
        iadd r20.x, r20.x, l(2)
        ishl r15.w, r2.z, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r15.w, r13.w
        iadd r2.z, r2.z, l(1)
        break
        case l(0x00008001)
        ishl r13.w, r9.w, l(13)
        xor r13.w, r9.w, r13.w
        ushr r15.w, r13.w, l(17)
        xor r13.w, r13.w, r15.w
        ishl r15.w, r13.w, l(5)
        xor r9.w, r13.w, r15.w
        utof r13.w, r9.w
        mul r13.w, r13.w, l(2.328306437E-010)
        ishl r15.w, r2.z, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r15.w, r13.w
        iadd r2.z, r2.z, l(1)
        mov r20.x, r14.w
        break
        case l(0x00008002)
        ishl r13.w, r2.z, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r2.w
        iadd r2.z, r2.z, l(1)
        mov r20.x, r14.w
        break
        case l(0x00008003)
        dp3 r13.w, r4.xyzx, r4.xyzx
        sqrt r13.w, r13.w
        ishl r15.w, r2.z, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r15.w, r13.w
        iadd r2.z, r2.z, l(1)
        mov r20.x, r14.w
        break
        case l(0x00008004)
        ishl r13.w, r2.z, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r8.w
        iadd r2.z, r2.z, l(1)
        mov r20.x, r14.w
        break
        case l(0x00008005)
        dp3 r13.w, r4.xyzx, r4.xyzx
        lt r15.w, l(0.000000), r13.w
        if_nz r15.w
          rsq r13.w, r13.w
          mul r21.xyz, r4.xyzx, r13.wwww
          dp3 r13.w, r9.xyzx, r21.xyzx
          add r13.w, -|r13.w|, l(1.000000)
        else
          mov r13.w, l(1.000000)
        endif
        ishl r15.w, r2.z, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r15.w, r13.w
        iadd r2.z, r2.z, l(1)
        mov r20.x, r14.w
        break
        case l(0x00008006)
        ishl r13.w, r2.z, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r8.y
        iadd r2.z, r2.z, l(1)
        mov r20.x, r14.w
        break
        case l(0x00008013)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t5.xxxx
        iadd r21.xyzw, r20.xxxx, l(2, 3, 4, 5)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r15.w, r21.x, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r21.y, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r17.w, r21.z, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r18.z, r21.w, l(0), t5.xxxx
        iadd r20.x, r20.x, l(6)
        dp4 r18.w, r10.xyzw, r3.xyzw
        dp4 r19.w, r11.xyzw, r3.xyzw
        dp4 r21.x, r12.xyzw, r3.xyzw
        add r13.w, r13.w, -|r18.w|
        add r15.w, r15.w, -|r19.w|
        add r16.w, r16.w, -|r21.x|
        min r13.w, r13.w, r15.w
        min r13.w, r16.w, r13.w
        add r13.w, -r17.w, r13.w
        div_sat r13.w, r13.w, r18.z
        ishl r15.w, r2.z, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r15.w, r13.w
        iadd r2.z, r2.z, l(1)
        break
        case l(0x00008007)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t4.xxxx
        iadd r20.x, r20.x, l(2)
        ishl r13.w, r13.w, l(2)
        iadd r13.w, r13.w, l(232)
        ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r13.w, r0.x, r13.w, t3.xxxx
        ishl r15.w, r2.z, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r15.w, r13.w
        iadd r2.z, r2.z, l(1)
        break
        case l(0x00008009)
        ishl r13.w, r2.z, l(2)
        iadd r13.w, r13.w, l(-8)
        ld_structured r18.zw, vThreadIDInGroup.x, r13.w, g0.xxxy
        add r15.w, r18.z, r18.w
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r15.w
        iadd r2.z, r2.z, l(-1)
        mov r20.x, r14.w
        break
        case l(0x0000800a)
        ishl r13.w, r2.z, l(2)
        iadd r13.w, r13.w, l(-8)
        ld_structured r18.zw, vThreadIDInGroup.x, r13.w, g0.xxxy
        mul r15.w, r18.z, r18.w
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r15.w
        iadd r2.z, r2.z, l(-1)
        mov r20.x, r14.w
        break
        case l(0x0000800b)
        ishl r13.w, r2.z, l(2)
        iadd r13.w, r13.w, l(-12)
        ld_structured r21.xyz, vThreadIDInGroup.x, r13.w, g0.xyzx
        add r15.w, -r21.x, r21.y
        mad r15.w, r21.z, r15.w, r21.x
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r15.w
        iadd r2.z, r2.z, l(-2)
        mov r20.x, r14.w
        break
        case l(0x0000800c)
        ishl r13.w, r2.z, l(2)
        iadd r15.w, r13.w, l(-4)
        ld_structured r15.w, vThreadIDInGroup.x, r15.w, g0.xxxx
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r15.w
        iadd r2.z, r2.z, l(1)
        mov r20.x, r14.w
        break
        case l(0x0000800d)
        ishl r13.w, r2.z, l(2)
        iadd r13.w, r13.w, l(-8)
        ld_structured r18.zw, vThreadIDInGroup.x, r13.w, g0.xxxy
        store_structured g0.xy, vThreadIDInGroup.x, r13.w, r18.wzww
        mov r20.x, r14.w
        break
        case l(0x0000800e)
        ishl r13.w, r2.z, l(2)
        iadd r13.w, r13.w, l(-4)
        ld_structured r15.w, vThreadIDInGroup.x, r13.w, g0.xxxx
        ishl r16.w, r9.w, l(13)
        xor r16.w, r9.w, r16.w
        ushr r17.w, r16.w, l(17)
        xor r16.w, r16.w, r17.w
        ishl r17.w, r16.w, l(5)
        xor r9.w, r16.w, r17.w
        utof r16.w, r9.w
        mad r16.w, r16.w, l(2.328306437E-010), l(-0.500000)
        dp2 r15.w, r16.wwww, r15.wwww
        add r15.w, r15.w, l(1.000000)
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r15.w
        mov r20.x, r14.w
        break
        case l(0x0000800f)
        ishl r13.w, r2.z, l(2)
        iadd r13.w, r13.w, l(-4)
        ld_structured r15.w, vThreadIDInGroup.x, r13.w, g0.xxxx
        ishl r16.w, r9.w, l(13)
        xor r16.w, r9.w, r16.w
        ushr r17.w, r16.w, l(17)
        xor r16.w, r16.w, r17.w
        ishl r17.w, r16.w, l(5)
        xor r9.w, r16.w, r17.w
        utof r16.w, r9.w
        mad r16.w, r16.w, l(2.328306437E-010), l(-0.500000)
        add r17.w, r16.w, r16.w
        ge r16.w, r16.w, l(0.000000)
        movc r16.w, r16.w, l(1.000000), l(-1.000000)
        add r17.w, |r17.w|, l(-0.500000)
        dp2 r15.w, r17.wwww, r15.wwww
        add r15.w, r15.w, l(1.000000)
        mul r15.w, r15.w, r16.w
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r15.w
        mov r20.x, r14.w
        break
        case l(0x00008010)
        ishl r13.w, r2.z, l(2)
        iadd r13.w, r13.w, l(-4)
        ld_structured r15.w, vThreadIDInGroup.x, r13.w, g0.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r14.w, l(0), t5.xxxx
        iadd r18.zw, r20.xxxx, l(0, 0, 4, 20)
        ge r17.w, r16.w, r15.w
        if_nz r17.w
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r17.w, r18.z, l(0), t5.xxxx
        else
          iadd r19.w, r20.x, l(2)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r19.w, r19.w, l(0), t5.xxxx
          ge r19.w, r15.w, r19.w
          if_nz r19.w
            iadd r19.w, r20.x, l(19)
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r17.w, r19.w, l(0), t5.xxxx
          else
            iadd r19.w, r20.x, l(3)
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r19.w, r19.w, l(0), t5.xxxx
            add r15.w, r15.w, -r16.w
            div r15.w, r15.w, r19.w
            round_ni r16.w, r15.w
            add r15.w, r15.w, -r16.w
            ftoi r16.w, r16.w
            iadd r19.w, r16.w, r18.z
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r19.w, r19.w, l(0), t5.xxxx
            iadd r16.w, r16.w, l(1)
            imin r16.w, r16.w, l(15)
            iadd r16.w, r16.w, r18.z
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r16.w, l(0), t5.xxxx
            add r16.w, -r19.w, r16.w
            mad r17.w, r15.w, r16.w, r19.w
          endif
        endif
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r17.w
        mov r20.x, r18.w
        break
        case l(0x00008011)
        ishl r13.w, r2.z, l(2)
        iadd r13.w, r13.w, l(-4)
        ld_structured r15.w, vThreadIDInGroup.x, r13.w, g0.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r14.w, l(0), t5.xxxx
        iadd r20.xyzw, r20.xxxx, l(5, 2, 3, 4)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r17.w, r20.y, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r18.z, r20.z, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r18.w, r20.w, l(0), t5.xxxx
        add r15.w, r15.w, -r16.w
        div_sat r15.w, r15.w, r17.w
        mad r15.w, r18.w, r15.w, r18.z
        store_structured g0.x, vThreadIDInGroup.x, r13.w, r15.w
        break
        case l(0x00008012)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t5.xxxx
        iadd r20.x, r20.x, l(2)
        ishl r15.w, r2.z, l(2)
        iadd r15.w, r15.w, l(-4)
        store_structured g0.x, vThreadIDInGroup.x, r15.w, r13.w
        break
        case l(0x00009000)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t4.xxxx
        iadd r20.x, r20.x, l(2)
        imad r13.w, r13.w, l(12), l(64)
        ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r21.xyz, r0.x, r13.w, t3.xyzx
        ishl r13.w, r2.z, l(2)
        store_structured g0.xyz, vThreadIDInGroup.x, r13.w, r21.xyzx
        iadd r2.z, r2.z, l(3)
        break
        case l(0x00009001)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r21.x, r14.w, l(0), t5.xxxx
        iadd r20.xyz, r20.xxxx, l(4, 2, 3, 0)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r21.y, r20.y, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r21.z, r20.z, l(0), t5.xxxx
        ishl r13.w, r2.z, l(2)
        store_structured g0.xyz, vThreadIDInGroup.x, r13.w, r21.xyzx
        iadd r2.z, r2.z, l(3)
        break
        case l(0x0000a000)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t4.xxxx
        iadd r20.x, r20.x, l(2)
        iadd r2.z, r2.z, l(-3)
        ishl r15.w, r2.z, l(2)
        ld_structured r21.x, vThreadIDInGroup.x, r15.w, g0.xxxx
        iadd r15.w, r15.w, l(4)
        ld_structured r21.yz, vThreadIDInGroup.x, r15.w, g0.xxyx
        if_nz r13.w
          if_nz r5.w
            mov r20.yzw, r21.xxyz
          endif
          if_z r5.w
            mul r22.xyz, r13.xyzx, r21.yyyy
            mad r22.xyz, r21.xxxx, r15.xyzx, r22.xyzx
            mad r21.xyz, r21.zzzz, r14.xyzx, r22.xyzx
          else
            mov r21.xyz, r20.yzwy
          endif
        endif
        add r4.xyz, r4.xyzx, r21.xyzx
        add r19.xyz, r19.xyzx, r21.xyzx
        break
        case l(0x0000a001)
        ishl r13.w, r2.z, l(2)
        iadd r13.w, r13.w, l(-12)
        ld_structured r20.yzw, vThreadIDInGroup.x, r13.w, g0.xxyz
        iadd r2.z, r2.z, l(-6)
        ishl r13.w, r2.z, l(2)
        ld_structured r15.w, vThreadIDInGroup.x, r13.w, g0.xxxx
        iadd r13.w, r13.w, l(4)
        ld_structured r18.zw, vThreadIDInGroup.x, r13.w, g0.xxxy
        ishl r13.w, r9.w, l(13)
        xor r13.w, r9.w, r13.w
        ushr r16.w, r13.w, l(17)
        xor r13.w, r13.w, r16.w
        ishl r16.w, r13.w, l(5)
        xor r13.w, r13.w, r16.w
        utof r16.w, r13.w
        mul r21.x, r16.w, l(2.328306437E-010)
        ishl r16.w, r13.w, l(13)
        xor r13.w, r13.w, r16.w
        ushr r16.w, r13.w, l(17)
        xor r13.w, r13.w, r16.w
        ishl r16.w, r13.w, l(5)
        xor r13.w, r13.w, r16.w
        utof r16.w, r13.w
        mul r21.y, r16.w, l(2.328306437E-010)
        ishl r16.w, r13.w, l(13)
        xor r13.w, r13.w, r16.w
        ushr r16.w, r13.w, l(17)
        xor r13.w, r13.w, r16.w
        ishl r16.w, r13.w, l(5)
        xor r13.w, r13.w, r16.w
        utof r16.w, r13.w
        mul r21.z, r16.w, l(2.328306437E-010)
        eq r21.xyz, r21.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
        ishl r16.w, r13.w, l(13)
        xor r13.w, r13.w, r16.w
        ushr r16.w, r13.w, l(17)
        xor r13.w, r13.w, r16.w
        ishl r16.w, r13.w, l(5)
        xor r13.w, r13.w, r16.w
        utof r16.w, r13.w
        mul r22.x, r16.w, l(2.328306437E-010)
        ishl r16.w, r13.w, l(13)
        xor r13.w, r13.w, r16.w
        ushr r16.w, r13.w, l(17)
        xor r13.w, r13.w, r16.w
        ishl r16.w, r13.w, l(5)
        xor r13.w, r13.w, r16.w
        utof r16.w, r13.w
        mul r22.y, r16.w, l(2.328306437E-010)
        ishl r16.w, r13.w, l(13)
        xor r13.w, r13.w, r16.w
        ushr r16.w, r13.w, l(17)
        xor r13.w, r13.w, r16.w
        ishl r16.w, r13.w, l(5)
        xor r13.w, r13.w, r16.w
        utof r16.w, r13.w
        mul r22.z, r16.w, l(2.328306437E-010)
        ishl r16.w, r13.w, l(13)
        xor r13.w, r13.w, r16.w
        ushr r16.w, r13.w, l(17)
        xor r13.w, r13.w, r16.w
        ishl r16.w, r13.w, l(5)
        xor r13.w, r13.w, r16.w
        utof r16.w, r13.w
        mul r23.x, r16.w, l(2.328306437E-010)
        ishl r16.w, r13.w, l(13)
        xor r13.w, r13.w, r16.w
        ushr r16.w, r13.w, l(17)
        xor r13.w, r13.w, r16.w
        ishl r16.w, r13.w, l(5)
        xor r13.w, r13.w, r16.w
        utof r16.w, r13.w
        mul r23.y, r16.w, l(2.328306437E-010)
        ishl r16.w, r13.w, l(13)
        xor r13.w, r13.w, r16.w
        ushr r16.w, r13.w, l(17)
        xor r13.w, r13.w, r16.w
        ishl r16.w, r13.w, l(5)
        xor r13.w, r13.w, r16.w
        utof r16.w, r13.w
        mul r23.z, r16.w, l(2.328306437E-010)
        dp3 r16.w, r23.xyzx, r23.xyzx
        rsq r16.w, r16.w
        mul r23.xyz, r16.wwww, r23.xyzx
        movc r21.xyz, r21.xyzx, r22.xyzx, r23.xyzx
        ishl r16.w, r13.w, l(13)
        xor r13.w, r13.w, r16.w
        ushr r16.w, r13.w, l(17)
        xor r13.w, r13.w, r16.w
        ishl r16.w, r13.w, l(5)
        xor r13.w, r13.w, r16.w
        utof r16.w, r13.w
        mad r16.w, r16.w, l(4.656612873E-010), l(-1.000000)
        ishl r17.w, r13.w, l(13)
        xor r13.w, r13.w, r17.w
        ushr r17.w, r13.w, l(17)
        xor r13.w, r13.w, r17.w
        ishl r17.w, r13.w, l(5)
        xor r13.w, r13.w, r17.w
        utof r17.w, r13.w
        mad r17.w, r17.w, l(4.656612873E-010), l(-1.000000)
        ishl r19.w, r13.w, l(13)
        xor r13.w, r13.w, r19.w
        ushr r19.w, r13.w, l(17)
        xor r13.w, r13.w, r19.w
        ishl r19.w, r13.w, l(5)
        xor r9.w, r13.w, r19.w
        utof r13.w, r9.w
        mad r13.w, r13.w, l(4.656612873E-010), l(-1.000000)
        add r19.w, -r15.w, r20.y
        mad r15.w, r16.w, r19.w, r15.w
        mul r22.x, r15.w, r21.x
        add r20.yz, -r18.zzwz, r20.zzwz
        mad r15.w, r17.w, r20.y, r18.z
        mul r22.y, r15.w, r21.y
        mad r13.w, r13.w, r20.z, r18.w
        mul r22.z, r13.w, r21.z
        if_nz r5.w
          mov r20.yzw, r22.xxyz
        endif
        if_z r5.w
          mul r21.xyz, r13.xyzx, r22.yyyy
          mad r21.xyz, r22.xxxx, r15.xyzx, r21.xyzx
          mad r20.yzw, r22.zzzz, r14.xxyz, r21.xxyz
        endif
        add r4.xyz, r4.xyzx, r20.yzwy
        add r19.xyz, r19.xyzx, r20.yzwy
        mov r20.x, r14.w
        break
        case l(0x0000a002)
        iadd r2.z, r2.z, l(-1)
        ishl r13.w, r2.z, l(2)
        ld_structured r13.w, vThreadIDInGroup.x, r13.w, g0.xxxx
        mad r4.xyz, r16.xyzx, r13.wwww, r4.xyzx
        mad r19.xyz, r16.xyzx, r13.wwww, r19.xyzx
        mov r20.x, r14.w
        break
        case l(0x0000a003)
        iadd r2.z, r2.z, l(-3)
        ishl r13.w, r2.z, l(2)
        ld_structured r21.x, vThreadIDInGroup.x, r13.w, g0.xxxx
        iadd r13.w, r13.w, l(4)
        ld_structured r21.yz, vThreadIDInGroup.x, r13.w, g0.xxyx
        if_nz r5.w
          mov r20.yzw, r21.xxyz
        endif
        if_z r5.w
          mul r22.xyz, r13.xyzx, r21.yyyy
          mad r21.xyw, r21.xxxx, r15.xyxz, r22.xyxz
          mad r20.yzw, r21.zzzz, r14.xxyz, r21.xxyw
        endif
        add r3.xyz, r3.xyzx, r20.yzwy
        mov r20.x, r14.w
        break
        case l(0x0000a004)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t4.xxxx
        iadd r20.x, r20.x, l(2)
        ishl r15.w, r2.z, l(2)
        iadd r15.w, r15.w, l(-4)
        ld_structured r15.w, vThreadIDInGroup.x, r15.w, g0.xxxx
        iadd r2.z, r2.z, l(-4)
        ishl r16.w, r2.z, l(2)
        ld_structured r21.x, vThreadIDInGroup.x, r16.w, g0.xxxx
        iadd r16.w, r16.w, l(4)
        ld_structured r21.yz, vThreadIDInGroup.x, r16.w, g0.xxyx
        if_nz r13.w
          if_nz r5.w
            mov r20.yzw, r21.xxyz
          endif
          if_z r5.w
            mul r22.xyz, r13.xyzx, r21.yyyy
            mad r22.xyz, r21.xxxx, r15.xyzx, r22.xyzx
            mad r20.yzw, r21.zzzz, r14.xxyz, r22.xxyz
          endif
          add r22.xyz, -r17.xyzx, r3.xyzx
          add r20.yzw, r20.yyzw, -r22.xxyz
        else
          add r20.yzw, -r3.xxyz, r21.xxyz
        endif
        eq r21.xyz, r20.yzwy, l(0.000000, 0.000000, 0.000000, 0.000000)
        dp3 r13.w, r20.yzwy, r20.yzwy
        rsq r13.w, r13.w
        mul r22.xyz, r13.wwww, r20.yzwy
        movc r20.yzw, r21.xxyz, r20.yyzw, r22.xxyz
        mad r4.xyz, r20.yzwy, r15.wwww, r4.xyzx
        mad r19.xyz, r20.yzwy, r15.wwww, r19.xyzx
        break
        case l(0x0000a005)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t4.xxxx
        iadd r20.x, r20.x, l(2)
        ishl r15.w, r2.z, l(2)
        iadd r18.zw, r15.wwww, l(0, 0, -12, -24)
        ld_structured r20.yzw, vThreadIDInGroup.x, r18.z, g0.xxyz
        ld_structured r21.xyz, vThreadIDInGroup.x, r18.w, g0.xyzx
        iadd r2.z, r2.z, l(-9)
        ishl r15.w, r2.z, l(2)
        ld_structured r22.x, vThreadIDInGroup.x, r15.w, g0.xxxx
        iadd r15.w, r15.w, l(4)
        ld_structured r22.yz, vThreadIDInGroup.x, r15.w, g0.xxyx
        ishl r15.w, r9.w, l(13)
        xor r15.w, r9.w, r15.w
        ushr r16.w, r15.w, l(17)
        xor r15.w, r15.w, r16.w
        ishl r16.w, r15.w, l(5)
        xor r9.w, r15.w, r16.w
        utof r15.w, r9.w
        mul r15.w, r15.w, l(2.328306437E-010)
        add r20.yzw, r20.yyzw, -r21.xxyz
        mad r20.yzw, r15.wwww, r20.yyzw, r21.xxyz
        add r20.yzw, r20.yyzw, r22.xxyz
        if_nz r13.w
          if_nz r5.w
            mov r21.xyz, r20.yzwy
          endif
          if_z r5.w
            mul r22.xyz, r13.xyzx, r20.zzzz
            mad r22.xyz, r20.yyyy, r15.xyzx, r22.xyzx
            mad r21.xyz, r20.wwww, r14.xyzx, r22.xyzx
          endif
        else
          add r21.xyz, -r17.xyzx, r20.yzwy
        endif
        add r3.xyz, r3.xyzx, r21.xyzx
        break
        case l(0x0000a006)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t4.xxxx
        iadd r20.x, r20.x, l(2)
        ishl r15.w, r2.z, l(2)
        iadd r18.zw, r15.wwww, l(0, 0, -12, -24)
        ld_structured r20.yzw, vThreadIDInGroup.x, r18.z, g0.xxyz
        ld_structured r21.xyz, vThreadIDInGroup.x, r18.w, g0.xyzx
        iadd r2.z, r2.z, l(-9)
        ishl r15.w, r2.z, l(2)
        ld_structured r22.x, vThreadIDInGroup.x, r15.w, g0.xxxx
        iadd r15.w, r15.w, l(4)
        ld_structured r22.yz, vThreadIDInGroup.x, r15.w, g0.xxyx
        add r20.yzw, r20.yyzw, -r21.xxyz
        mad r20.yzw, r2.wwww, r20.yyzw, r21.xxyz
        add r20.yzw, r20.yyzw, r22.xxyz
        if_nz r13.w
          if_nz r5.w
            mov r21.xyz, r20.yzwy
          endif
          if_z r5.w
            mul r22.xyz, r13.xyzx, r20.zzzz
            mad r22.xyz, r20.yyyy, r15.xyzx, r22.xyzx
            mad r21.xyz, r20.wwww, r14.xyzx, r22.xyzx
          endif
        else
          add r21.xyz, -r17.xyzx, r20.yzwy
        endif
        add r3.xyz, r3.xyzx, r21.xyzx
        break
        case l(0x0000a007)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t4.xxxx
        iadd r20.x, r20.x, l(2)
        ishl r15.w, r2.z, l(2)
        iadd r20.yzw, r15.wwww, l(0, -8, -20, -12)
        ld_structured r18.zw, vThreadIDInGroup.x, r20.y, g0.xxxy
        ld_structured r21.zw, vThreadIDInGroup.x, r20.z, g0.xxyx
        ld_structured r21.y, vThreadIDInGroup.x, r20.w, g0.xxxx
        iadd r2.z, r2.z, l(-8)
        ishl r15.w, r2.z, l(2)
        ld_structured r22.x, vThreadIDInGroup.x, r15.w, g0.xxxx
        iadd r15.w, r15.w, l(4)
        ld_structured r22.yz, vThreadIDInGroup.x, r15.w, g0.xxyx
        add r15.w, -r18.z, r18.w
        ishl r16.w, r9.w, l(13)
        xor r16.w, r9.w, r16.w
        ushr r17.w, r16.w, l(17)
        xor r16.w, r16.w, r17.w
        ishl r17.w, r16.w, l(5)
        xor r16.w, r16.w, r17.w
        utof r17.w, r16.w
        mul r15.w, r15.w, r17.w
        mad r15.w, r15.w, l(2.328306437E-010), r18.z
        ishl r17.w, r16.w, l(13)
        xor r16.w, r16.w, r17.w
        ushr r17.w, r16.w, l(17)
        xor r16.w, r16.w, r17.w
        ishl r17.w, r16.w, l(5)
        xor r9.w, r16.w, r17.w
        utof r16.w, r9.w
        mul r16.w, r16.w, l(1.462918120E-009)
        sincos r23.x, r24.x, r16.w
        ne r16.w, r21.w, l(0.000000)
        if_nz r16.w
          add r21.x, r21.z, l(1.000000)
          mov r20.yzw, r21.wwxy
        else
          ne r16.w, r21.z, l(0.000000)
          if_nz r16.w
            add r18.y, r21.y, l(1.000000)
            mov r20.yw, r18.xxxy
          else
            ne r16.w, r21.y, l(0.000000)
            if_nz r16.w
              mov r21.x, l(1.000000)
            else
              mov r21.x, l(0)
            endif
            mov r20.yw, r21.xxxy
          endif
          mov r20.z, r21.z
        endif
        mul r18.yzw, r20.zzwy, r21.yywz
        mad r18.yzw, r21.zzyw, r20.wwyz, -r18.yyzw
        dp3 r16.w, r18.yzwy, r18.yzwy
        rsq r16.w, r16.w
        mul r18.yzw, r16.wwww, r18.yyzw
        mul r20.yzw, r21.zzyw, r18.wwyz
        mad r20.yzw, r18.zzwy, r21.yywz, -r20.yyzw
        dp3 r16.w, r20.yzwy, r20.yzwy
        rsq r16.w, r16.w
        mul r20.yzw, r16.wwww, r20.yyzw
        mul r16.w, r15.w, r24.x
        mul r15.w, r15.w, r23.x
        mul r20.yzw, r15.wwww, r20.yyzw
        mad r18.yzw, r18.yyzw, r16.wwww, -r20.yyzw
        add r18.yzw, r18.yyzw, r22.xxyz
        if_nz r13.w
          if_nz r5.w
            mov r20.yzw, r18.yyzw
          endif
          if_z r5.w
            mul r21.xyz, r13.xyzx, r18.zzzz
            mad r21.xyz, r18.yyyy, r15.xyzx, r21.xyzx
            mad r18.yzw, r18.wwww, r14.xxyz, r21.xxyz
          else
            mov r18.yzw, r20.yyzw
          endif
        endif
        add r3.xyz, r3.xyzx, r18.yzwy
        break
        case l(0x0000a008)
        ishl r13.w, r2.z, l(2)
        iadd r13.w, r13.w, l(-8)
        ld_structured r18.yz, vThreadIDInGroup.x, r13.w, g0.xxyx
        iadd r2.z, r2.z, l(-5)
        ishl r13.w, r2.z, l(2)
        ld_structured r15.w, vThreadIDInGroup.x, r13.w, g0.xxxx
        iadd r13.w, r13.w, l(4)
        ld_structured r20.yz, vThreadIDInGroup.x, r13.w, g0.xxyx
        add r13.w, -r18.y, r18.z
        ishl r16.w, r9.w, l(13)
        xor r16.w, r9.w, r16.w
        ushr r17.w, r16.w, l(17)
        xor r16.w, r16.w, r17.w
        ishl r17.w, r16.w, l(5)
        xor r16.w, r16.w, r17.w
        utof r17.w, r16.w
        mul r13.w, r13.w, r17.w
        mad r13.w, r13.w, l(2.328306437E-010), r18.y
        ishl r17.w, r16.w, l(13)
        xor r16.w, r16.w, r17.w
        ushr r17.w, r16.w, l(17)
        xor r16.w, r16.w, r17.w
        ishl r17.w, r16.w, l(5)
        xor r16.w, r16.w, r17.w
        utof r17.w, r16.w
        mul r17.w, r17.w, l(1.462918120E-009)
        ishl r18.y, r16.w, l(13)
        xor r16.w, r16.w, r18.y
        ushr r18.y, r16.w, l(17)
        xor r16.w, r16.w, r18.y
        ishl r18.y, r16.w, l(5)
        xor r9.w, r16.w, r18.y
        utof r16.w, r9.w
        mul r16.w, r16.w, l(1.462918120E-009)
        sincos r21.x, r22.x, r17.w
        sincos r23.x, r24.x, r16.w
        mul r16.w, r13.w, r22.x
        mad r22.x, r16.w, r23.x, r15.w
        mul r15.w, r13.w, r21.x
        mad r22.y, r15.w, r23.x, r20.y
        mad r22.z, r13.w, r24.x, r20.z
        add r3.xyz, r3.xyzx, r22.xyzx
        mov r20.x, r14.w
        break
        case l(0x0000a009)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t4.xxxx
        iadd r20.x, r20.x, l(2)
        ishl r15.w, r2.z, l(2)
        iadd r18.yz, r15.wwww, l(0, -12, -24, 0)
        ld_structured r20.yzw, vThreadIDInGroup.x, r18.y, g0.xxyz
        ld_structured r18.yzw, vThreadIDInGroup.x, r18.z, g0.xxyz
        iadd r2.z, r2.z, l(-9)
        ishl r15.w, r2.z, l(2)
        ld_structured r16.w, vThreadIDInGroup.x, r15.w, g0.xxxx
        iadd r15.w, r15.w, l(4)
        ld_structured r21.xy, vThreadIDInGroup.x, r15.w, g0.xyxx
        ishl r15.w, r9.w, l(13)
        xor r15.w, r9.w, r15.w
        ushr r17.w, r15.w, l(17)
        xor r15.w, r15.w, r17.w
        ishl r17.w, r15.w, l(5)
        xor r15.w, r15.w, r17.w
        utof r17.w, r15.w
        mul r17.w, r17.w, l(2.328306437E-010)
        add r20.yzw, -r18.yyzw, r20.yyzw
        mad r17.w, r17.w, r20.y, r18.y
        add r22.x, r16.w, r17.w
        ishl r16.w, r15.w, l(13)
        xor r15.w, r15.w, r16.w
        ushr r16.w, r15.w, l(17)
        xor r15.w, r15.w, r16.w
        ishl r16.w, r15.w, l(5)
        xor r15.w, r15.w, r16.w
        utof r16.w, r15.w
        mul r16.w, r16.w, l(2.328306437E-010)
        mad r16.w, r16.w, r20.z, r18.z
        add r22.y, r16.w, r21.x
        ishl r16.w, r15.w, l(13)
        xor r15.w, r15.w, r16.w
        ushr r16.w, r15.w, l(17)
        xor r15.w, r15.w, r16.w
        ishl r16.w, r15.w, l(5)
        xor r9.w, r15.w, r16.w
        utof r15.w, r9.w
        mul r15.w, r15.w, l(2.328306437E-010)
        mad r15.w, r15.w, r20.w, r18.w
        add r22.z, r15.w, r21.y
        if_nz r13.w
          if_nz r5.w
            mov r18.yzw, r22.xxyz
          endif
          if_z r5.w
            mul r20.yzw, r13.xxyz, r22.yyyy
            mad r20.yzw, r22.xxxx, r15.xxyz, r20.yyzw
            mad r18.yzw, r22.zzzz, r14.xxyz, r20.yyzw
          endif
        else
          add r18.yzw, -r17.xxyz, r22.xxyz
        endif
        add r3.xyz, r3.xyzx, r18.yzwy
        break
        case l(0x0000a00a)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r13.w, r14.w, l(0), t4.xxxx
        iadd r20.x, r20.x, l(2)
        ishl r15.w, r2.z, l(2)
        iadd r18.yz, r15.wwww, l(0, -8, -20, 0)
        ld_structured r18.yw, vThreadIDInGroup.x, r18.y, g0.xxxy
        ld_structured r20.yzw, vThreadIDInGroup.x, r18.z, g0.xxyz
        iadd r2.z, r2.z, l(-8)
        ishl r15.w, r2.z, l(2)
        ld_structured r21.x, vThreadIDInGroup.x, r15.w, g0.xxxx
        iadd r15.w, r15.w, l(4)
        ld_structured r21.yz, vThreadIDInGroup.x, r15.w, g0.xxyx
        if_nz r13.w
          if_nz r5.w
            mov r22.xyz, r21.xyzx
          endif
          if_z r5.w
            mul r23.xyz, r13.xyzx, r21.yyyy
            mad r23.xyz, r21.xxxx, r15.xyzx, r23.xyzx
            mad r21.xyz, r21.zzzz, r14.xyzx, r23.xyzx
          else
            mov r21.xyz, r22.xyzx
          endif
        endif
        add r20.yzw, -r3.xxyz, r20.yyzw
        dp3 r13.w, r20.yzwy, r20.yzwy
        sqrt r13.w, r13.w
        eq r15.w, r18.y, l(0.000000)
        div r16.w, l(1.000000, 1.000000, 1.000000, 1.000000), r18.y
        movc r15.w, r15.w, l(0), r16.w
        mul_sat r13.w, r13.w, r15.w
        add r13.w, -r13.w, l(1.000000)
        log r13.w, r13.w
        mul r13.w, r13.w, r18.w
        exp r13.w, r13.w
        mad r4.xyz, r21.xyzx, r13.wwww, r4.xyzx
        mad r19.xyz, r21.xyzx, r13.wwww, r19.xyzx
        break
        default
        mov r20.x, r14.w
        break
      endswitch
    endloop
    mov r5.xyz, r19.xyzx
  endif
  ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r2.z, r0.x, l(320), t3.xxxx
  if_nz r2.z
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r7.xyz, vThreadID.x, l(0), t0.xyzx
    max r2.z, r7.y, l(0.010000)
    div r2.w, r7.x, r2.z
    min r2.w, r2.w, l(10.000000)
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r3.w, r0.x, l(272), t3.xxxx
    mul r5.w, r4.w, r3.w
    mad r3.w, r3.w, r4.w, r2.w
    mul r5.w, r2.z, r5.w
    add r2.w, r2.w, r2.w
    round_ni r2.w, r2.w
    ftoi r2.w, r2.w
    imax r2.w, r2.w, l(0)
    imin r2.w, r2.w, l(20)
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r7.x, r0.x, l(204), t3.xxxx
    ushr r7.y, r0.w, l(9)
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r7.w, r0.x, l(196), t3.xxxx
    xor r7.y, r7.x, r7.y
    xor r8.x, r7.y, l(61)
    ushr r7.y, r7.y, l(16)
    or r7.y, r7.y, r8.x
    imul null, r7.y, r7.y, l(9)
    ushr r8.x, r7.y, l(4)
    xor r7.y, r7.y, r8.x
    imul null, r7.y, r7.y, l(0x27d4eb2d)
    ushr r8.x, r7.y, l(15)
    xor r7.y, r7.y, r8.x
    xor r7.y, r7.w, r7.y
    iadd r8.xy, r7.xxxx, l(1, 2, 0, 0)
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.x, r8.x, l(0), t4.xxxx
    imin r8.x, r8.x, l(2048)
    iadd r8.x, r7.x, r8.x
    iadd r8.x, r8.x, l(-1)
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r8.zw, r0.x, l(220), t3.xxxy
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r9.xyz, l(0), l(1408), t2.xyzx
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r10.xyzw, l(0), l(0), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r11.xyzw, l(0), l(16), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r12.xyzw, l(0), l(32), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r9.w, r0.x, l(328), t3.xxxx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r13.xyzw, r0.x, l(0), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r14.xyz, r0.x, l(160), t3.xyzx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r15.xyz, r0.x, l(136), t3.xzyx
    mul r16.xyz, r14.zxyz, r15.zyxz
    mad r16.xyz, r14.yzxy, r15.yxzy, -r16.xyzx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r17.xyzw, r0.x, l(16), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r18.xyzw, r0.x, l(32), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r19.xyzw, r0.x, l(48), t3.xyzw
    iadd r14.w, r1.w, vThreadID.x
    iadd r15.w, r7.w, r14.w
    iadd r20.xy, r15.wwww, l(-1, 1, 0, 0)
    imad r20.zw, r7.wwww, r14.wwww, l(0, 0, -1, 1)
    imad r16.w, -r14.w, r14.w, r7.w
    iadd r21.xy, r16.wwww, l(-1, 1, 0, 0)
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r22.xyzw, l(0), l(64), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r23.xyzw, l(0), l(80), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r24.xyzw, l(0), l(96), t2.xyzw
    mov r25.w, l(1.000000)
    mov r26.w, l(1.000000)
    mov r27.x, r16.x
    mov r27.y, r14.x
    mov r27.z, r15.x
    mov r28.x, r16.y
    mov r28.y, r14.y
    mov r28.z, r15.z
    mov r29.x, r16.z
    mov r29.y, r14.z
    mov r29.z, r15.y
    mov r30.w, l(1.000000)
    mov r31.z, l(0)
    mov r32.w, l(1.000000)
    mov r33.xyz, r3.xyzx
    mov r34.xyz, r4.xyzx
    mov r14.y, r5.w
    mov r16.x, l(0)
    loop
      ige r21.z, r16.x, r2.w
      breakc_nz r21.z
      mov r30.xyz, r33.xyzx
      mov r35.xyz, r34.xyzx
      mov r21.z, l(0)
      mov r21.w, r7.y
      mov r36.x, r8.y
      loop
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r36.x, l(0), t4.xxxx
        ine r28.w, r27.w, l(0x0000ffff)
        ige r29.w, r8.x, r36.x
        and r28.w, r28.w, r29.w
        breakc_z r28.w
        iadd r28.w, r36.x, l(1)
        switch r27.w
          case l(0x00008000)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r28.w, l(0), t5.xxxx
          iadd r36.x, r36.x, l(2)
          ishl r29.w, r21.z, l(2)
          store_structured g0.x, vThreadIDInGroup.x, r29.w, r27.w
          iadd r21.z, r21.z, l(1)
          break
          case l(0x00008001)
          ishl r27.w, r21.w, l(13)
          xor r27.w, r21.w, r27.w
          ushr r29.w, r27.w, l(17)
          xor r27.w, r27.w, r29.w
          ishl r29.w, r27.w, l(5)
          xor r21.w, r27.w, r29.w
          utof r27.w, r21.w
          mul r27.w, r27.w, l(2.328306437E-010)
          ishl r29.w, r21.z, l(2)
          store_structured g0.x, vThreadIDInGroup.x, r29.w, r27.w
          iadd r21.z, r21.z, l(1)
          mov r36.x, r28.w
          break
          case l(0x00008002)
          ishl r27.w, r21.z, l(2)
          store_structured g0.x, vThreadIDInGroup.x, r27.w, r14.y
          iadd r21.z, r21.z, l(1)
          mov r36.x, r28.w
          break
          case l(0x00008003)
          dp3 r27.w, r35.xyzx, r35.xyzx
          sqrt r27.w, r27.w
          ishl r29.w, r21.z, l(2)
          store_structured g0.x, vThreadIDInGroup.x, r29.w, r27.w
          iadd r21.z, r21.z, l(1)
          mov r36.x, r28.w
          break
          case l(0x00008004)
          ishl r27.w, r21.z, l(2)
          store_structured g0.x, vThreadIDInGroup.x, r27.w, r8.w
          iadd r21.z, r21.z, l(1)
          mov r36.x, r28.w
          break
          case l(0x00008005)
          dp3 r27.w, r35.xyzx, r35.xyzx
          lt r29.w, l(0.000000), r27.w
          if_nz r29.w
            rsq r27.w, r27.w
            mul r37.xyz, r27.wwww, r35.xyzx
            dp3 r27.w, r9.xyzx, r37.xyzx
            add r27.w, -|r27.w|, l(1.000000)
          else
            mov r27.w, l(1.000000)
          endif
          ishl r29.w, r21.z, l(2)
          store_structured g0.x, vThreadIDInGroup.x, r29.w, r27.w
          iadd r21.z, r21.z, l(1)
          mov r36.x, r28.w
          break
          case l(0x00008006)
          ishl r27.w, r21.z, l(2)
          store_structured g0.x, vThreadIDInGroup.x, r27.w, r8.z
          iadd r21.z, r21.z, l(1)
          mov r36.x, r28.w
          break
          case l(0x00008013)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r28.w, l(0), t5.xxxx
          iadd r37.xyzw, r36.xxxx, l(2, 3, 4, 5)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r29.w, r37.x, l(0), t5.xxxx
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r31.w, r37.y, l(0), t5.xxxx
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r33.w, r37.z, l(0), t5.xxxx
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r34.w, r37.w, l(0), t5.xxxx
          iadd r36.x, r36.x, l(6)
          mov r25.xyz, r30.xyzx
          dp4 r35.w, r10.xyzw, r25.xyzw
          dp4 r37.x, r11.xyzw, r25.xyzw
          dp4 r25.x, r12.xyzw, r25.xyzw
          add r25.y, r27.w, -|r35.w|
          add r25.z, r29.w, -|r37.x|
          add r25.x, -|r25.x|, r31.w
          min r25.y, r25.z, r25.y
          min r25.x, r25.x, r25.y
          add r25.x, -r33.w, r25.x
          div_sat r25.x, r25.x, r34.w
          ishl r25.y, r21.z, l(2)
          store_structured g0.x, vThreadIDInGroup.x, r25.y, r25.x
          iadd r21.z, r21.z, l(1)
          break
          case l(0x00008007)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.x, r28.w, l(0), t4.xxxx
          iadd r36.x, r36.x, l(2)
          ishl r25.x, r25.x, l(2)
          iadd r25.x, r25.x, l(232)
          ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r25.x, r0.x, r25.x, t3.xxxx
          ishl r25.y, r21.z, l(2)
          store_structured g0.x, vThreadIDInGroup.x, r25.y, r25.x
          iadd r21.z, r21.z, l(1)
          break
          case l(0x00008009)
          ishl r25.x, r21.z, l(2)
          iadd r25.x, r25.x, l(-8)
          ld_structured r25.yz, vThreadIDInGroup.x, r25.x, g0.xxyx
          add r25.y, r25.y, r25.z
          store_structured g0.x, vThreadIDInGroup.x, r25.x, r25.y
          iadd r21.z, r21.z, l(-1)
          mov r36.x, r28.w
          break
          case l(0x0000800a)
          ishl r25.x, r21.z, l(2)
          iadd r25.x, r25.x, l(-8)
          ld_structured r25.yz, vThreadIDInGroup.x, r25.x, g0.xxyx
          mul r25.y, r25.y, r25.z
          store_structured g0.x, vThreadIDInGroup.x, r25.x, r25.y
          iadd r21.z, r21.z, l(-1)
          mov r36.x, r28.w
          break
          case l(0x0000800b)
          ishl r25.x, r21.z, l(2)
          iadd r25.x, r25.x, l(-12)
          ld_structured r37.xyz, vThreadIDInGroup.x, r25.x, g0.xyzx
          add r25.y, -r37.x, r37.y
          mad r25.y, r37.z, r25.y, r37.x
          store_structured g0.x, vThreadIDInGroup.x, r25.x, r25.y
          iadd r21.z, r21.z, l(-2)
          mov r36.x, r28.w
          break
          case l(0x0000800c)
          ishl r25.x, r21.z, l(2)
          iadd r25.y, r25.x, l(-4)
          ld_structured r25.y, vThreadIDInGroup.x, r25.y, g0.xxxx
          store_structured g0.x, vThreadIDInGroup.x, r25.x, r25.y
          iadd r21.z, r21.z, l(1)
          mov r36.x, r28.w
          break
          case l(0x0000800d)
          ishl r25.x, r21.z, l(2)
          iadd r25.x, r25.x, l(-8)
          ld_structured r25.yz, vThreadIDInGroup.x, r25.x, g0.xxyx
          store_structured g0.xy, vThreadIDInGroup.x, r25.x, r25.zyzz
          mov r36.x, r28.w
          break
          case l(0x0000800e)
          ishl r25.xz, r21.zzwz, l(2, 0, 13, 0)
          iadd r25.x, r25.x, l(-4)
          ld_structured r25.y, vThreadIDInGroup.x, r25.x, g0.xxxx
          xor r25.z, r21.w, r25.z
          ushr r27.w, r25.z, l(17)
          xor r25.z, r25.z, r27.w
          ishl r27.w, r25.z, l(5)
          xor r21.w, r25.z, r27.w
          utof r25.z, r21.w
          mad r25.z, r25.z, l(2.328306437E-010), l(-0.500000)
          dp2 r25.y, r25.zzzz, r25.yyyy
          add r25.y, r25.y, l(1.000000)
          store_structured g0.x, vThreadIDInGroup.x, r25.x, r25.y
          mov r36.x, r28.w
          break
          case l(0x0000800f)
          ishl r25.xz, r21.zzwz, l(2, 0, 13, 0)
          iadd r25.x, r25.x, l(-4)
          ld_structured r25.y, vThreadIDInGroup.x, r25.x, g0.xxxx
          xor r25.z, r21.w, r25.z
          ushr r27.w, r25.z, l(17)
          xor r25.z, r25.z, r27.w
          ishl r27.w, r25.z, l(5)
          xor r21.w, r25.z, r27.w
          utof r25.z, r21.w
          mad r25.z, r25.z, l(2.328306437E-010), l(-0.500000)
          add r27.w, r25.z, r25.z
          ge r25.z, r25.z, l(0.000000)
          movc r25.z, r25.z, l(1.000000), l(-1.000000)
          add r27.w, |r27.w|, l(-0.500000)
          dp2 r25.y, r27.wwww, r25.yyyy
          add r25.y, r25.y, l(1.000000)
          mul r25.y, r25.y, r25.z
          store_structured g0.x, vThreadIDInGroup.x, r25.x, r25.y
          mov r36.x, r28.w
          break
          case l(0x00008010)
          ishl r25.x, r21.z, l(2)
          iadd r25.x, r25.x, l(-4)
          ld_structured r25.y, vThreadIDInGroup.x, r25.x, g0.xxxx
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.z, r28.w, l(0), t5.xxxx
          iadd r37.xy, r36.xxxx, l(4, 20, 0, 0)
          ge r27.w, r25.z, r25.y
          if_nz r27.w
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r37.x, l(0), t5.xxxx
          else
            iadd r29.w, r36.x, l(2)
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r29.w, r29.w, l(0), t5.xxxx
            ge r29.w, r25.y, r29.w
            if_nz r29.w
              iadd r29.w, r36.x, l(19)
              ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r29.w, l(0), t5.xxxx
            else
              iadd r29.w, r36.x, l(3)
              ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r29.w, r29.w, l(0), t5.xxxx
              add r25.y, -r25.z, r25.y
              div r25.y, r25.y, r29.w
              round_ni r25.z, r25.y
              add r25.y, -r25.z, r25.y
              ftoi r25.z, r25.z
              iadd r29.w, r25.z, r37.x
              ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r29.w, r29.w, l(0), t5.xxxx
              iadd r25.z, r25.z, l(1)
              imin r25.z, r25.z, l(15)
              iadd r25.z, r25.z, r37.x
              ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.z, r25.z, l(0), t5.xxxx
              add r25.z, -r29.w, r25.z
              mad r27.w, r25.y, r25.z, r29.w
            endif
          endif
          store_structured g0.x, vThreadIDInGroup.x, r25.x, r27.w
          mov r36.x, r37.y
          break
          case l(0x00008011)
          ishl r25.x, r21.z, l(2)
          iadd r25.x, r25.x, l(-4)
          ld_structured r25.y, vThreadIDInGroup.x, r25.x, g0.xxxx
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.z, r28.w, l(0), t5.xxxx
          iadd r36.xyzw, r36.xxxx, l(5, 2, 3, 4)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r36.y, l(0), t5.xxxx
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r29.w, r36.z, l(0), t5.xxxx
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r31.w, r36.w, l(0), t5.xxxx
          add r25.y, -r25.z, r25.y
          div_sat r25.y, r25.y, r27.w
          mad r25.y, r31.w, r25.y, r29.w
          store_structured g0.x, vThreadIDInGroup.x, r25.x, r25.y
          break
          case l(0x00008012)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.x, r28.w, l(0), t5.xxxx
          iadd r36.x, r36.x, l(2)
          ishl r25.y, r21.z, l(2)
          iadd r25.y, r25.y, l(-4)
          store_structured g0.x, vThreadIDInGroup.x, r25.y, r25.x
          break
          case l(0x00009000)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.x, r28.w, l(0), t4.xxxx
          iadd r36.x, r36.x, l(2)
          imad r25.x, r25.x, l(12), l(64)
          ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r25.xyz, r0.x, r25.x, t3.xyzx
          ishl r27.w, r21.z, l(2)
          store_structured g0.xyz, vThreadIDInGroup.x, r27.w, r25.xyzx
          iadd r21.z, r21.z, l(3)
          break
          case l(0x00009001)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.x, r28.w, l(0), t5.xxxx
          iadd r36.xyz, r36.xxxx, l(4, 2, 3, 0)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.y, r36.y, l(0), t5.xxxx
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.z, r36.z, l(0), t5.xxxx
          ishl r27.w, r21.z, l(2)
          store_structured g0.xyz, vThreadIDInGroup.x, r27.w, r25.xyzx
          iadd r21.z, r21.z, l(3)
          break
          case l(0x0000b000)
          mad r30.xyz, r35.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r30.xyzx
          mov r36.x, r28.w
          break
          case l(0x0000b001)
          iadd r21.z, r21.z, l(-3)
          ishl r25.x, r21.z, l(2)
          ld_structured r37.x, vThreadIDInGroup.x, r25.x, g0.xxxx
          iadd r25.x, r25.x, l(4)
          ld_structured r37.yz, vThreadIDInGroup.x, r25.x, g0.xxyx
          mad r35.xyz, r37.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r35.xyzx
          mov r36.x, r28.w
          break
          case l(0x0000b002)
          iadd r21.z, r21.z, l(-3)
          ishl r25.x, r21.z, l(2)
          ld_structured r37.x, vThreadIDInGroup.x, r25.x, g0.xxxx
          iadd r25.x, r25.x, l(4)
          ld_structured r37.yz, vThreadIDInGroup.x, r25.x, g0.xxyx
          if_nz r9.w
            mov r25.xyz, r37.xyzx
          endif
          if_z r9.w
            dp3 r25.x, r37.xyzx, r27.xyzx
            dp3 r25.y, r37.xyzx, r28.xyzx
            dp3 r25.z, r37.xyzx, r29.xyzx
          endif
          mad r35.xyz, r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r35.xyzx
          mov r36.x, r28.w
          break
          case l(0x0000b003)
          iadd r21.z, r21.z, l(-1)
          ishl r25.x, r21.z, l(2)
          ld_structured r25.x, vThreadIDInGroup.x, r25.x, g0.xxxx
          mul r25.x, r25.x, l(0.500000)
          eq r36.yzw, r35.xxyz, l(0.000000, 0.000000, 0.000000, 0.000000)
          dp3 r25.y, r35.xyzx, r35.xyzx
          rsq r25.y, r25.y
          mul r37.xyz, r25.yyyy, r35.xyzx
          movc r36.yzw, r36.yyzw, r35.xxyz, r37.xxyz
          mad r35.xyz, r36.yzwy, r25.xxxx, r35.xyzx
          mov r36.x, r28.w
          break
          case l(0x0000b004)
          iadd r21.z, r21.z, l(-1)
          ishl r25.x, r21.z, l(2)
          ld_structured r25.x, vThreadIDInGroup.x, r25.x, g0.xxxx
          mov r26.xyz, r30.xyzx
          dp4 r37.x, r13.xyzw, r26.xyzw
          dp4 r37.y, r17.xyzw, r26.xyzw
          dp4 r37.z, r18.xyzw, r26.xyzw
          dp4 r25.y, r19.xyzw, r26.xyzw
          div r26.xyz, r37.xyzx, r25.yyyy
          dp3 r37.x, r13.xyzx, r35.xyzx
          dp3 r37.y, r17.xyzx, r35.xyzx
          dp3 r37.z, r18.xyzx, r35.xyzx
          add r26.xyz, -r30.xyzx, r26.xyzx
          mad r30.xyz, r25.xxxx, r26.xyzx, r30.xyzx
          add r26.xyz, -r35.xyzx, r37.xyzx
          mad r35.xyz, r25.xxxx, r26.xyzx, r35.xyzx
          mov r36.x, r28.w
          break
          case l(0x0000b005)
          ishl r25.x, r21.z, l(2)
          iadd r25.x, r25.x, l(-4)
          ld_structured r25.x, vThreadIDInGroup.x, r25.x, g0.xxxx
          iadd r21.z, r21.z, l(-2)
          ishl r25.y, r21.z, l(2)
          ld_structured r25.y, vThreadIDInGroup.x, r25.y, g0.xxxx
          mul r25.y, r14.y, r25.y
          ftoi r25.y, r25.y
          imul null, r25.z, r25.y, l(57)
          imad r26.xy, r25.yyyy, l(57, 57, 0, 0), l(-57, 57, 0, 0)
          iadd r37.xyzw, r20.xyxy, r26.xxyy
          ishl r38.xyzw, r37.xyzw, l(13, 13, 13, 13)
          xor r37.xyzw, r37.xyzw, r38.xyzw
          imul null, r38.xyzw, r37.xyzw, r37.xyzw
          imad r38.xyzw, r38.xyzw, l(0x00003d73, 0x00003d73, 0x00003d73, 0x00003d73), l(0x000c0ae5, 0x000c0ae5, 0x000c0ae5, 0x000c0ae5)
          imad r37.xyzw, r37.xyzw, r38.xyzw, l(0x5208dd0d, 0x5208dd0d, 0x5208dd0d, 0x5208dd0d)
          and r37.xyzw, r37.xyzw, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff)
          utof r37.xyzw, r37.xyzw
          mad r26.z, -r37.x, l(9.313225746E-010), l(1.000000)
          mad r26.z, -r37.y, l(9.313225746E-010), r26.z
          add r26.z, r26.z, l(1.000000)
          mad r26.z, -r37.z, l(9.313225746E-010), r26.z
          add r26.z, r26.z, l(1.000000)
          mad r26.z, -r37.w, l(9.313225746E-010), r26.z
          add r26.z, r26.z, l(1.000000)
          imad r36.yz, r25.yyyy, l(0, 57, 57, 0), r20.xxyx
          ishl r37.xy, r36.yzyy, l(13, 13, 0, 0)
          xor r36.yz, r36.yyzy, r37.xxyx
          imul null, r37.xy, r36.yzyy, r36.yzyy
          imad r37.xy, r37.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
          imad r36.yz, r36.yyzy, r37.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
          and r36.yz, r36.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
          utof r36.yz, r36.yyzy
          mad r27.w, -r36.y, l(9.313225746E-010), l(1.000000)
          mad r27.w, -r36.z, l(9.313225746E-010), r27.w
          add r27.w, r27.w, l(1.000000)
          iadd r36.yz, r15.wwww, r26.xxyx
          ishl r37.xy, r36.yzyy, l(13, 13, 0, 0)
          xor r36.yz, r36.yyzy, r37.xxyx
          imul null, r37.xy, r36.yzyy, r36.yzyy
          imad r37.xy, r37.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
          imad r36.yz, r36.yyzy, r37.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
          and r36.yz, r36.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
          utof r36.yz, r36.yyzy
          mad r27.w, -r36.y, l(9.313225746E-010), r27.w
          add r27.w, r27.w, l(1.000000)
          mad r27.w, -r36.z, l(9.313225746E-010), r27.w
          add r27.w, r27.w, l(1.000000)
          mul r27.w, r27.w, l(0.125000)
          imad r29.w, r25.y, l(57), r15.w
          ishl r31.w, r29.w, l(13)
          xor r29.w, r29.w, r31.w
          imul null, r31.w, r29.w, r29.w
          imad r31.w, r31.w, l(0x00003d73), l(0x000c0ae5)
          imad r29.w, r29.w, r31.w, l(0x5208dd0d)
          and r29.w, r29.w, l(0x7fffffff)
          utof r29.w, r29.w
          mad r29.w, -r29.w, l(9.313225746E-010), l(1.000000)
          mad r26.z, r26.z, l(0.062500), r27.w
          mad r37.x, r29.w, l(0.250000), r26.z
          iadd r38.xyzw, r20.zwzw, r26.xxyy
          ishl r39.xyzw, r38.xyzw, l(13, 13, 13, 13)
          xor r38.xyzw, r38.xyzw, r39.xyzw
          imul null, r39.xyzw, r38.xyzw, r38.xyzw
          imad r39.xyzw, r39.xyzw, l(0x00003d73, 0x00003d73, 0x00003d73, 0x00003d73), l(0x000c0ae5, 0x000c0ae5, 0x000c0ae5, 0x000c0ae5)
          imad r38.xyzw, r38.xyzw, r39.xyzw, l(0x5208dd0d, 0x5208dd0d, 0x5208dd0d, 0x5208dd0d)
          and r38.xyzw, r38.xyzw, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff)
          utof r38.xyzw, r38.xyzw
          mad r26.z, -r38.x, l(9.313225746E-010), l(1.000000)
          mad r26.z, -r38.y, l(9.313225746E-010), r26.z
          add r26.z, r26.z, l(1.000000)
          mad r26.z, -r38.z, l(9.313225746E-010), r26.z
          add r26.z, r26.z, l(1.000000)
          mad r26.z, -r38.w, l(9.313225746E-010), r26.z
          add r26.z, r26.z, l(1.000000)
          imad r36.yz, r25.yyyy, l(0, 57, 57, 0), r20.zzwz
          ishl r38.xy, r36.yzyy, l(13, 13, 0, 0)
          xor r36.yz, r36.yyzy, r38.xxyx
          imul null, r38.xy, r36.yzyy, r36.yzyy
          imad r38.xy, r38.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
          imad r36.yz, r36.yyzy, r38.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
          and r36.yz, r36.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
          utof r36.yz, r36.yyzy
          mad r27.w, -r36.y, l(9.313225746E-010), l(1.000000)
          mad r27.w, -r36.z, l(9.313225746E-010), r27.w
          add r27.w, r27.w, l(1.000000)
          imad r36.yz, r7.wwww, r14.wwww, r26.xxyx
          ishl r38.xy, r36.yzyy, l(13, 13, 0, 0)
          xor r36.yz, r36.yyzy, r38.xxyx
          imul null, r38.xy, r36.yzyy, r36.yzyy
          imad r38.xy, r38.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
          imad r36.yz, r36.yyzy, r38.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
          and r36.yz, r36.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
          utof r36.yz, r36.yyzy
          mad r27.w, -r36.y, l(9.313225746E-010), r27.w
          add r27.w, r27.w, l(1.000000)
          mad r27.w, -r36.z, l(9.313225746E-010), r27.w
          add r27.w, r27.w, l(1.000000)
          mul r27.w, r27.w, l(0.125000)
          imad r25.z, r7.w, r14.w, r25.z
          ishl r29.w, r25.z, l(13)
          xor r25.z, r25.z, r29.w
          imul null, r29.w, r25.z, r25.z
          imad r29.w, r29.w, l(0x00003d73), l(0x000c0ae5)
          imad r25.z, r25.z, r29.w, l(0x5208dd0d)
          and r25.z, r25.z, l(0x7fffffff)
          utof r25.z, r25.z
          mad r25.z, -r25.z, l(9.313225746E-010), l(1.000000)
          mad r26.z, r26.z, l(0.062500), r27.w
          mad r37.y, r25.z, l(0.250000), r26.z
          iadd r38.xyzw, r21.xyxy, r26.xxyy
          ishl r39.xyzw, r38.xyzw, l(13, 13, 13, 13)
          xor r38.xyzw, r38.xyzw, r39.xyzw
          imul null, r39.xyzw, r38.xyzw, r38.xyzw
          imad r39.xyzw, r39.xyzw, l(0x00003d73, 0x00003d73, 0x00003d73, 0x00003d73), l(0x000c0ae5, 0x000c0ae5, 0x000c0ae5, 0x000c0ae5)
          imad r38.xyzw, r38.xyzw, r39.xyzw, l(0x5208dd0d, 0x5208dd0d, 0x5208dd0d, 0x5208dd0d)
          and r38.xyzw, r38.xyzw, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff)
          utof r38.xyzw, r38.xyzw
          mad r25.z, -r38.x, l(9.313225746E-010), l(1.000000)
          mad r25.z, -r38.y, l(9.313225746E-010), r25.z
          add r25.z, r25.z, l(1.000000)
          mad r25.z, -r38.z, l(9.313225746E-010), r25.z
          add r25.z, r25.z, l(1.000000)
          mad r25.z, -r38.w, l(9.313225746E-010), r25.z
          add r25.z, r25.z, l(1.000000)
          imad r36.yz, r25.yyyy, l(0, 57, 57, 0), r21.xxyx
          ishl r38.xy, r36.yzyy, l(13, 13, 0, 0)
          xor r36.yz, r36.yyzy, r38.xxyx
          imul null, r38.xy, r36.yzyy, r36.yzyy
          imad r38.xy, r38.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
          imad r36.yz, r36.yyzy, r38.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
          and r36.yz, r36.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
          utof r36.yz, r36.yyzy
          mad r26.z, -r36.y, l(9.313225746E-010), l(1.000000)
          mad r26.z, -r36.z, l(9.313225746E-010), r26.z
          add r26.z, r26.z, l(1.000000)
          iadd r26.xy, r16.wwww, r26.xyxx
          ishl r36.yz, r26.xxyx, l(0, 13, 13, 0)
          xor r26.xy, r26.xyxx, r36.yzyy
          imul null, r36.yz, r26.xxyx, r26.xxyx
          imad r36.yz, r36.yyzy, l(0, 0x00003d73, 0x00003d73, 0), l(0, 0x000c0ae5, 0x000c0ae5, 0)
          imad r26.xy, r26.xyxx, r36.yzyy, l(0x5208dd0d, 0x5208dd0d, 0, 0)
          and r26.xy, r26.xyxx, l(0x7fffffff, 0x7fffffff, 0, 0)
          utof r26.xy, r26.xyxx
          mad r26.x, -r26.x, l(9.313225746E-010), r26.z
          add r26.x, r26.x, l(1.000000)
          mad r26.x, -r26.y, l(9.313225746E-010), r26.x
          add r26.x, r26.x, l(1.000000)
          mul r26.x, r26.x, l(0.125000)
          imad r25.y, r25.y, l(57), r16.w
          ishl r26.y, r25.y, l(13)
          xor r25.y, r25.y, r26.y
          imul null, r26.y, r25.y, r25.y
          imad r26.y, r26.y, l(0x00003d73), l(0x000c0ae5)
          imad r25.y, r25.y, r26.y, l(0x5208dd0d)
          and r25.y, r25.y, l(0x7fffffff)
          utof r25.y, r25.y
          mad r25.y, -r25.y, l(9.313225746E-010), l(1.000000)
          mad r25.z, r25.z, l(0.062500), r26.x
          mad r37.z, r25.y, l(0.250000), r25.z
          mul r25.xyz, r25.xxxx, r37.xyzx
          mad r35.xyz, r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r35.xyzx
          mov r36.x, r28.w
          break
          case l(0x0000b006)
          iadd r21.z, r21.z, l(-1)
          ishl r25.x, r21.z, l(2)
          ld_structured r25.x, vThreadIDInGroup.x, r25.x, g0.xxxx
          max r25.x, r25.x, l(0.000000)
          mad r25.x, r25.x, l(0.500000), l(1.000000)
          div r35.xyz, r35.xyzx, r25.xxxx
          mov r36.x, r28.w
          break
          case l(0x0000b007)
          iadd r21.z, r21.z, l(-3)
          ishl r25.x, r21.z, l(2)
          ld_structured r26.x, vThreadIDInGroup.x, r25.x, g0.xxxx
          iadd r25.x, r25.x, l(4)
          ld_structured r26.yz, vThreadIDInGroup.x, r25.x, g0.xxyx
          div r25.xyz, l(1.000000, 1.000000, 1.000000, 1.000000), r26.xyzx
          mul r31.xy, r26.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
          dp4 r37.x, r10.xyzw, r30.xyzw
          dp4 r37.y, r11.xyzw, r30.xyzw
          dp4 r37.z, r12.xyzw, r30.xyzw
          add r36.yzw, r31.xxyz, r37.xxyz
          mul r25.xyz, r25.xyzx, r36.yzwy
          round_ni r25.xyz, r25.xyzx
          mad r25.xyz, -r26.xyzx, r25.xyzx, r36.yzwy
          add r32.xyz, -r31.xyzx, r25.xyzx
          dp4 r30.x, r22.xyzw, r32.xyzw
          dp4 r30.y, r23.xyzw, r32.xyzw
          dp4 r30.z, r24.xyzw, r32.xyzw
          mov r36.x, r28.w
          break
          default
          mov r36.x, r28.w
          break
        endswitch
      endloop
      mov r33.xyz, r30.xyzx
      mov r34.xyz, r35.xyzx
      mad r14.y, r2.z, l(0.500000), r14.y
      iadd r16.x, r16.x, l(1)
    endloop
    add r2.z, r3.w, -r14.y
    ushr r2.w, r7.z, l(9)
    xor r2.w, r7.x, r2.w
    xor r3.w, r2.w, l(61)
    ushr r2.w, r2.w, l(16)
    or r2.w, r2.w, r3.w
    imul null, r2.w, r2.w, l(9)
    ushr r3.w, r2.w, l(4)
    xor r2.w, r2.w, r3.w
    imul null, r2.w, r2.w, l(0x27d4eb2d)
    ushr r3.w, r2.w, l(15)
    xor r2.w, r2.w, r3.w
    xor r2.w, r7.w, r2.w
    mov r25.w, l(1.000000)
    mov r26.w, l(1.000000)
    mov r27.y, r14.x
    mov r27.z, r15.x
    mov r15.x, r16.y
    mov r15.y, r28.y
    mov r29.x, r16.z
    mov r29.y, r14.z
    mov r28.w, l(1.000000)
    mov r7.z, l(0)
    mov r30.w, l(1.000000)
    mov r28.xyz, r33.xyzx
    mov r16.xyz, r34.xyzx
    mov r3.w, l(0)
    mov r5.w, r2.w
    mov r31.x, r8.y
    loop
      ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.x, r31.x, l(0), t4.xxxx
      ine r14.z, r14.x, l(0x0000ffff)
      ige r21.z, r8.x, r31.x
      and r14.z, r14.z, r21.z
      breakc_z r14.z
      iadd r14.z, r31.x, l(1)
      switch r14.x
        case l(0x00008000)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.x, r14.z, l(0), t5.xxxx
        iadd r31.x, r31.x, l(2)
        ishl r21.z, r3.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.z, r14.x
        iadd r3.w, r3.w, l(1)
        break
        case l(0x00008001)
        ishl r14.x, r5.w, l(13)
        xor r14.x, r5.w, r14.x
        ushr r21.z, r14.x, l(17)
        xor r14.x, r14.x, r21.z
        ishl r21.z, r14.x, l(5)
        xor r5.w, r14.x, r21.z
        utof r14.x, r5.w
        mul r14.x, r14.x, l(2.328306437E-010)
        ishl r21.z, r3.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.z, r14.x
        iadd r3.w, r3.w, l(1)
        mov r31.x, r14.z
        break
        case l(0x00008002)
        ishl r14.x, r3.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r14.y
        iadd r3.w, r3.w, l(1)
        mov r31.x, r14.z
        break
        case l(0x00008003)
        dp3 r14.x, r16.xyzx, r16.xyzx
        sqrt r14.x, r14.x
        ishl r21.z, r3.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.z, r14.x
        iadd r3.w, r3.w, l(1)
        mov r31.x, r14.z
        break
        case l(0x00008004)
        ishl r14.x, r3.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r8.w
        iadd r3.w, r3.w, l(1)
        mov r31.x, r14.z
        break
        case l(0x00008005)
        dp3 r14.x, r16.xyzx, r16.xyzx
        lt r21.z, l(0.000000), r14.x
        if_nz r21.z
          rsq r14.x, r14.x
          mul r32.xyz, r14.xxxx, r16.xyzx
          dp3 r14.x, r9.xyzx, r32.xyzx
          add r14.x, -|r14.x|, l(1.000000)
        else
          mov r14.x, l(1.000000)
        endif
        ishl r21.z, r3.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.z, r14.x
        iadd r3.w, r3.w, l(1)
        mov r31.x, r14.z
        break
        case l(0x00008006)
        ishl r14.x, r3.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r8.z
        iadd r3.w, r3.w, l(1)
        mov r31.x, r14.z
        break
        case l(0x00008013)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.x, r14.z, l(0), t5.xxxx
        iadd r32.xyzw, r31.xxxx, l(2, 3, 4, 5)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r21.z, r32.x, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r21.w, r32.y, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r32.z, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r29.w, r32.w, l(0), t5.xxxx
        iadd r31.x, r31.x, l(6)
        mov r25.xyz, r28.xyzx
        dp4 r32.x, r10.xyzw, r25.xyzw
        dp4 r32.y, r11.xyzw, r25.xyzw
        dp4 r25.x, r12.xyzw, r25.xyzw
        add r14.x, r14.x, -|r32.x|
        add r21.z, r21.z, -|r32.y|
        add r21.w, r21.w, -|r25.x|
        min r14.x, r14.x, r21.z
        min r14.x, r21.w, r14.x
        add r14.x, -r27.w, r14.x
        div_sat r14.x, r14.x, r29.w
        ishl r21.z, r3.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.z, r14.x
        iadd r3.w, r3.w, l(1)
        break
        case l(0x00008007)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.x, r14.z, l(0), t4.xxxx
        iadd r31.x, r31.x, l(2)
        ishl r14.x, r14.x, l(2)
        iadd r14.x, r14.x, l(232)
        ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r14.x, r0.x, r14.x, t3.xxxx
        ishl r21.z, r3.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.z, r14.x
        iadd r3.w, r3.w, l(1)
        break
        case l(0x00008009)
        ishl r14.x, r3.w, l(2)
        iadd r14.x, r14.x, l(-8)
        ld_structured r21.zw, vThreadIDInGroup.x, r14.x, g0.xxxy
        add r21.z, r21.z, r21.w
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r21.z
        iadd r3.w, r3.w, l(-1)
        mov r31.x, r14.z
        break
        case l(0x0000800a)
        ishl r14.x, r3.w, l(2)
        iadd r14.x, r14.x, l(-8)
        ld_structured r21.zw, vThreadIDInGroup.x, r14.x, g0.xxxy
        mul r21.z, r21.z, r21.w
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r21.z
        iadd r3.w, r3.w, l(-1)
        mov r31.x, r14.z
        break
        case l(0x0000800b)
        ishl r14.x, r3.w, l(2)
        iadd r14.x, r14.x, l(-12)
        ld_structured r25.xyz, vThreadIDInGroup.x, r14.x, g0.xyzx
        add r21.z, -r25.x, r25.y
        mad r21.z, r25.z, r21.z, r25.x
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r21.z
        iadd r3.w, r3.w, l(-2)
        mov r31.x, r14.z
        break
        case l(0x0000800c)
        ishl r14.x, r3.w, l(2)
        iadd r21.z, r14.x, l(-4)
        ld_structured r21.z, vThreadIDInGroup.x, r21.z, g0.xxxx
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r21.z
        iadd r3.w, r3.w, l(1)
        mov r31.x, r14.z
        break
        case l(0x0000800d)
        ishl r14.x, r3.w, l(2)
        iadd r14.x, r14.x, l(-8)
        ld_structured r21.zw, vThreadIDInGroup.x, r14.x, g0.xxxy
        store_structured g0.xy, vThreadIDInGroup.x, r14.x, r21.wzww
        mov r31.x, r14.z
        break
        case l(0x0000800e)
        ishl r14.x, r3.w, l(2)
        iadd r14.x, r14.x, l(-4)
        ld_structured r21.z, vThreadIDInGroup.x, r14.x, g0.xxxx
        ishl r21.w, r5.w, l(13)
        xor r21.w, r5.w, r21.w
        ushr r25.x, r21.w, l(17)
        xor r21.w, r21.w, r25.x
        ishl r25.x, r21.w, l(5)
        xor r5.w, r21.w, r25.x
        utof r21.w, r5.w
        mad r21.w, r21.w, l(2.328306437E-010), l(-0.500000)
        dp2 r21.z, r21.wwww, r21.zzzz
        add r21.z, r21.z, l(1.000000)
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r21.z
        mov r31.x, r14.z
        break
        case l(0x0000800f)
        ishl r14.x, r3.w, l(2)
        iadd r14.x, r14.x, l(-4)
        ld_structured r21.z, vThreadIDInGroup.x, r14.x, g0.xxxx
        ishl r21.w, r5.w, l(13)
        xor r21.w, r5.w, r21.w
        ushr r25.x, r21.w, l(17)
        xor r21.w, r21.w, r25.x
        ishl r25.x, r21.w, l(5)
        xor r5.w, r21.w, r25.x
        utof r21.w, r5.w
        mad r21.w, r21.w, l(2.328306437E-010), l(-0.500000)
        add r25.x, r21.w, r21.w
        ge r21.w, r21.w, l(0.000000)
        movc r21.w, r21.w, l(1.000000), l(-1.000000)
        add r25.x, |r25.x|, l(-0.500000)
        dp2 r21.z, r25.xxxx, r21.zzzz
        add r21.z, r21.z, l(1.000000)
        mul r21.z, r21.z, r21.w
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r21.z
        mov r31.x, r14.z
        break
        case l(0x00008010)
        ishl r14.x, r3.w, l(2)
        iadd r14.x, r14.x, l(-4)
        ld_structured r21.z, vThreadIDInGroup.x, r14.x, g0.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r21.w, r14.z, l(0), t5.xxxx
        iadd r25.xy, r31.xxxx, l(4, 20, 0, 0)
        ge r25.z, r21.w, r21.z
        if_nz r25.z
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.z, r25.x, l(0), t5.xxxx
        else
          iadd r27.w, r31.x, l(2)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r27.w, l(0), t5.xxxx
          ge r27.w, r21.z, r27.w
          if_nz r27.w
            iadd r27.w, r31.x, l(19)
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.z, r27.w, l(0), t5.xxxx
          else
            iadd r27.w, r31.x, l(3)
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r27.w, l(0), t5.xxxx
            add r21.z, -r21.w, r21.z
            div r21.z, r21.z, r27.w
            round_ni r21.w, r21.z
            add r21.z, -r21.w, r21.z
            ftoi r21.w, r21.w
            iadd r27.w, r21.w, r25.x
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r27.w, l(0), t5.xxxx
            iadd r21.w, r21.w, l(1)
            imin r21.w, r21.w, l(15)
            iadd r21.w, r21.w, r25.x
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r21.w, r21.w, l(0), t5.xxxx
            add r21.w, -r27.w, r21.w
            mad r25.z, r21.z, r21.w, r27.w
          endif
        endif
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r25.z
        mov r31.x, r25.y
        break
        case l(0x00008011)
        ishl r14.x, r3.w, l(2)
        iadd r14.x, r14.x, l(-4)
        ld_structured r21.z, vThreadIDInGroup.x, r14.x, g0.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r21.w, r14.z, l(0), t5.xxxx
        iadd r31.xyzw, r31.xxxx, l(5, 2, 3, 4)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.x, r31.y, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.y, r31.z, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.z, r31.w, l(0), t5.xxxx
        add r21.z, -r21.w, r21.z
        div_sat r21.z, r21.z, r25.x
        mad r21.z, r25.z, r21.z, r25.y
        store_structured g0.x, vThreadIDInGroup.x, r14.x, r21.z
        break
        case l(0x00008012)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.x, r14.z, l(0), t5.xxxx
        iadd r31.x, r31.x, l(2)
        ishl r21.z, r3.w, l(2)
        iadd r21.z, r21.z, l(-4)
        store_structured g0.x, vThreadIDInGroup.x, r21.z, r14.x
        break
        case l(0x00009000)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r14.x, r14.z, l(0), t4.xxxx
        iadd r31.x, r31.x, l(2)
        imad r14.x, r14.x, l(12), l(64)
        ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r25.xyz, r0.x, r14.x, t3.xyzx
        ishl r14.x, r3.w, l(2)
        store_structured g0.xyz, vThreadIDInGroup.x, r14.x, r25.xyzx
        iadd r3.w, r3.w, l(3)
        break
        case l(0x00009001)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.x, r14.z, l(0), t5.xxxx
        iadd r31.xyz, r31.xxxx, l(4, 2, 3, 0)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.y, r31.y, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.z, r31.z, l(0), t5.xxxx
        ishl r14.x, r3.w, l(2)
        store_structured g0.xyz, vThreadIDInGroup.x, r14.x, r25.xyzx
        iadd r3.w, r3.w, l(3)
        break
        case l(0x0000b000)
        mad r28.xyz, r16.xyzx, r2.zzzz, r28.xyzx
        mov r31.x, r14.z
        break
        case l(0x0000b001)
        iadd r3.w, r3.w, l(-3)
        ishl r14.x, r3.w, l(2)
        ld_structured r25.x, vThreadIDInGroup.x, r14.x, g0.xxxx
        iadd r14.x, r14.x, l(4)
        ld_structured r25.yz, vThreadIDInGroup.x, r14.x, g0.xxyx
        mad r16.xyz, r25.xyzx, r2.zzzz, r16.xyzx
        mov r31.x, r14.z
        break
        case l(0x0000b002)
        iadd r3.w, r3.w, l(-3)
        ishl r14.x, r3.w, l(2)
        ld_structured r25.x, vThreadIDInGroup.x, r14.x, g0.xxxx
        iadd r14.x, r14.x, l(4)
        ld_structured r25.yz, vThreadIDInGroup.x, r14.x, g0.xxyx
        if_nz r9.w
          mov r31.yzw, r25.xxyz
        endif
        if_z r9.w
          dp3 r31.y, r25.xyzx, r27.xyzx
          dp3 r31.z, r25.xyzx, r15.xyzx
          dp3 r31.w, r25.xyzx, r29.xyzx
        endif
        mad r16.xyz, r31.yzwy, r2.zzzz, r16.xyzx
        mov r31.x, r14.z
        break
        case l(0x0000b003)
        iadd r3.w, r3.w, l(-1)
        ishl r14.x, r3.w, l(2)
        ld_structured r14.x, vThreadIDInGroup.x, r14.x, g0.xxxx
        mul r14.x, r2.z, r14.x
        eq r25.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
        dp3 r21.z, r16.xyzx, r16.xyzx
        rsq r21.z, r21.z
        mul r31.yzw, r16.xxyz, r21.zzzz
        movc r25.xyz, r25.xyzx, r16.xyzx, r31.yzwy
        mad r16.xyz, r25.xyzx, r14.xxxx, r16.xyzx
        mov r31.x, r14.z
        break
        case l(0x0000b004)
        iadd r3.w, r3.w, l(-1)
        ishl r14.x, r3.w, l(2)
        ld_structured r14.x, vThreadIDInGroup.x, r14.x, g0.xxxx
        mov r26.xyz, r28.xyzx
        dp4 r25.x, r13.xyzw, r26.xyzw
        dp4 r25.y, r17.xyzw, r26.xyzw
        dp4 r25.z, r18.xyzw, r26.xyzw
        dp4 r21.z, r19.xyzw, r26.xyzw
        div r25.xyz, r25.xyzx, r21.zzzz
        dp3 r26.x, r13.xyzx, r16.xyzx
        dp3 r26.y, r17.xyzx, r16.xyzx
        dp3 r26.z, r18.xyzx, r16.xyzx
        add r25.xyz, -r28.xyzx, r25.xyzx
        mad r28.xyz, r14.xxxx, r25.xyzx, r28.xyzx
        add r25.xyz, -r16.xyzx, r26.xyzx
        mad r16.xyz, r14.xxxx, r25.xyzx, r16.xyzx
        mov r31.x, r14.z
        break
        case l(0x0000b005)
        ishl r14.x, r3.w, l(2)
        iadd r14.x, r14.x, l(-4)
        ld_structured r14.x, vThreadIDInGroup.x, r14.x, g0.xxxx
        iadd r3.w, r3.w, l(-2)
        ishl r21.z, r3.w, l(2)
        ld_structured r21.z, vThreadIDInGroup.x, r21.z, g0.xxxx
        mul r21.z, r14.y, r21.z
        ftoi r21.z, r21.z
        imul null, r21.w, r21.z, l(57)
        imad r25.xy, r21.zzzz, l(57, 57, 0, 0), l(-57, 57, 0, 0)
        iadd r32.xyzw, r20.xyxy, r25.xxyy
        ishl r35.xyzw, r32.xyzw, l(13, 13, 13, 13)
        xor r32.xyzw, r32.xyzw, r35.xyzw
        imul null, r35.xyzw, r32.xyzw, r32.xyzw
        imad r35.xyzw, r35.xyzw, l(0x00003d73, 0x00003d73, 0x00003d73, 0x00003d73), l(0x000c0ae5, 0x000c0ae5, 0x000c0ae5, 0x000c0ae5)
        imad r32.xyzw, r32.xyzw, r35.xyzw, l(0x5208dd0d, 0x5208dd0d, 0x5208dd0d, 0x5208dd0d)
        and r32.xyzw, r32.xyzw, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff)
        utof r32.xyzw, r32.xyzw
        mad r25.z, -r32.x, l(9.313225746E-010), l(1.000000)
        mad r25.z, -r32.y, l(9.313225746E-010), r25.z
        add r25.z, r25.z, l(1.000000)
        mad r25.z, -r32.z, l(9.313225746E-010), r25.z
        add r25.z, r25.z, l(1.000000)
        mad r25.z, -r32.w, l(9.313225746E-010), r25.z
        add r25.z, r25.z, l(1.000000)
        imad r26.xy, r21.zzzz, l(57, 57, 0, 0), r20.xyxx
        ishl r31.yz, r26.xxyx, l(0, 13, 13, 0)
        xor r26.xy, r26.xyxx, r31.yzyy
        imul null, r31.yz, r26.xxyx, r26.xxyx
        imad r31.yz, r31.yyzy, l(0, 0x00003d73, 0x00003d73, 0), l(0, 0x000c0ae5, 0x000c0ae5, 0)
        imad r26.xy, r26.xyxx, r31.yzyy, l(0x5208dd0d, 0x5208dd0d, 0, 0)
        and r26.xy, r26.xyxx, l(0x7fffffff, 0x7fffffff, 0, 0)
        utof r26.xy, r26.xyxx
        mad r26.x, -r26.x, l(9.313225746E-010), l(1.000000)
        mad r26.x, -r26.y, l(9.313225746E-010), r26.x
        add r26.x, r26.x, l(1.000000)
        iadd r26.yz, r15.wwww, r25.xxyx
        ishl r31.yz, r26.yyzy, l(0, 13, 13, 0)
        xor r26.yz, r26.yyzy, r31.yyzy
        imul null, r31.yz, r26.yyzy, r26.yyzy
        imad r31.yz, r31.yyzy, l(0, 0x00003d73, 0x00003d73, 0), l(0, 0x000c0ae5, 0x000c0ae5, 0)
        imad r26.yz, r26.yyzy, r31.yyzy, l(0, 0x5208dd0d, 0x5208dd0d, 0)
        and r26.yz, r26.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
        utof r26.yz, r26.yyzy
        mad r26.x, -r26.y, l(9.313225746E-010), r26.x
        add r26.x, r26.x, l(1.000000)
        mad r26.x, -r26.z, l(9.313225746E-010), r26.x
        add r26.x, r26.x, l(1.000000)
        mul r26.x, r26.x, l(0.125000)
        imad r26.y, r21.z, l(57), r15.w
        ishl r26.z, r26.y, l(13)
        xor r26.y, r26.y, r26.z
        imul null, r26.z, r26.y, r26.y
        imad r26.z, r26.z, l(0x00003d73), l(0x000c0ae5)
        imad r26.y, r26.y, r26.z, l(0x5208dd0d)
        and r26.y, r26.y, l(0x7fffffff)
        utof r26.y, r26.y
        mad r26.y, -r26.y, l(9.313225746E-010), l(1.000000)
        mad r25.z, r25.z, l(0.062500), r26.x
        mad r26.x, r26.y, l(0.250000), r25.z
        iadd r32.xyzw, r20.zwzw, r25.xxyy
        ishl r35.xyzw, r32.xyzw, l(13, 13, 13, 13)
        xor r32.xyzw, r32.xyzw, r35.xyzw
        imul null, r35.xyzw, r32.xyzw, r32.xyzw
        imad r35.xyzw, r35.xyzw, l(0x00003d73, 0x00003d73, 0x00003d73, 0x00003d73), l(0x000c0ae5, 0x000c0ae5, 0x000c0ae5, 0x000c0ae5)
        imad r32.xyzw, r32.xyzw, r35.xyzw, l(0x5208dd0d, 0x5208dd0d, 0x5208dd0d, 0x5208dd0d)
        and r32.xyzw, r32.xyzw, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff)
        utof r32.xyzw, r32.xyzw
        mad r25.z, -r32.x, l(9.313225746E-010), l(1.000000)
        mad r25.z, -r32.y, l(9.313225746E-010), r25.z
        add r25.z, r25.z, l(1.000000)
        mad r25.z, -r32.z, l(9.313225746E-010), r25.z
        add r25.z, r25.z, l(1.000000)
        mad r25.z, -r32.w, l(9.313225746E-010), r25.z
        add r25.z, r25.z, l(1.000000)
        imad r31.yz, r21.zzzz, l(0, 57, 57, 0), r20.zzwz
        ishl r32.xy, r31.yzyy, l(13, 13, 0, 0)
        xor r31.yz, r31.yyzy, r32.xxyx
        imul null, r32.xy, r31.yzyy, r31.yzyy
        imad r32.xy, r32.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
        imad r31.yz, r31.yyzy, r32.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
        and r31.yz, r31.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
        utof r31.yz, r31.yyzy
        mad r27.w, -r31.y, l(9.313225746E-010), l(1.000000)
        mad r27.w, -r31.z, l(9.313225746E-010), r27.w
        add r27.w, r27.w, l(1.000000)
        imad r31.yz, r7.wwww, r14.wwww, r25.xxyx
        ishl r32.xy, r31.yzyy, l(13, 13, 0, 0)
        xor r31.yz, r31.yyzy, r32.xxyx
        imul null, r32.xy, r31.yzyy, r31.yzyy
        imad r32.xy, r32.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
        imad r31.yz, r31.yyzy, r32.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
        and r31.yz, r31.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
        utof r31.yz, r31.yyzy
        mad r27.w, -r31.y, l(9.313225746E-010), r27.w
        add r27.w, r27.w, l(1.000000)
        mad r27.w, -r31.z, l(9.313225746E-010), r27.w
        add r27.w, r27.w, l(1.000000)
        mul r27.w, r27.w, l(0.125000)
        imad r21.w, r7.w, r14.w, r21.w
        ishl r29.w, r21.w, l(13)
        xor r21.w, r21.w, r29.w
        imul null, r29.w, r21.w, r21.w
        imad r29.w, r29.w, l(0x00003d73), l(0x000c0ae5)
        imad r21.w, r21.w, r29.w, l(0x5208dd0d)
        and r21.w, r21.w, l(0x7fffffff)
        utof r21.w, r21.w
        mad r21.w, -r21.w, l(9.313225746E-010), l(1.000000)
        mad r25.z, r25.z, l(0.062500), r27.w
        mad r26.y, r21.w, l(0.250000), r25.z
        iadd r32.xyzw, r21.xyxy, r25.xxyy
        ishl r35.xyzw, r32.xyzw, l(13, 13, 13, 13)
        xor r32.xyzw, r32.xyzw, r35.xyzw
        imul null, r35.xyzw, r32.xyzw, r32.xyzw
        imad r35.xyzw, r35.xyzw, l(0x00003d73, 0x00003d73, 0x00003d73, 0x00003d73), l(0x000c0ae5, 0x000c0ae5, 0x000c0ae5, 0x000c0ae5)
        imad r32.xyzw, r32.xyzw, r35.xyzw, l(0x5208dd0d, 0x5208dd0d, 0x5208dd0d, 0x5208dd0d)
        and r32.xyzw, r32.xyzw, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff)
        utof r32.xyzw, r32.xyzw
        mad r21.w, -r32.x, l(9.313225746E-010), l(1.000000)
        mad r21.w, -r32.y, l(9.313225746E-010), r21.w
        add r21.w, r21.w, l(1.000000)
        mad r21.w, -r32.z, l(9.313225746E-010), r21.w
        add r21.w, r21.w, l(1.000000)
        mad r21.w, -r32.w, l(9.313225746E-010), r21.w
        add r21.w, r21.w, l(1.000000)
        imad r31.yz, r21.zzzz, l(0, 57, 57, 0), r21.xxyx
        ishl r32.xy, r31.yzyy, l(13, 13, 0, 0)
        xor r31.yz, r31.yyzy, r32.xxyx
        imul null, r32.xy, r31.yzyy, r31.yzyy
        imad r32.xy, r32.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
        imad r31.yz, r31.yyzy, r32.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
        and r31.yz, r31.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
        utof r31.yz, r31.yyzy
        mad r25.z, -r31.y, l(9.313225746E-010), l(1.000000)
        mad r25.z, -r31.z, l(9.313225746E-010), r25.z
        add r25.z, r25.z, l(1.000000)
        iadd r25.xy, r16.wwww, r25.xyxx
        ishl r31.yz, r25.xxyx, l(0, 13, 13, 0)
        xor r25.xy, r25.xyxx, r31.yzyy
        imul null, r31.yz, r25.xxyx, r25.xxyx
        imad r31.yz, r31.yyzy, l(0, 0x00003d73, 0x00003d73, 0), l(0, 0x000c0ae5, 0x000c0ae5, 0)
        imad r25.xy, r25.xyxx, r31.yzyy, l(0x5208dd0d, 0x5208dd0d, 0, 0)
        and r25.xy, r25.xyxx, l(0x7fffffff, 0x7fffffff, 0, 0)
        utof r25.xy, r25.xyxx
        mad r25.x, -r25.x, l(9.313225746E-010), r25.z
        add r25.x, r25.x, l(1.000000)
        mad r25.x, -r25.y, l(9.313225746E-010), r25.x
        add r25.x, r25.x, l(1.000000)
        mul r25.x, r25.x, l(0.125000)
        imad r21.z, r21.z, l(57), r16.w
        ishl r25.y, r21.z, l(13)
        xor r21.z, r21.z, r25.y
        imul null, r25.y, r21.z, r21.z
        imad r25.y, r25.y, l(0x00003d73), l(0x000c0ae5)
        imad r21.z, r21.z, r25.y, l(0x5208dd0d)
        and r21.z, r21.z, l(0x7fffffff)
        utof r21.z, r21.z
        mad r21.z, -r21.z, l(9.313225746E-010), l(1.000000)
        mad r21.w, r21.w, l(0.062500), r25.x
        mad r26.z, r21.z, l(0.250000), r21.w
        mul r25.xyz, r14.xxxx, r26.xyzx
        mad r16.xyz, r25.xyzx, r2.zzzz, r16.xyzx
        mov r31.x, r14.z
        break
        case l(0x0000b006)
        iadd r3.w, r3.w, l(-1)
        ishl r14.x, r3.w, l(2)
        ld_structured r14.x, vThreadIDInGroup.x, r14.x, g0.xxxx
        max r14.x, r14.x, l(0.000000)
        mad r14.x, r14.x, r2.z, l(1.000000)
        div r16.xyz, r16.xyzx, r14.xxxx
        mov r31.x, r14.z
        break
        case l(0x0000b007)
        iadd r3.w, r3.w, l(-3)
        ishl r14.x, r3.w, l(2)
        ld_structured r25.x, vThreadIDInGroup.x, r14.x, g0.xxxx
        iadd r14.x, r14.x, l(4)
        ld_structured r25.yz, vThreadIDInGroup.x, r14.x, g0.xxyx
        div r26.xyz, l(1.000000, 1.000000, 1.000000, 1.000000), r25.xyzx
        mul r7.xy, r25.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
        dp4 r32.x, r10.xyzw, r28.xyzw
        dp4 r32.y, r11.xyzw, r28.xyzw
        dp4 r32.z, r12.xyzw, r28.xyzw
        add r31.yzw, r7.xxyz, r32.xxyz
        mul r26.xyz, r26.xyzx, r31.yzwy
        round_ni r26.xyz, r26.xyzx
        mad r25.xyz, -r25.xyzx, r26.xyzx, r31.yzwy
        add r30.xyz, -r7.xyzx, r25.xyzx
        dp4 r28.x, r22.xyzw, r30.xyzw
        dp4 r28.y, r23.xyzw, r30.xyzw
        dp4 r28.z, r24.xyzw, r30.xyzw
        mov r31.x, r14.z
        break
        default
        mov r31.x, r14.z
        break
      endswitch
    endloop
  else
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r2.z, r0.x, l(272), t3.xxxx
    mul r2.z, r4.w, r2.z
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r2.w, r0.x, l(204), t3.xxxx
    ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r3.w, vThreadID.x, l(0), t0.xxxx
    ushr r0.w, r0.w, l(9)
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r4.w, r0.x, l(196), t3.xxxx
    xor r0.w, r2.w, r0.w
    xor r5.w, r0.w, l(61)
    ushr r0.w, r0.w, l(16)
    or r0.w, r0.w, r5.w
    imul null, r0.w, r0.w, l(9)
    ushr r5.w, r0.w, l(4)
    xor r0.w, r0.w, r5.w
    imul null, r0.w, r0.w, l(0x27d4eb2d)
    ushr r5.w, r0.w, l(15)
    xor r0.w, r0.w, r5.w
    xor r0.w, r4.w, r0.w
    iadd r7.xy, r2.wwww, l(1, 2, 0, 0)
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r5.w, r7.x, l(0), t4.xxxx
    imin r5.w, r5.w, l(2048)
    iadd r2.w, r2.w, r5.w
    iadd r2.w, r2.w, l(-1)
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r7.xz, r0.x, l(220), t3.xxyx
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r8.xyz, l(0), l(1408), t2.xyzx
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r9.xyzw, l(0), l(0), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r10.xyzw, l(0), l(16), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r11.xyzw, l(0), l(32), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r5.w, r0.x, l(328), t3.xxxx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r12.xyzw, r0.x, l(0), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r13.xyz, r0.x, l(160), t3.xyzx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r14.xyz, r0.x, l(136), t3.xyzx
    mul r15.xyz, r13.zxyz, r14.yzxy
    mad r15.xyz, r13.yzxy, r14.zxyz, -r15.xyzx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r17.xyzw, r0.x, l(16), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r18.xyzw, r0.x, l(32), t3.xyzw
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r19.xyzw, r0.x, l(48), t3.xyzw
    iadd r1.w, r1.w, vThreadID.x
    iadd r7.w, r1.w, r4.w
    iadd r20.xy, r7.wwww, l(-1, 1, 0, 0)
    imad r20.zw, r4.wwww, r1.wwww, l(0, 0, -1, 1)
    imad r8.w, -r1.w, r1.w, r4.w
    iadd r21.xy, r8.wwww, l(-1, 1, 0, 0)
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r22.xyzw, l(0), l(64), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r23.xyzw, l(0), l(80), t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r24.xyzw, l(0), l(96), t2.xyzw
    mov r25.w, l(1.000000)
    mov r26.w, l(1.000000)
    mov r27.x, r15.x
    mov r27.y, r13.x
    mov r27.z, r14.x
    mov r29.x, r15.y
    mov r29.y, r13.y
    mov r29.z, r14.y
    mov r14.x, r15.z
    mov r14.y, r13.z
    mov r28.w, l(1.000000)
    mov r13.z, l(0)
    mov r15.w, l(1.000000)
    mov r28.xyz, r3.xyzx
    mov r16.xyz, r4.xyzx
    mov r13.w, l(0)
    mov r14.w, r0.w
    mov r30.x, r7.y
    loop
      ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r30.x, l(0), t4.xxxx
      ine r21.z, r16.w, l(0x0000ffff)
      ige r21.w, r2.w, r30.x
      and r21.z, r21.w, r21.z
      breakc_z r21.z
      iadd r21.z, r30.x, l(1)
      switch r16.w
        case l(0x00008000)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r21.z, l(0), t5.xxxx
        iadd r30.x, r30.x, l(2)
        ishl r21.w, r13.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.w, r16.w
        iadd r13.w, r13.w, l(1)
        break
        case l(0x00008001)
        ishl r16.w, r14.w, l(13)
        xor r16.w, r14.w, r16.w
        ushr r21.w, r16.w, l(17)
        xor r16.w, r16.w, r21.w
        ishl r21.w, r16.w, l(5)
        xor r14.w, r16.w, r21.w
        utof r16.w, r14.w
        mul r16.w, r16.w, l(2.328306437E-010)
        ishl r21.w, r13.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.w, r16.w
        iadd r13.w, r13.w, l(1)
        mov r30.x, r21.z
        break
        case l(0x00008002)
        ishl r16.w, r13.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r3.w
        iadd r13.w, r13.w, l(1)
        mov r30.x, r21.z
        break
        case l(0x00008003)
        dp3 r16.w, r16.xyzx, r16.xyzx
        sqrt r16.w, r16.w
        ishl r21.w, r13.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.w, r16.w
        iadd r13.w, r13.w, l(1)
        mov r30.x, r21.z
        break
        case l(0x00008004)
        ishl r16.w, r13.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r7.z
        iadd r13.w, r13.w, l(1)
        mov r30.x, r21.z
        break
        case l(0x00008005)
        dp3 r16.w, r16.xyzx, r16.xyzx
        lt r21.w, l(0.000000), r16.w
        if_nz r21.w
          rsq r16.w, r16.w
          mul r31.xyz, r16.wwww, r16.xyzx
          dp3 r16.w, r8.xyzx, r31.xyzx
          add r16.w, -|r16.w|, l(1.000000)
        else
          mov r16.w, l(1.000000)
        endif
        ishl r21.w, r13.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.w, r16.w
        iadd r13.w, r13.w, l(1)
        mov r30.x, r21.z
        break
        case l(0x00008006)
        ishl r16.w, r13.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r7.x
        iadd r13.w, r13.w, l(1)
        mov r30.x, r21.z
        break
        case l(0x00008013)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r21.z, l(0), t5.xxxx
        iadd r31.xyzw, r30.xxxx, l(2, 3, 4, 5)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r21.w, r31.x, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r31.y, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r29.w, r31.z, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r31.x, r31.w, l(0), t5.xxxx
        iadd r30.x, r30.x, l(6)
        mov r25.xyz, r28.xyzx
        dp4 r31.y, r9.xyzw, r25.xyzw
        dp4 r31.z, r10.xyzw, r25.xyzw
        dp4 r25.x, r11.xyzw, r25.xyzw
        add r16.w, r16.w, -|r31.y|
        add r21.w, r21.w, -|r31.z|
        add r25.x, -|r25.x|, r27.w
        min r16.w, r16.w, r21.w
        min r16.w, r25.x, r16.w
        add r16.w, -r29.w, r16.w
        div_sat r16.w, r16.w, r31.x
        ishl r21.w, r13.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.w, r16.w
        iadd r13.w, r13.w, l(1)
        break
        case l(0x00008007)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r21.z, l(0), t4.xxxx
        iadd r30.x, r30.x, l(2)
        ishl r16.w, r16.w, l(2)
        iadd r16.w, r16.w, l(232)
        ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r16.w, r0.x, r16.w, t3.xxxx
        ishl r21.w, r13.w, l(2)
        store_structured g0.x, vThreadIDInGroup.x, r21.w, r16.w
        iadd r13.w, r13.w, l(1)
        break
        case l(0x00008009)
        ishl r16.w, r13.w, l(2)
        iadd r16.w, r16.w, l(-8)
        ld_structured r25.xy, vThreadIDInGroup.x, r16.w, g0.xyxx
        add r21.w, r25.x, r25.y
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r21.w
        iadd r13.w, r13.w, l(-1)
        mov r30.x, r21.z
        break
        case l(0x0000800a)
        ishl r16.w, r13.w, l(2)
        iadd r16.w, r16.w, l(-8)
        ld_structured r25.xy, vThreadIDInGroup.x, r16.w, g0.xyxx
        mul r21.w, r25.x, r25.y
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r21.w
        iadd r13.w, r13.w, l(-1)
        mov r30.x, r21.z
        break
        case l(0x0000800b)
        ishl r16.w, r13.w, l(2)
        iadd r16.w, r16.w, l(-12)
        ld_structured r25.xyz, vThreadIDInGroup.x, r16.w, g0.xyzx
        add r21.w, -r25.x, r25.y
        mad r21.w, r25.z, r21.w, r25.x
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r21.w
        iadd r13.w, r13.w, l(-2)
        mov r30.x, r21.z
        break
        case l(0x0000800c)
        ishl r16.w, r13.w, l(2)
        iadd r21.w, r16.w, l(-4)
        ld_structured r21.w, vThreadIDInGroup.x, r21.w, g0.xxxx
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r21.w
        iadd r13.w, r13.w, l(1)
        mov r30.x, r21.z
        break
        case l(0x0000800d)
        ishl r16.w, r13.w, l(2)
        iadd r16.w, r16.w, l(-8)
        ld_structured r25.xy, vThreadIDInGroup.x, r16.w, g0.xyxx
        store_structured g0.xy, vThreadIDInGroup.x, r16.w, r25.yxyy
        mov r30.x, r21.z
        break
        case l(0x0000800e)
        ishl r16.w, r13.w, l(2)
        iadd r16.w, r16.w, l(-4)
        ld_structured r21.w, vThreadIDInGroup.x, r16.w, g0.xxxx
        ishl r25.x, r14.w, l(13)
        xor r25.x, r14.w, r25.x
        ushr r25.y, r25.x, l(17)
        xor r25.x, r25.y, r25.x
        ishl r25.y, r25.x, l(5)
        xor r14.w, r25.y, r25.x
        utof r25.x, r14.w
        mad r25.x, r25.x, l(2.328306437E-010), l(-0.500000)
        dp2 r21.w, r25.xxxx, r21.wwww
        add r21.w, r21.w, l(1.000000)
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r21.w
        mov r30.x, r21.z
        break
        case l(0x0000800f)
        ishl r16.w, r13.w, l(2)
        iadd r16.w, r16.w, l(-4)
        ld_structured r21.w, vThreadIDInGroup.x, r16.w, g0.xxxx
        ishl r25.x, r14.w, l(13)
        xor r25.x, r14.w, r25.x
        ushr r25.y, r25.x, l(17)
        xor r25.x, r25.y, r25.x
        ishl r25.y, r25.x, l(5)
        xor r14.w, r25.y, r25.x
        utof r25.x, r14.w
        mad r25.x, r25.x, l(2.328306437E-010), l(-0.500000)
        add r25.y, r25.x, r25.x
        ge r25.x, r25.x, l(0.000000)
        movc r25.x, r25.x, l(1.000000), l(-1.000000)
        add r25.y, |r25.y|, l(-0.500000)
        dp2 r21.w, r25.yyyy, r21.wwww
        add r21.w, r21.w, l(1.000000)
        mul r21.w, r21.w, r25.x
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r21.w
        mov r30.x, r21.z
        break
        case l(0x00008010)
        ishl r16.w, r13.w, l(2)
        iadd r16.w, r16.w, l(-4)
        ld_structured r21.w, vThreadIDInGroup.x, r16.w, g0.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.x, r21.z, l(0), t5.xxxx
        iadd r25.yz, r30.xxxx, l(0, 4, 20, 0)
        ge r27.w, r25.x, r21.w
        if_nz r27.w
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r25.y, l(0), t5.xxxx
        else
          iadd r29.w, r30.x, l(2)
          ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r29.w, r29.w, l(0), t5.xxxx
          ge r29.w, r21.w, r29.w
          if_nz r29.w
            iadd r29.w, r30.x, l(19)
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r29.w, l(0), t5.xxxx
          else
            iadd r29.w, r30.x, l(3)
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r29.w, r29.w, l(0), t5.xxxx
            add r21.w, r21.w, -r25.x
            div r21.w, r21.w, r29.w
            round_ni r25.x, r21.w
            add r21.w, r21.w, -r25.x
            ftoi r25.x, r25.x
            iadd r29.w, r25.x, r25.y
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r29.w, r29.w, l(0), t5.xxxx
            iadd r25.x, r25.x, l(1)
            imin r25.x, r25.x, l(15)
            iadd r25.x, r25.x, r25.y
            ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.x, r25.x, l(0), t5.xxxx
            add r25.x, -r29.w, r25.x
            mad r27.w, r21.w, r25.x, r29.w
          endif
        endif
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r27.w
        mov r30.x, r25.z
        break
        case l(0x00008011)
        ishl r16.w, r13.w, l(2)
        iadd r16.w, r16.w, l(-4)
        ld_structured r21.w, vThreadIDInGroup.x, r16.w, g0.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.x, r21.z, l(0), t5.xxxx
        iadd r30.xyzw, r30.xxxx, l(5, 2, 3, 4)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.y, r30.y, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.z, r30.z, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r27.w, r30.w, l(0), t5.xxxx
        add r21.w, r21.w, -r25.x
        div_sat r21.w, r21.w, r25.y
        mad r21.w, r27.w, r21.w, r25.z
        store_structured g0.x, vThreadIDInGroup.x, r16.w, r21.w
        break
        case l(0x00008012)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r21.z, l(0), t5.xxxx
        iadd r30.x, r30.x, l(2)
        ishl r21.w, r13.w, l(2)
        iadd r21.w, r21.w, l(-4)
        store_structured g0.x, vThreadIDInGroup.x, r21.w, r16.w
        break
        case l(0x00009000)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r16.w, r21.z, l(0), t4.xxxx
        iadd r30.x, r30.x, l(2)
        imad r16.w, r16.w, l(12), l(64)
        ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r25.xyz, r0.x, r16.w, t3.xyzx
        ishl r16.w, r13.w, l(2)
        store_structured g0.xyz, vThreadIDInGroup.x, r16.w, r25.xyzx
        iadd r13.w, r13.w, l(3)
        break
        case l(0x00009001)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.x, r21.z, l(0), t5.xxxx
        iadd r30.xyz, r30.xxxx, l(4, 2, 3, 0)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.y, r30.y, l(0), t5.xxxx
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r25.z, r30.z, l(0), t5.xxxx
        ishl r16.w, r13.w, l(2)
        store_structured g0.xyz, vThreadIDInGroup.x, r16.w, r25.xyzx
        iadd r13.w, r13.w, l(3)
        break
        case l(0x0000b000)
        mad r28.xyz, r16.xyzx, r2.zzzz, r28.xyzx
        mov r30.x, r21.z
        break
        case l(0x0000b001)
        iadd r13.w, r13.w, l(-3)
        ishl r16.w, r13.w, l(2)
        ld_structured r25.x, vThreadIDInGroup.x, r16.w, g0.xxxx
        iadd r16.w, r16.w, l(4)
        ld_structured r25.yz, vThreadIDInGroup.x, r16.w, g0.xxyx
        mad r16.xyz, r25.xyzx, r2.zzzz, r16.xyzx
        mov r30.x, r21.z
        break
        case l(0x0000b002)
        iadd r13.w, r13.w, l(-3)
        ishl r16.w, r13.w, l(2)
        ld_structured r25.x, vThreadIDInGroup.x, r16.w, g0.xxxx
        iadd r16.w, r16.w, l(4)
        ld_structured r25.yz, vThreadIDInGroup.x, r16.w, g0.xxyx
        if_nz r5.w
          mov r30.yzw, r25.xxyz
        endif
        if_z r5.w
          dp3 r30.y, r25.xyzx, r27.xyzx
          dp3 r30.z, r25.xyzx, r29.xyzx
          dp3 r30.w, r25.xyzx, r14.xyzx
        endif
        mad r16.xyz, r30.yzwy, r2.zzzz, r16.xyzx
        mov r30.x, r21.z
        break
        case l(0x0000b003)
        iadd r13.w, r13.w, l(-1)
        ishl r16.w, r13.w, l(2)
        ld_structured r16.w, vThreadIDInGroup.x, r16.w, g0.xxxx
        mul r16.w, r2.z, r16.w
        eq r25.xyz, r16.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
        dp3 r21.w, r16.xyzx, r16.xyzx
        rsq r21.w, r21.w
        mul r30.yzw, r16.xxyz, r21.wwww
        movc r25.xyz, r25.xyzx, r16.xyzx, r30.yzwy
        mad r16.xyz, r25.xyzx, r16.wwww, r16.xyzx
        mov r30.x, r21.z
        break
        case l(0x0000b004)
        iadd r13.w, r13.w, l(-1)
        ishl r16.w, r13.w, l(2)
        ld_structured r16.w, vThreadIDInGroup.x, r16.w, g0.xxxx
        mov r26.xyz, r28.xyzx
        dp4 r25.x, r12.xyzw, r26.xyzw
        dp4 r25.y, r17.xyzw, r26.xyzw
        dp4 r25.z, r18.xyzw, r26.xyzw
        dp4 r21.w, r19.xyzw, r26.xyzw
        div r25.xyz, r25.xyzx, r21.wwww
        dp3 r26.x, r12.xyzx, r16.xyzx
        dp3 r26.y, r17.xyzx, r16.xyzx
        dp3 r26.z, r18.xyzx, r16.xyzx
        add r25.xyz, -r28.xyzx, r25.xyzx
        mad r28.xyz, r16.wwww, r25.xyzx, r28.xyzx
        add r25.xyz, -r16.xyzx, r26.xyzx
        mad r16.xyz, r16.wwww, r25.xyzx, r16.xyzx
        mov r30.x, r21.z
        break
        case l(0x0000b005)
        ishl r16.w, r13.w, l(2)
        iadd r16.w, r16.w, l(-4)
        ld_structured r16.w, vThreadIDInGroup.x, r16.w, g0.xxxx
        iadd r13.w, r13.w, l(-2)
        ishl r21.w, r13.w, l(2)
        ld_structured r21.w, vThreadIDInGroup.x, r21.w, g0.xxxx
        mul r21.w, r3.w, r21.w
        ftoi r21.w, r21.w
        imul null, r25.x, r21.w, l(57)
        imad r25.yz, r21.wwww, l(0, 57, 57, 0), l(0, -57, 57, 0)
        iadd r31.xyzw, r20.xyxy, r25.yyzz
        ishl r32.xyzw, r31.xyzw, l(13, 13, 13, 13)
        xor r31.xyzw, r31.xyzw, r32.xyzw
        imul null, r32.xyzw, r31.xyzw, r31.xyzw
        imad r32.xyzw, r32.xyzw, l(0x00003d73, 0x00003d73, 0x00003d73, 0x00003d73), l(0x000c0ae5, 0x000c0ae5, 0x000c0ae5, 0x000c0ae5)
        imad r31.xyzw, r31.xyzw, r32.xyzw, l(0x5208dd0d, 0x5208dd0d, 0x5208dd0d, 0x5208dd0d)
        and r31.xyzw, r31.xyzw, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff)
        utof r31.xyzw, r31.xyzw
        mad r26.x, -r31.x, l(9.313225746E-010), l(1.000000)
        mad r26.x, -r31.y, l(9.313225746E-010), r26.x
        add r26.x, r26.x, l(1.000000)
        mad r26.x, -r31.z, l(9.313225746E-010), r26.x
        add r26.x, r26.x, l(1.000000)
        mad r26.x, -r31.w, l(9.313225746E-010), r26.x
        imad r26.yz, r21.wwww, l(0, 57, 57, 0), r20.xxyx
        ishl r30.yz, r26.yyzy, l(0, 13, 13, 0)
        xor r26.yz, r26.yyzy, r30.yyzy
        imul null, r30.yz, r26.yyzy, r26.yyzy
        imad r30.yz, r30.yyzy, l(0, 0x00003d73, 0x00003d73, 0), l(0, 0x000c0ae5, 0x000c0ae5, 0)
        imad r26.yz, r26.yyzy, r30.yyzy, l(0, 0x5208dd0d, 0x5208dd0d, 0)
        and r26.yz, r26.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
        utof r26.yz, r26.yyzy
        mad r26.y, -r26.y, l(9.313225746E-010), l(1.000000)
        mad r26.y, -r26.z, l(9.313225746E-010), r26.y
        add r26.xy, r26.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
        iadd r30.yz, r7.wwww, r25.yyzy
        ishl r31.xy, r30.yzyy, l(13, 13, 0, 0)
        xor r30.yz, r30.yyzy, r31.xxyx
        imul null, r31.xy, r30.yzyy, r30.yzyy
        imad r31.xy, r31.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
        imad r30.yz, r30.yyzy, r31.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
        and r30.yz, r30.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
        utof r30.yz, r30.yyzy
        mad r26.y, -r30.y, l(9.313225746E-010), r26.y
        add r26.y, r26.y, l(1.000000)
        mad r26.y, -r30.z, l(9.313225746E-010), r26.y
        add r26.y, r26.y, l(1.000000)
        mul r26.y, r26.y, l(0.125000)
        imad r26.z, r21.w, l(57), r7.w
        ishl r27.w, r26.z, l(13)
        xor r26.z, r26.z, r27.w
        imul null, r27.w, r26.z, r26.z
        imad r27.w, r27.w, l(0x00003d73), l(0x000c0ae5)
        imad r26.z, r26.z, r27.w, l(0x5208dd0d)
        and r26.z, r26.z, l(0x7fffffff)
        utof r26.z, r26.z
        mad r26.z, -r26.z, l(9.313225746E-010), l(1.000000)
        mad r26.x, r26.x, l(0.062500), r26.y
        mad r26.x, r26.z, l(0.250000), r26.x
        iadd r31.xyzw, r20.zwzw, r25.yyzz
        ishl r32.xyzw, r31.xyzw, l(13, 13, 13, 13)
        xor r31.xyzw, r31.xyzw, r32.xyzw
        imul null, r32.xyzw, r31.xyzw, r31.xyzw
        imad r32.xyzw, r32.xyzw, l(0x00003d73, 0x00003d73, 0x00003d73, 0x00003d73), l(0x000c0ae5, 0x000c0ae5, 0x000c0ae5, 0x000c0ae5)
        imad r31.xyzw, r31.xyzw, r32.xyzw, l(0x5208dd0d, 0x5208dd0d, 0x5208dd0d, 0x5208dd0d)
        and r31.xyzw, r31.xyzw, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff)
        utof r31.xyzw, r31.xyzw
        mad r27.w, -r31.x, l(9.313225746E-010), l(1.000000)
        mad r27.w, -r31.y, l(9.313225746E-010), r27.w
        add r27.w, r27.w, l(1.000000)
        mad r27.w, -r31.z, l(9.313225746E-010), r27.w
        add r27.w, r27.w, l(1.000000)
        mad r27.w, -r31.w, l(9.313225746E-010), r27.w
        add r27.w, r27.w, l(1.000000)
        imad r30.yz, r21.wwww, l(0, 57, 57, 0), r20.zzwz
        ishl r31.xy, r30.yzyy, l(13, 13, 0, 0)
        xor r30.yz, r30.yyzy, r31.xxyx
        imul null, r31.xy, r30.yzyy, r30.yzyy
        imad r31.xy, r31.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
        imad r30.yz, r30.yyzy, r31.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
        and r30.yz, r30.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
        utof r30.yz, r30.yyzy
        mad r29.w, -r30.y, l(9.313225746E-010), l(1.000000)
        mad r29.w, -r30.z, l(9.313225746E-010), r29.w
        add r29.w, r29.w, l(1.000000)
        imad r30.yz, r4.wwww, r1.wwww, r25.yyzy
        ishl r31.xy, r30.yzyy, l(13, 13, 0, 0)
        xor r30.yz, r30.yyzy, r31.xxyx
        imul null, r31.xy, r30.yzyy, r30.yzyy
        imad r31.xy, r31.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
        imad r30.yz, r30.yyzy, r31.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
        and r30.yz, r30.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
        utof r30.yz, r30.yyzy
        mad r29.w, -r30.y, l(9.313225746E-010), r29.w
        add r29.w, r29.w, l(1.000000)
        mad r29.w, -r30.z, l(9.313225746E-010), r29.w
        add r29.w, r29.w, l(1.000000)
        mul r29.w, r29.w, l(0.125000)
        imad r25.x, r4.w, r1.w, r25.x
        ishl r30.y, r25.x, l(13)
        xor r25.x, r25.x, r30.y
        imul null, r30.y, r25.x, r25.x
        imad r30.y, r30.y, l(0x00003d73), l(0x000c0ae5)
        imad r25.x, r25.x, r30.y, l(0x5208dd0d)
        and r25.x, r25.x, l(0x7fffffff)
        utof r25.x, r25.x
        mad r25.x, -r25.x, l(9.313225746E-010), l(1.000000)
        mad r27.w, r27.w, l(0.062500), r29.w
        mad r26.y, r25.x, l(0.250000), r27.w
        iadd r31.xyzw, r21.xyxy, r25.yyzz
        ishl r32.xyzw, r31.xyzw, l(13, 13, 13, 13)
        xor r31.xyzw, r31.xyzw, r32.xyzw
        imul null, r32.xyzw, r31.xyzw, r31.xyzw
        imad r32.xyzw, r32.xyzw, l(0x00003d73, 0x00003d73, 0x00003d73, 0x00003d73), l(0x000c0ae5, 0x000c0ae5, 0x000c0ae5, 0x000c0ae5)
        imad r31.xyzw, r31.xyzw, r32.xyzw, l(0x5208dd0d, 0x5208dd0d, 0x5208dd0d, 0x5208dd0d)
        and r31.xyzw, r31.xyzw, l(0x7fffffff, 0x7fffffff, 0x7fffffff, 0x7fffffff)
        utof r31.xyzw, r31.xyzw
        mad r25.x, -r31.x, l(9.313225746E-010), l(1.000000)
        mad r25.x, -r31.y, l(9.313225746E-010), r25.x
        add r25.x, r25.x, l(1.000000)
        mad r25.x, -r31.z, l(9.313225746E-010), r25.x
        add r25.x, r25.x, l(1.000000)
        mad r25.x, -r31.w, l(9.313225746E-010), r25.x
        imad r30.yz, r21.wwww, l(0, 57, 57, 0), r21.xxyx
        ishl r31.xy, r30.yzyy, l(13, 13, 0, 0)
        xor r30.yz, r30.yyzy, r31.xxyx
        imul null, r31.xy, r30.yzyy, r30.yzyy
        imad r31.xy, r31.xyxx, l(0x00003d73, 0x00003d73, 0, 0), l(0x000c0ae5, 0x000c0ae5, 0, 0)
        imad r30.yz, r30.yyzy, r31.xxyx, l(0, 0x5208dd0d, 0x5208dd0d, 0)
        and r30.yz, r30.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
        utof r30.yz, r30.yyzy
        mad r27.w, -r30.y, l(9.313225746E-010), l(1.000000)
        mad r27.w, -r30.z, l(9.313225746E-010), r27.w
        add r27.w, r27.w, l(1.000000)
        iadd r25.yz, r8.wwww, r25.yyzy
        ishl r30.yz, r25.yyzy, l(0, 13, 13, 0)
        xor r25.yz, r25.yyzy, r30.yyzy
        imul null, r30.yz, r25.yyzy, r25.yyzy
        imad r30.yz, r30.yyzy, l(0, 0x00003d73, 0x00003d73, 0), l(0, 0x000c0ae5, 0x000c0ae5, 0)
        imad r25.yz, r25.yyzy, r30.yyzy, l(0, 0x5208dd0d, 0x5208dd0d, 0)
        and r25.yz, r25.yyzy, l(0, 0x7fffffff, 0x7fffffff, 0)
        utof r25.yz, r25.yyzy
        mad r25.y, -r25.y, l(9.313225746E-010), r27.w
        add r25.xy, r25.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
        mad r25.y, -r25.z, l(9.313225746E-010), r25.y
        add r25.y, r25.y, l(1.000000)
        mul r25.y, r25.y, l(0.125000)
        imad r21.w, r21.w, l(57), r8.w
        ishl r25.z, r21.w, l(13)
        xor r21.w, r21.w, r25.z
        imul null, r25.z, r21.w, r21.w
        imad r25.z, r25.z, l(0x00003d73), l(0x000c0ae5)
        imad r21.w, r21.w, r25.z, l(0x5208dd0d)
        and r21.w, r21.w, l(0x7fffffff)
        utof r21.w, r21.w
        mad r21.w, -r21.w, l(9.313225746E-010), l(1.000000)
        mad r25.x, r25.x, l(0.062500), r25.y
        mad r26.z, r21.w, l(0.250000), r25.x
        mul r25.xyz, r16.wwww, r26.xyzx
        mad r16.xyz, r25.xyzx, r2.zzzz, r16.xyzx
        mov r30.x, r21.z
        break
        case l(0x0000b006)
        iadd r13.w, r13.w, l(-1)
        ishl r16.w, r13.w, l(2)
        ld_structured r16.w, vThreadIDInGroup.x, r16.w, g0.xxxx
        max r16.w, r16.w, l(0.000000)
        mad r16.w, r16.w, r2.z, l(1.000000)
        div r16.xyz, r16.xyzx, r16.wwww
        mov r30.x, r21.z
        break
        case l(0x0000b007)
        iadd r13.w, r13.w, l(-3)
        ishl r16.w, r13.w, l(2)
        ld_structured r25.x, vThreadIDInGroup.x, r16.w, g0.xxxx
        iadd r16.w, r16.w, l(4)
        ld_structured r25.yz, vThreadIDInGroup.x, r16.w, g0.xxyx
        div r26.xyz, l(1.000000, 1.000000, 1.000000, 1.000000), r25.xyzx
        mul r13.xy, r25.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
        dp4 r31.x, r9.xyzw, r28.xyzw
        dp4 r31.y, r10.xyzw, r28.xyzw
        dp4 r31.z, r11.xyzw, r28.xyzw
        add r30.yzw, r13.xxyz, r31.xxyz
        mul r26.xyz, r26.xyzx, r30.yzwy
        round_ni r26.xyz, r26.xyzx
        mad r25.xyz, -r25.xyzx, r26.xyzx, r30.yzwy
        add r15.xyz, -r13.xyzx, r25.xyzx
        dp4 r28.x, r22.xyzw, r15.xyzw
        dp4 r28.y, r23.xyzw, r15.xyzw
        dp4 r28.z, r24.xyzw, r15.xyzw
        mov r30.x, r21.z
        break
        default
        mov r30.x, r21.z
        break
      endswitch
    endloop
  endif
  store_structured u1.xyz, r2.x, l(0), r28.xyzx
  store_structured u1.xyz, r2.y, l(0), r16.xyzx
  if_nz r1.y
    iadd r0.w, r2.x, l(2)
    store_structured u1.xyz, r0.w, l(0), r5.xyzx
  endif
else
  ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r2.xy, r0.x, l(212), t3.xyxx
  imad r0.w, r2.y, r0.z, r2.x
  ld_structured_indexable(structured_buffer, stride=12)(mixed,mixed,mixed,mixed) r28.xyz, r0.w, l(0), t1.xyzx
  iadd r1.w, r0.w, l(1)
  ld_structured_indexable(structured_buffer, stride=12)(mixed,mixed,mixed,mixed) r16.xyz, r1.w, l(0), t1.xyzx
  if_nz r1.y
    iadd r0.w, r0.w, l(2)
    ld_structured_indexable(structured_buffer, stride=12)(mixed,mixed,mixed,mixed) r5.xyz, r0.w, l(0), t1.xyzx
  else
    mov r5.xyz, l(0,0,0,0)
  endif
  mov r6.xyz, r28.xyzx
endif
ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r2.xy, r0.x, l(324), t3.xyxx
if_nz r2.y
  ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r3.xyzw, r0.x, l(0), t3.xyzw
  ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r4.xyzw, r0.x, l(16), t3.xyzw
  ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r7.xyzw, r0.x, l(32), t3.xyzw
  ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r8.xyzw, r0.x, l(48), t3.xyzw
  mov r28.w, l(1.000000)
  dp4 r9.x, r3.xyzw, r28.xyzw
  dp4 r9.y, r4.xyzw, r28.xyzw
  dp4 r9.z, r7.xyzw, r28.xyzw
  dp4 r0.w, r8.xyzw, r28.xyzw
  div r28.xyz, r9.xyzx, r0.wwww
  mov r6.w, l(1.000000)
  dp4 r9.x, r3.xyzw, r6.xyzw
  dp4 r9.y, r4.xyzw, r6.xyzw
  dp4 r9.z, r7.xyzw, r6.xyzw
  dp4 r0.w, r8.xyzw, r6.xyzw
  div r6.xyz, r9.xyzx, r0.wwww
  dp3 r3.x, r3.xyzx, r16.xyzx
  dp3 r3.y, r4.xyzx, r16.xyzx
  dp3 r3.z, r7.xyzx, r16.xyzx
  mov r16.xyz, r3.xyzx
endif
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.w, vThreadID.x, l(0), t0.xxxx
ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r2.yz, r0.x, l(196), t3.xxyx
xor r0.y, r0.y, r2.z
xor r1.w, r0.y, l(61)
ushr r0.y, r0.y, l(16)
or r0.y, r0.y, r1.w
imul null, r0.y, r0.y, l(9)
ushr r1.w, r0.y, l(4)
xor r0.y, r0.y, r1.w
imul null, r0.y, r0.y, l(0x27d4eb2d)
ushr r1.w, r0.y, l(15)
xor r0.y, r0.y, r1.w
xor r0.y, r2.y, r0.y
iadd r2.yw, r2.zzzz, l(0, 1, 0, 2)
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r1.w, r2.y, l(0), t4.xxxx
imin r1.w, r1.w, l(2048)
iadd r1.w, r1.w, r2.z
iadd r1.w, r1.w, l(-1)
dp3 r2.y, r16.xyzx, r16.xyzx
sqrt r2.z, r2.y
lt r3.x, l(0.000000), r2.y
ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r3.yz, r0.x, l(220), t3.xxyx
ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r4.xyz, l(0), l(1408), t2.xyzx
rsq r2.y, r2.y
mul r7.xyz, r2.yyyy, r16.xyzx
dp3 r3.w, r4.xyzx, r7.xyzx
add r3.w, -|r3.w|, l(1.000000)
ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r8.xyzw, l(0), l(0), t2.xyzw
ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r9.xyzw, l(0), l(16), t2.xyzw
ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r10.xyzw, l(0), l(32), t2.xyzw
mov r28.w, l(1.000000)
dp4 r4.w, r8.xyzw, r28.xyzw
dp4 r5.w, r9.xyzw, r28.xyzw
dp4 r6.w, r10.xyzw, r28.xyzw
mov r7.w, l(0)
mov r8.x, r0.y
mov r9.x, r2.w
loop
  ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.y, r9.x, l(0), t4.xxxx
  ine r8.z, r8.y, l(0x0000ffff)
  ige r8.w, r1.w, r9.x
  and r8.z, r8.w, r8.z
  breakc_z r8.z
  iadd r8.z, r9.x, l(1)
  switch r8.y
    case l(0x00008000)
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.y, r8.z, l(0), t5.xxxx
    iadd r9.x, r9.x, l(2)
    ishl r8.w, r7.w, l(2)
    store_structured g0.x, vThreadIDInGroup.x, r8.w, r8.y
    iadd r7.w, r7.w, l(1)
    break
    case l(0x00008001)
    ishl r8.y, r8.x, l(13)
    xor r8.y, r8.y, r8.x
    ushr r8.w, r8.y, l(17)
    xor r8.y, r8.w, r8.y
    ishl r8.w, r8.y, l(5)
    xor r8.x, r8.w, r8.y
    utof r8.y, r8.x
    mul r8.y, r8.y, l(2.328306437E-010)
    ishl r8.w, r7.w, l(2)
    store_structured g0.x, vThreadIDInGroup.x, r8.w, r8.y
    iadd r7.w, r7.w, l(1)
    mov r9.x, r8.z
    break
    case l(0x00008002)
    ishl r8.y, r7.w, l(2)
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r0.w
    iadd r7.w, r7.w, l(1)
    mov r9.x, r8.z
    break
    case l(0x00008003)
    ishl r8.y, r7.w, l(2)
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r2.z
    iadd r7.w, r7.w, l(1)
    mov r9.x, r8.z
    break
    case l(0x00008004)
    ishl r8.y, r7.w, l(2)
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r3.z
    iadd r7.w, r7.w, l(1)
    mov r9.x, r8.z
    break
    case l(0x00008005)
    if_nz r3.x
      mov r8.y, r3.w
    else
      mov r8.y, l(1.000000)
    endif
    ishl r8.w, r7.w, l(2)
    store_structured g0.x, vThreadIDInGroup.x, r8.w, r8.y
    iadd r7.w, r7.w, l(1)
    mov r9.x, r8.z
    break
    case l(0x00008006)
    ishl r8.y, r7.w, l(2)
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r3.y
    iadd r7.w, r7.w, l(1)
    mov r9.x, r8.z
    break
    case l(0x00008013)
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.y, r8.z, l(0), t5.xxxx
    iadd r10.xyzw, r9.xxxx, l(2, 3, 4, 5)
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.w, r10.x, l(0), t5.xxxx
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.x, r10.y, l(0), t5.xxxx
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.y, r10.z, l(0), t5.xxxx
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.z, r10.w, l(0), t5.xxxx
    iadd r9.x, r9.x, l(6)
    add r8.y, -|r4.w|, r8.y
    add r8.w, -|r5.w|, r8.w
    add r10.x, -|r6.w|, r10.x
    min r8.y, r8.w, r8.y
    min r8.y, r10.x, r8.y
    add r8.y, -r10.y, r8.y
    div_sat r8.y, r8.y, r10.z
    ishl r8.w, r7.w, l(2)
    store_structured g0.x, vThreadIDInGroup.x, r8.w, r8.y
    iadd r7.w, r7.w, l(1)
    break
    case l(0x00008007)
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.y, r8.z, l(0), t4.xxxx
    iadd r9.x, r9.x, l(2)
    ishl r8.y, r8.y, l(2)
    iadd r8.y, r8.y, l(232)
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r8.y, r0.x, r8.y, t3.xxxx
    ishl r8.w, r7.w, l(2)
    store_structured g0.x, vThreadIDInGroup.x, r8.w, r8.y
    iadd r7.w, r7.w, l(1)
    break
    case l(0x00008009)
    ishl r8.y, r7.w, l(2)
    iadd r8.y, r8.y, l(-8)
    ld_structured r10.xy, vThreadIDInGroup.x, r8.y, g0.xyxx
    add r8.w, r10.x, r10.y
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r8.w
    iadd r7.w, r7.w, l(-1)
    mov r9.x, r8.z
    break
    case l(0x0000800a)
    ishl r8.y, r7.w, l(2)
    iadd r8.y, r8.y, l(-8)
    ld_structured r10.xy, vThreadIDInGroup.x, r8.y, g0.xyxx
    mul r8.w, r10.x, r10.y
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r8.w
    iadd r7.w, r7.w, l(-1)
    mov r9.x, r8.z
    break
    case l(0x0000800b)
    ishl r8.y, r7.w, l(2)
    iadd r8.y, r8.y, l(-12)
    ld_structured r10.xyz, vThreadIDInGroup.x, r8.y, g0.xyzx
    add r8.w, -r10.x, r10.y
    mad r8.w, r10.z, r8.w, r10.x
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r8.w
    iadd r7.w, r7.w, l(-2)
    mov r9.x, r8.z
    break
    case l(0x0000800c)
    ishl r8.y, r7.w, l(2)
    iadd r8.w, r8.y, l(-4)
    ld_structured r8.w, vThreadIDInGroup.x, r8.w, g0.xxxx
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r8.w
    iadd r7.w, r7.w, l(1)
    mov r9.x, r8.z
    break
    case l(0x0000800d)
    ishl r8.y, r7.w, l(2)
    iadd r8.y, r8.y, l(-8)
    ld_structured r10.xy, vThreadIDInGroup.x, r8.y, g0.xyxx
    store_structured g0.xy, vThreadIDInGroup.x, r8.y, r10.yxyy
    mov r9.x, r8.z
    break
    case l(0x0000800e)
    ishl r8.y, r7.w, l(2)
    iadd r8.y, r8.y, l(-4)
    ld_structured r8.w, vThreadIDInGroup.x, r8.y, g0.xxxx
    ishl r10.x, r8.x, l(13)
    xor r10.x, r8.x, r10.x
    ushr r10.y, r10.x, l(17)
    xor r10.x, r10.y, r10.x
    ishl r10.y, r10.x, l(5)
    xor r8.x, r10.y, r10.x
    utof r10.x, r8.x
    mad r10.x, r10.x, l(2.328306437E-010), l(-0.500000)
    dp2 r8.w, r10.xxxx, r8.wwww
    add r8.w, r8.w, l(1.000000)
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r8.w
    mov r9.x, r8.z
    break
    case l(0x0000800f)
    ishl r8.y, r7.w, l(2)
    iadd r8.y, r8.y, l(-4)
    ld_structured r8.w, vThreadIDInGroup.x, r8.y, g0.xxxx
    ishl r10.x, r8.x, l(13)
    xor r10.x, r8.x, r10.x
    ushr r10.y, r10.x, l(17)
    xor r10.x, r10.y, r10.x
    ishl r10.y, r10.x, l(5)
    xor r8.x, r10.y, r10.x
    utof r10.x, r8.x
    mad r10.x, r10.x, l(2.328306437E-010), l(-0.500000)
    add r10.y, r10.x, r10.x
    ge r10.x, r10.x, l(0.000000)
    movc r10.x, r10.x, l(1.000000), l(-1.000000)
    add r10.y, |r10.y|, l(-0.500000)
    dp2 r8.w, r10.yyyy, r8.wwww
    add r8.w, r8.w, l(1.000000)
    mul r8.w, r8.w, r10.x
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r8.w
    mov r9.x, r8.z
    break
    case l(0x00008010)
    ishl r8.y, r7.w, l(2)
    iadd r8.y, r8.y, l(-4)
    ld_structured r8.w, vThreadIDInGroup.x, r8.y, g0.xxxx
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.x, r8.z, l(0), t5.xxxx
    iadd r10.yz, r9.xxxx, l(0, 4, 20, 0)
    ge r10.w, r10.x, r8.w
    if_nz r10.w
      ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.w, r10.y, l(0), t5.xxxx
    else
      iadd r11.x, r9.x, l(2)
      ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.x, r11.x, l(0), t5.xxxx
      ge r11.x, r8.w, r11.x
      if_nz r11.x
        iadd r11.x, r9.x, l(19)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.w, r11.x, l(0), t5.xxxx
      else
        iadd r11.x, r9.x, l(3)
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.x, r11.x, l(0), t5.xxxx
        add r8.w, r8.w, -r10.x
        div r8.w, r8.w, r11.x
        round_ni r10.x, r8.w
        add r8.w, r8.w, -r10.x
        ftoi r10.x, r10.x
        iadd r11.x, r10.x, r10.y
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r11.x, r11.x, l(0), t5.xxxx
        iadd r10.x, r10.x, l(1)
        imin r10.x, r10.x, l(15)
        iadd r10.x, r10.x, r10.y
        ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.x, r10.x, l(0), t5.xxxx
        add r10.x, -r11.x, r10.x
        mad r10.w, r8.w, r10.x, r11.x
      endif
    endif
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r10.w
    mov r9.x, r10.z
    break
    case l(0x00008011)
    ishl r8.y, r7.w, l(2)
    iadd r8.y, r8.y, l(-4)
    ld_structured r8.w, vThreadIDInGroup.x, r8.y, g0.xxxx
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r10.x, r8.z, l(0), t5.xxxx
    iadd r9.xyzw, r9.xxxx, l(5, 2, 3, 4)
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.y, r9.y, l(0), t5.xxxx
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.z, r9.z, l(0), t5.xxxx
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.w, r9.w, l(0), t5.xxxx
    add r8.w, r8.w, -r10.x
    div_sat r8.w, r8.w, r9.y
    mad r8.w, r9.w, r8.w, r9.z
    store_structured g0.x, vThreadIDInGroup.x, r8.y, r8.w
    break
    case l(0x00008012)
    ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.y, r8.z, l(0), t5.xxxx
    iadd r9.x, r9.x, l(2)
    ishl r8.w, r7.w, l(2)
    iadd r8.w, r8.w, l(-4)
    store_structured g0.x, vThreadIDInGroup.x, r8.w, r8.y
    break
    default
    mov r9.x, r8.z
    break
  endswitch
endloop
ld_structured r8.xyzw, vThreadIDInGroup.x, l(0), g0.xyzw
ld_structured r9.xyz, vThreadIDInGroup.x, l(16), g0.yxzx
ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r0.y, l(0), l(1448), t2.xxxx
if_nz r0.y
  max r0.y, r8.w, r9.y
  max r0.y, r9.x, r0.y
  lt r1.w, l(1.000000), r0.y
  if_nz r1.w
    mov r9.w, r8.w
    div r10.xzw, r9.xxwy, r0.yyyy
    mov r9.x, r10.x
  else
    mov r10.z, r8.w
    mov r10.w, r9.y
  endif
else
  mov r10.z, r8.w
  mov r10.w, r9.y
endif
ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r0.y, r0.x, l(288), t3.xxxx
lt r0.y, r0.w, r0.y
if_nz r0.y
  mov r9.z, l(0)
endif
if_nz r2.x
  ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r0.yw, r0.x, l(292), t3.xxxy
  ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r1.w, l(0), l(1452), t2.xxxx
  imin r1.w, r1.w, l(16)
  mov r2.xz, l(3299999974098774800000000000000000.000000,0,0,0)
  loop
    ult r2.w, r2.z, r1.w
    lt r3.x, r0.y, r2.x
    and r2.w, r2.w, r3.x
    breakc_z r2.w
    ishl r11.xyzw, r2.zzzz, l(6, 6, 6, 4)
    iadd r11.xyzw, r11.xyzw, l(128, 144, 160, 1152)
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r12.xyzw, l(0), r11.x, t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r13.xyzw, l(0), r11.y, t2.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r14.xyzw, l(0), r11.z, t2.xyzw
    dp4 r3.x, r12.xyzw, r28.xyzw
    dp4 r3.y, r13.xyzw, r28.xyzw
    dp4 r3.z, r14.xyzw, r28.xyzw
    ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r11.xyz, l(0), r11.w, t2.xyzx
    add r3.xyz, |r3.xyzx|, -r11.xyzx
    max r3.xyz, r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
    dp3 r2.w, r3.xyzx, r3.xyzx
    sqrt r2.w, r2.w
    min r2.x, r2.x, r2.w
    iadd r2.z, r2.z, l(1)
  endloop
  add r0.y, -r0.y, r2.x
  div_sat r0.y, r0.y, r0.w
  mul r9.z, r0.y, r9.z
endif
mul r9.y, r1.x, r9.z
lt r0.y, r9.y, l(0.001000)
if_nz r0.y
  mov r8.x, l(0)
endif
ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r2.xzw, r0.x, l(248), t3.xxyz
if_z r2.x
  ld_structured r0.y, vThreadIDInGroup.x, l(32), g0.xxxx
  mov r3.xyz, l(0,0,0,0)
else
  ld_structured r3.xyz, vThreadIDInGroup.x, l(32), g0.xyzx
  mov r0.y, l(0)
endif
mul r0.w, r2.z, r8.x
if_nz r1.y
  ld_structured r1.w, vThreadIDInGroup.x, l(28), g0.xxxx
  mul r11.xyz, r5.yzxy, r4.zxyz
  mad r11.xyz, r4.yzxy, r5.zxyz, -r11.xyzx
  lt r4.w, l(0.000000), r1.w
  if_nz r4.w
    mul r12.xyz, r4.zxyz, r7.yzxy
    mad r4.xyz, r4.yzxy, r7.zxyz, -r12.xyzx
    dp3 r4.w, r4.xyzx, r4.xyzx
    rsq r4.w, r4.w
    mul r4.xyz, r4.wwww, r4.xyzx
    log r3.w, |r3.w|
    mul r3.w, r3.w, l(0.250000)
    exp r3.w, r3.w
    mad r4.xyz, r4.xyzx, r3.wwww, -r11.xyzx
    mad r4.xyz, r1.wwww, r4.xyzx, r11.xyzx
    dp3 r3.w, r4.xyzx, r4.xyzx
    rsq r3.w, r3.w
    mul r4.xyz, r3.wwww, r4.xyzx
    mad r12.xyz, r16.xyzx, r2.yyyy, -r5.xyzx
    mad r12.xyz, r1.wwww, r12.xyzx, r5.xyzx
    dp3 r1.w, r12.xyzx, r12.xyzx
    rsq r1.w, r1.w
    mul r12.xyz, r1.wwww, r12.xyzx
    ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r1.w, r0.x, l(312), t3.xxxx
    if_nz r1.w
      ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r1.w, l(0), l(1408), t2.xxxx
      ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r2.y, l(0), l(1416), t2.xxxx
      mul r2.y, r2.y, r7.x
      mad r1.w, r7.z, r1.w, -r2.y
      ge r1.w, r1.w, l(0.000000)
    else
      mov r1.w, l(0)
    endif
  else
    dp3 r2.y, r11.xyzx, r11.xyzx
    rsq r2.y, r2.y
    mul r4.xyz, r2.yyyy, r11.xyzx
    dp3 r2.y, r5.xyzx, r5.xyzx
    rsq r2.y, r2.y
    mul r12.xyz, r2.yyyy, r5.xyzx
    mov r1.w, l(0)
  endif
else
  ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r4.xyzw, l(0), l(1420), t2.xyzw
  ld_structured_indexable(structured_buffer, stride=1456)(mixed,mixed,mixed,mixed) r12.yz, l(0), l(1436), t2.xxyx
  mov r12.x, r4.w
  mov r1.w, l(0)
endif
mul r4.xyz, r0.wwww, r4.xyzx
mul r5.xyz, r0.wwww, r12.xyzx
if_z r2.x
  sincos r7.x, r8.x, r0.y
  mul r7.yzw, r5.zzxy, r7.xxxx
  mad r7.yzw, r4.zzxy, r8.xxxx, -r7.yyzw
  mul r7.yzw, r8.yyyy, r7.yyzw
  mul r11.xyz, r4.xyzx, r7.xxxx
  mad r11.xyw, r5.xyxz, r8.xxxx, r11.xyxz
  ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r12.xyz, r0.x, l(184), t3.xyzx
  mul r13.xyz, r11.xywx, r12.yyyy
  mad r12.xyw, r12.xxxx, r7.zwzy, r13.xyxz
  mul r0.y, r0.w, r12.z
  mul r13.xyz, r7.yzwy, r11.ywxy
  mad r13.xyz, r7.wyzw, r11.wxyw, -r13.xyzx
  mad r12.xyz, r0.yyyy, r13.xyzx, r12.xywx
  add r13.xyz, r28.xyzx, -r12.xyzx
  add r12.xyz, r6.xyzx, -r12.xyzx
  mov r10.xy, r12.yzyy
  mov r13.w, r12.x
  mov r11.z, r7.y
  mov r9.zw, r7.zzzw
  mov r11.xyzw, r11.zxyw
else
  sincos r3.xyz, r7.xyz, r3.xyzx
  mov r12.xzw, -r3.yyzx
  mul r14.y, r3.z, r3.x
  mul r15.xyz, r3.zxyz, r7.xzxx
  mov r3.x, r7.y
  mov r14.x, r7.z
  dp2 r16.x, r3.xyxx, r14.xyxx
  mov r12.y, r15.y
  dp2 r16.y, r3.yxyy, r12.yzyy
  mov r3.z, r12.x
  dp2 r14.x, r3.zxzz, r14.xyxx
  dp2 r14.z, r3.xzxx, r12.yzyy
  mul r12.xz, r7.zzxz, r7.xxyx
  ieq r0.y, r2.x, l(1)
  if_nz r0.y
    mul r5.xyz, r0.wwww, l(0.000000, 1.000000, 0.000000, 0.000000)
    mul r4.xyz, r8.yyyy, r5.yzzy
    mov r3.x, r16.x
    mov r3.y, r15.x
    mov r3.z, r14.x
    mov r14.x, r16.y
    mov r14.y, r12.x
    mov r12.x, r15.z
    mov r12.yz, r12.wwzw
  else
    ieq r0.y, r2.x, l(3)
    if_nz r0.y
      mul r5.xyz, r0.wwww, l(0.000000, 1.000000, 0.000000, 0.000000)
      mul r4.xyz, r8.yyyy, r5.yzzy
      ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r7.xyz, r0.x, l(160), t3.xyzx
      ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r8.xyw, r0.x, l(136), t3.xyxz
      mul r17.xyz, r7.zxyz, r8.ywxy
      mad r17.xyz, r7.yzxy, r8.wxyw, -r17.xyzx
      mov r16.z, r15.z
      mov r18.x, r17.x
      mov r18.y, r7.x
      mov r18.z, r8.x
      dp3 r3.x, r16.xyzx, r18.xyzx
      mov r19.x, r17.y
      mov r19.y, r7.y
      mov r19.z, r8.y
      dp3 r20.x, r16.xyzx, r19.xyzx
      mov r8.x, r17.z
      mov r8.y, r7.z
      dp3 r7.x, r16.xyzx, r8.xywx
      mov r12.y, r15.x
      dp3 r3.y, r12.yxwy, r18.xyzx
      dp3 r20.y, r12.yxwy, r19.xyzx
      dp3 r7.y, r12.yxwy, r8.xywx
      mov r14.y, r12.z
      dp3 r3.z, r14.xzyx, r18.xyzx
      dp3 r20.z, r14.xzyx, r19.xyzx
      dp3 r7.z, r14.xzyx, r8.xywx
      mov r14.xyz, r20.xyzx
      mov r12.xyz, r7.xyzx
    else
      mov r3.x, r16.x
      mov r3.y, r15.x
      mov r3.z, r14.x
      mov r14.x, r16.y
      mov r14.y, r12.x
      mov r12.x, r15.z
      mov r12.yz, r12.wwzw
    endif
  endif
  dp3 r9.z, r4.xyzx, r3.xyzx
  dp3 r9.w, r4.xyzx, r14.xyzx
  dp3 r11.x, r4.xyzx, r12.xyzx
  dp3 r11.y, r5.xyzx, r3.xyzx
  dp3 r11.z, r5.xyzx, r14.xyzx
  dp3 r11.w, r5.xyzx, r12.xyzx
  ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r4.xyz, r0.x, l(184), t3.xyzx
  mul r4.xyz, r0.wwww, -r4.xyzx
  dp3 r3.x, r4.xyzx, r3.xyzx
  dp3 r3.y, r4.xyzx, r14.xyzx
  dp3 r3.z, r4.xyzx, r12.xyzx
  add r13.xyz, r28.xyzx, r3.xyzx
  add r3.xyz, r6.xyzx, r3.xyzx
  mov r10.xy, r3.yzyy
  mov r13.w, r3.x
endif
ld_structured_indexable(structured_buffer, stride=332)(mixed,mixed,mixed,mixed) r0.xyw, r0.x, l(260), t3.xyxz
imul null, r2.x, r0.w, r0.w
and r3.xyz, r0.yyyy, l(16, 8, 32, 0)
movc r3.xyz, r3.xyzx, l(1,2,1,0), l(0,0,0,0)
imad r2.y, r3.x, r2.x, r3.y
iadd r2.y, r3.z, r2.y
umin r3.x, r0.x, l(1)
imul null, r0.z, r0.z, r3.x
imad r0.x, r2.x, r0.x, r2.y
imad r0.x, r0.z, r0.x, r2.w
store_structured u0.xyzw, vThreadID.x, l(0), r13.xyzw
store_structured u0.xyzw, vThreadID.x, l(16), r10.xyzw
store_structured u0.xyzw, vThreadID.x, l(32), r9.xyzw
store_structured u0.xyzw, vThreadID.x, l(48), r11.xyzw
ishl r0.y, r0.y, l(24)
or r1.x, r0.x, r0.y
ftou r0.x, r8.z
ishl r0.y, r0.x, l(8)
utof r0.x, r0.x
add r0.x, -r0.x, r8.z
mul r0.x, r0.x, l(255.000000)
ftou r0.x, r0.x
or r0.x, r0.x, r0.y
bfi r0.x, l(16), l(12), r0.x, l(0)
bfi r0.x, l(4), l(28), r0.w, r0.x
mul r0.y, r2.z, l(2047.000000)
ftou r0.y, r0.y
bfi r0.y, l(11), l(1), r0.y, l(0)
iadd r0.x, r0.x, r0.y
bfi r1.y, l(1), l(0), r1.w, r0.x
store_structured u0.xyz, vThreadID.x, l(64), r1.xyzx
ret
// Approximately 3187 instruction slots used
