//CS Dyn-LIGHTS 2 --- FIXED
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.30.960.8229
//
//   using 3Dmigoto v1.3.10 on Sun Aug 26 10:09:57 2018
//
//
// Buffer Definitions:
//
// cbuffer PER_BATCH
// {
//
//   float4 vfHeightDensityRampParams;  // Offset:    0 Size:    16
//   float4 vfScatteringParams;         // Offset:   16 Size:    16
//   float4 InjectInscatteringParams;   // Offset:   32 Size:    16
//   float4 FrustumTL;                  // Offset:   48 Size:    16
//   float4 vfScatteringBlendParams;    // Offset:   64 Size:    16
//   float4 PS_WorldViewPos;            // Offset:   80 Size:    16
//   row_major float4x4 TexGen1;        // Offset:   96 Size:    64
//   float4 FrustumBL;                  // Offset:  160 Size:    16
//   float4 vfScatteringColor;          // Offset:  176 Size:    16
//   float4 vfDistributionParams;       // Offset:  192 Size:    16
//   row_major float4x4 TexGen0;        // Offset:  208 Size:    64
//   float4 SunColor;                   // Offset:  272 Size:    16
//   float4 CloudShadowParams;          // Offset:  288 Size:    16
//   float4 vfHeightDensityParams;      // Offset:  304 Size:    16
//   float3 CamFrontVector_POM;         // Offset:  320 Size:    12
//   float4 SunDir;                     // Offset:  336 Size:    16
//   float4 fOneDivFarDist;             // Offset:  352 Size:    16
//   float4 fDepthTestBias;             // Offset:  368 Size:    16
//   float4 ExponentialHeightFogColor;  // Offset:  384 Size:    16
//   row_major float4x4 TexGen3;        // Offset:  400 Size:    64
//   float4 DispatchSize;               // Offset:  464 Size:    16
//   float4 FrustumTR;                  // Offset:  480 Size:    16
//   float4 vfTimeParams;               // Offset:  496 Size:    16
//   float4 ScreenSize;                 // Offset:  512 Size:    16
//   float4 CloudShadowAnimParams;      // Offset:  528 Size:    16
//   float4 vfScatteringSecondaryColor; // Offset:  544 Size:    16
//   float4 g_vVisAreasParams[64];      // Offset:  560 Size:  1024 [unused]
//   float4 fKernelRadius;              // Offset: 1584 Size:    16
//
// }
//
// cbuffer PER_FRAME
// {
//
//   float4 g_VS_SunLightDir;           // Offset:   64 Size:    16
//
// }
//
// Resource bind info for VolumeLightsShadeInfo
// {
//
//   struct SVolumeLightShadeInfo
//   {
//
//       uint lightType;                // Offset:    0
//       uint resIndex;                 // Offset:    4
//       uint shadowMaskIndex;          // Offset:    8
//       uint stencilID;                // Offset:   12
//       float4 posRad;                 // Offset:   16
//       float2 attenuationParams;      // Offset:   32
//       float2 shadowParams;           // Offset:   40
//       float4 color;                  // Offset:   48
//       float4 shadowChannelIndex;     // Offset:   64
//       row_major float4x4 projectorMatrix;// Offset:   80
//       row_major float4x4 shadowMatrix;// Offset:  144
//
//   } $Element;                        // Offset:    0 Size:   208
//
// }
//
// Resource bind info for TiledClipVolumeInfo
// {
//
//   struct STiledClipVolumeInfo
//   {
//
//       uint data;                     // Offset:    0
//
//   } $Element;                        // Offset:    0 Size:     4
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// SAMPLER_STATE_depthMapSampler   sampler_c      NA          NA    0        1
// TrilinearClampSamplerState        sampler      NA          NA    1        1
// cloudShadowMap                    sampler      NA          NA    2        1
// SampStateComp                   sampler_c      NA          NA   14        1
// cloudShadowMap                    texture  float4          2d    0        1
// depthMapSampler3                  texture  float4          2d    2        1
// depthMapVFTexture0                texture  float4          2d    5        1
// depthMapVFTexture1                texture  float4          2d    6        1
// LightGridInput                    texture    uint         buf    8        1
// LightCountInput                   texture    uint         buf    9        1
// MaxDepthBuffer                    texture   float          2d   10        1
// ClipVolumeStencil                 texture   uint2     2darray   11        1
// VolumeLightsShadeInfo             texture  struct         r/o   12        1
// VolumetricFogDensityColorInput    texture  float3          3d   13        1
// VolumetricFogDensityInput         texture   float          3d   14        1
// DiffuseCubeArray                  texture  float4   cubearray   18        1
// SpotTexArray                      texture  float4     2darray   19        1
// ShadowPool                        texture  float4          2d   20        1
// TiledClipVolumeInfo               texture  struct         r/o   23        1
// VolumetricFogInscatterOUT             UAV  float4          3d    0        1
// PER_BATCH                         cbuffer      NA          NA    0        1
// PER_FRAME                         cbuffer      NA          NA    2        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_immediateConstantBuffer { { 1.000000, 0, 0, 0},
                              { 0, 1.000000, 0, 0},
                              { 0, 0, 1.000000, 0},
                              { 0, 0, 0, 1.000000} }
dcl_constantbuffer cb0[100], immediateIndexed
dcl_constantbuffer cb2[5], immediateIndexed
dcl_sampler s0, mode_comparison
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s14, mode_comparison
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_buffer (uint,uint,uint,uint) t8
dcl_resource_buffer (uint,uint,uint,uint) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_texture2darray (uint,uint,uint,uint) t11
dcl_resource_structured t12, 208
dcl_resource_texture3d (float,float,float,float) t13
dcl_resource_texture3d (float,float,float,float) t14
dcl_resource_texturecubearray (float,float,float,float) t18
dcl_resource_texture2darray (float,float,float,float) t19
dcl_resource_texture2d (float,float,float,float) t20
dcl_resource_structured t23, 4
dcl_uav_typed_texture3d (float,float,float,float) u0
dcl_input vThreadIDInGroupFlattened
dcl_input vThreadGroupID.xyz
dcl_input vThreadID.xyz


dcl_temps 32
dcl_constantbuffer cb13[30], immediateIndexed
dcl_resource_texture2d (float,float,float,float) t125

dcl_tgsm_raw g0, 4
dcl_tgsm_structured g1, 4, 255
dcl_thread_group 4, 4, 4
ftou r0.xy, cb0[29].xyxx
imul null, r0.xz, r0.xxxx, vThreadGroupID.zzyz
imad r0.x, r0.x, r0.y, r0.z
iadd r0.x, r0.x, vThreadGroupID.x
if_z vThreadIDInGroupFlattened.x
  ld_indexable(buffer)(uint,uint,uint,uint) r0.y, r0.xxxx, t9.yxzw
  store_raw g0.x, l(0), r0.y
endif
sync_g_t
ld_raw r0.y, l(0), g0.xxxx
mov r0.z, vThreadIDInGroupFlattened.x
loop
  uge r0.w, r0.z, r0.y
  breakc_nz r0.w
  imad r0.w, r0.x, l(255), r0.z
  ld_indexable(buffer)(uint,uint,uint,uint) r0.w, r0.wwww, t8.yzwx
  store_structured g1.x, r0.z, l(0), r0.w
  iadd r0.z, r0.z, l(64)
endloop
sync_g_t
mov r0.xyz, vThreadID.xyzx
mov r0.w, l(0)
ld_indexable(texture3d)(float,float,float,float) r1.w, r0.xyzw, t14.yzwx
add r2.x, cb0[12].x, cb0[12].y
ld_indexable(texture2d)(float,float,float,float) r2.y, r0.xyww, t10.yxzw
mul r2.z, r2.x, r2.y
utof r3.xyz, vThreadID.xyzx
add r4.xy, r3.zzzz, l(-1.000000, -3.000000, 0.000000, 0.000000)
mul_sat r4.xy, r4.xyxx, cb0[12].zzzz
mul r4.xy, r4.xyxx, r4.xyxx
mad r4.xy, cb0[12].yyyy, r4.xyxx, cb0[12].xxxx
add r2.w, r4.x, l(-6.000000)
min r2.w, r2.w, r4.y
lt r2.w, r2.w, r2.z
if_nz r2.w
  ld_indexable(texture3d)(float,float,float,float) r5.xyz, r0.xyzw, t13.xyzw
  ld_indexable(texture2darray)(uint,uint,uint,uint) r0.x, r0.xyzw, t11.yxzw
  iadd r0.x, r0.x, l(-64)
  imax r0.x, r0.x, l(1)
  and r0.y, r0.x, l(63)
  ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r0.y, r0.y, l(0), t23.xxxx
  add r0.zw, r3.xxxy, l(0.000000, 0.000000, 0.500000, 0.500000)
  

//fix
ld_indexable(texture2d)(float,float,float,float) r26.xyzw, l(0, 0, 0, 0), t125.xyzw
mul r27.z, r0.z, cb13[9].y
add r28.w, r27.z, -r26.y
mul r28.w, r26.x, r28.w
div r28.w, r28.w, r27.z
mul r28.w, r28.w, cb0[32].x
div r28.w, r28.w, l(2.300000)
add r0.z, r0.z, -r28.w

  mul r3.xy, r0.zwzz, cb0[32].zwzz
  mad r0.z, -r0.z, cb0[32].z, l(1.000000)
  mad r0.z, -r0.w, cb0[32].w, r0.z
  mul r6.xyz, r3.yyyy, cb0[10].xyzx
  mad r3.xyw, r3.xxxx, cb0[30].xyxz, r6.xyxz
  mad r3.xyw, r0.zzzz, cb0[3].xyxz, r3.xyxw
  dp3 r0.z, -cb0[20].xyzx, r3.xywx
  div r6.xyz, r3.xywx, r0.zzzz
  dp3 r0.z, r6.xyzx, r6.xyzx
  rsq r0.z, r0.z
  mul r3.xyw, r0.zzzz, r6.xyxz
  utof r0.zw, vThreadID.xxxy
  mad r0.zw, cb0[21].wwww, cb0[31].xxxy, r0.zzzw
  dp2 r0.z, r0.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000)
  frc r0.z, r0.z
  mul r0.z, r0.z, l(52.982918)
  frc r0.z, r0.z
  mul_sat r0.w, r3.z, cb0[12].z
  mul r0.w, r0.w, r0.w
  mad r0.w, cb0[12].y, r0.w, cb0[12].x
  lt r2.w, r4.x, r2.z
  ge r3.z, r0.w, r2.z
  and r2.w, r2.w, r3.z
  movc r4.w, r2.w, r2.z, r0.w
  ld_raw r0.w, l(0), g0.xxxx
  and r2.zw, r0.yyyy, l(0, 0, 8, 4)
  ushr r3.z, r0.y, l(24)
  ubfe r0.y, l(8), l(16), r0.y
  add r4.y, -r4.x, r4.w
  mad r5.w, r0.z, r4.y, r4.x
  mul r7.xyz, r6.xyzx, r5.wwww
  mul r8.xyz, r6.xyzx, r4.wwww
  mul r9.xyz, r4.xxxx, r6.xyzx
  mad r10.xyz, r4.wwww, r6.xyzx, -r9.xyzx
  lt r8.w, l(0.000000), |r4.y|
  mov r11.x, l(1.000000)
  mov r12.x, l(1.000000)
  mov r7.w, l(1.000000)
  mov r13.z, l(1.000000)
  mov r14.w, l(1.000000)
  mov r15.w, l(1.000000)
  mov r16.w, l(1.000000)
  mov r17.w, l(1.000000)
  mov r18.xyz, l(0,0,0,0)
  mov r9.w, l(0)
  mov r10.w, l(0)
  loop
    uge r11.w, r10.w, r0.w
    breakc_nz r11.w
    ld_structured r11.w, r10.w, l(0), g1.xxxx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r12.z, r11.w, l(0), t12.xxxx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r12.w, r11.w, l(12), t12.xxxx
    and r13.w, r12.w, l(255)
    ushr r12.w, r12.w, l(16)
    ieq r18.w, r13.w, l(255)
    ieq r19.x, r3.z, r13.w
    ieq r19.y, r0.y, r13.w
    movc r19.z, r19.x, l(0), l(1.000000)
    or r19.x, r19.y, r19.x
    movc r19.x, r2.z, r19.x, l(0)
    ieq r13.w, r0.x, r13.w
    ieq r12.w, r0.x, r12.w
    or r12.w, r12.w, r13.w
    and r12.w, r12.w, l(0x3f800000)
    movc r12.w, r19.x, r19.z, r12.w
    ieq r13.w, r12.z, l(1)
    lt r19.x, r9.w, l(1.000000)
    and r13.w, r13.w, r19.x
    lt r12.w, l(0.000000), r12.w
    or r12.w, r12.w, r18.w
    and r13.w, r12.w, r13.w
    if_nz r13.w
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.xyz, r11.w, l(16), t12.xyzx
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.xyz, r11.w, l(80), t12.xyzx
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r21.xyz, r11.w, l(96), t12.xyzx
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyz, r11.w, l(112), t12.xyzx
      mad r19.xyz, -r5.wwww, r6.xyzx, r19.xyzx
      dp3 r20.x, r20.xyzx, r19.xyzx
      dp3 r20.y, r21.xyzx, r19.xyzx
      dp3 r20.z, r22.xyzx, r19.xyzx
      max r13.w, |r20.y|, |r20.x|
      max r13.w, |r20.z|, r13.w
      lt r13.w, r13.w, l(1.000000)
      if_nz r13.w
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r13.w, r11.w, l(4), t12.xxxx
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r18.w, r11.w, l(32), t12.xxxx
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.xyz, r11.w, l(48), t12.xyzx
        mul r21.xyz, r20.zxyz, r20.zxyz
        mul r22.xyz, r21.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
        mad r22.xyz, -r21.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), -r22.zxyz
        add r22.xyz, r22.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
        mul r21.xyz, r21.zxyz, r21.xyzx
        mad r21.xyz, r21.xyzx, l(0.333000, 0.333000, 0.333000, 0.000000), r22.xyzx
        sqrt r21.xyz, r21.xyzx
        mul r20.xyz, r20.xyzx, r21.xyzx
        dp3 r19.w, r20.xyzx, -r20.xyzx
        add_sat r19.w, r19.w, l(1.000000)
        mul r19.w, r19.w, l(1.250000)
        min r19.w, r19.w, l(1.000000)
        mul r20.x, r19.w, r19.w
        mad r19.w, -r19.w, l(2.000000), l(3.000000)
        mul r19.w, r19.w, r20.x
        mul r18.w, r18.w, r19.w
        utof r6.w, r13.w
        sample_l_indexable(texturecubearray)(float,float,float,float) r20.xyz, r6.xyzw, t18.xyzw, s1, l(0.000000)
        add r6.w, -r9.w, l(1.000000)
        mul r13.w, r18.w, r6.w
        mul r19.xyz, r19.xyzx, r20.xyzx
        mad r9.w, r6.w, r18.w, r9.w
        mul r6.w, r13.w, l(0.0795798153)
        mad r18.xyz, r6.wwww, r19.xyzx, r18.xyzx
      endif
    endif
    uge r6.w, r12.z, l(2)
    uge r13.w, l(4), r12.z
    and r6.w, r6.w, r13.w
    and r6.w, r12.w, r6.w
    if_nz r6.w
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.xyzw, r11.w, l(16), t12.xyzw
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.xyz, r11.w, l(48), t12.xyzx
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r21.xyzw, r11.w, l(80), t12.xyzw
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyzw, r11.w, l(96), t12.xyzw
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r23.xyzw, r11.w, l(128), t12.xyzw
      mad r19.xyz, -r5.wwww, r6.xyzx, r19.xyzx
      ieq r6.w, r12.z, l(4)
      if_nz r6.w
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r24.xyz, r11.w, l(112), t12.xyzx
        dp3 r6.w, r21.xyzx, r19.xyzx
        mad r25.xyz, r6.wwww, r21.xyzx, -r19.xyzx
        dp3 r26.x, r25.xyzx, r22.xyzx
        dp3 r26.y, r25.xyzx, r24.xyzx
        max r25.xy, -r23.xyxx, r26.xyxx
        min r25.xy, r23.xyxx, r25.xyxx
        mul r24.xyz, r24.xyzx, r25.yyyy
        mad r24.xyz, r22.xyzx, r25.xxxx, r24.xyzx
        add r24.xyz, r19.xyzx, r24.xyzx
        div r6.w, l(1.000000, 1.000000, 1.000000, 1.000000), r19.w
        mul r25.xyz, r6.wwww, r24.xyzx
        dp3 r6.w, r25.xyzx, -r25.xyzx
        add_sat r6.w, r6.w, l(1.000000)
        dp3 r13.w, r24.xyzx, r24.xyzx
        rsq r13.w, r13.w
        mul r24.xyz, r13.wwww, r24.xyzx
        dp3 r11.z, -r24.xyzx, r21.xyzx
        add r13.w, r11.z, l(0.000001)
        div_sat r13.w, r23.w, r13.w
        log r13.w, r13.w
        mul r13.w, r13.w, r19.w
        exp r13.w, r13.w
        add r13.w, -r13.w, l(1.000000)
        mul r6.w, r6.w, r13.w
        mul r11.y, r6.w, r6.w
        mov_sat r11.z, r11.z
        mov r24.xyz, r11.xyzx
      else
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r6.w, r11.w, l(32), t12.xxxx
        lt r11.y, l(0.000000), r6.w
        if_nz r11.y
          dp3 r11.y, r19.xyzx, r19.xyzx
          sqrt r11.y, r11.y
          div r11.z, l(1.000000, 1.000000, 1.000000, 1.000000), r19.w
          add r13.w, -r11.y, r19.w
          mul r11.z, r11.z, r13.w
          mul_sat r11.z, r11.z, l(5.000000)
          add r11.y, -r6.w, r11.y
          max r11.y, r11.y, l(0.000000)
          div r6.w, r11.y, r6.w
          add r6.w, r6.w, l(1.000000)
          mul r11.y, r11.z, r11.z
          mul r6.w, r6.w, r6.w
          div r13.y, r11.y, r6.w
        else
          div r6.w, l(1.000000, 1.000000, 1.000000, 1.000000), r19.w
          mul r19.xyz, r6.wwww, r19.xyzx
          dp3 r6.w, r19.xyzx, -r19.xyzx
          add_sat r13.y, r6.w, l(1.000000)
        endif
        ieq r6.w, r12.z, l(3)
        if_nz r6.w
          lt r6.w, l(0.000000), r13.y
          if_nz r6.w
            dp4 r19.x, r21.xyzw, r7.xyzw
            dp4 r19.y, r22.xyzw, r7.xyzw
            dp4 r6.w, r23.xyzw, r7.xyzw
            div r19.xy, r19.xyxx, r6.wwww
            lt r6.w, l(0.000000), r6.w
            mad r11.yz, r19.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
            max r11.y, |r11.z|, |r11.y|
            lt r11.y, r11.y, l(1.000000)
            and r6.w, r6.w, r11.y
            if_nz r6.w
              ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r6.w, r11.w, l(4), t12.xxxx
              utof r19.z, r6.w
              sample_l_indexable(texture2darray)(float,float,float,float) r13.x, r19.xyzx, t19.xyzw, s1, l(4.000000)
            else
              mov r13.x, l(0)
            endif
          else
            mov r13.x, l(0)
          endif
        else
          mul r12.y, r13.y, r13.y
          mov r13.xy, r12.xyxx
        endif
        mov r24.xyz, r13.xyzx
      endif
      mul r6.w, r24.x, r24.y
      mul r6.w, r24.z, r6.w
      add r13.xyw, r20.xyxz, l(-1.000000, -1.000000, 0.000000, -1.000000)
      mad r13.xyw, r6.wwww, r13.xyxw, l(1.000000, 1.000000, 0.000000, 1.000000)
      mul r18.xyz, r13.xywx, r18.xyzx
    endif
    ult r6.w, l(4), r12.z
    and r6.w, r12.w, r6.w
    if_nz r6.w
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.xyzw, r11.w, l(16), t12.xyzw
      ieq r6.w, r12.z, l(6)
      if_nz r6.w
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r13.xyw, r11.w, l(112), t12.xyxz
        dp3 r11.y, r13.xywx, r13.xywx
        rsq r11.y, r11.y
        mul r13.xyw, r11.yyyy, r13.xyxw
        mad r20.xyz, r4.wwww, r6.xyzx, -r19.xyzx
        dp3 r11.y, r13.xywx, r20.xyzx
        mad r20.xyz, r13.xywx, l(0.008000, 0.008000, 0.008000, 0.000000), r19.xyzx
        dp3 r11.z, r13.xywx, r20.xyzx
        dp3 r12.y, r13.xywx, r9.xyzx
        add r11.z, r11.z, -r12.y
        dp3 r12.y, r13.xywx, r10.xyzx
        div r11.z, r11.z, r12.y
        ge r12.y, r11.z, l(0.000000)
        ge r12.w, l(1.000000), r11.z
        and r12.y, r12.w, r12.y
        lt r11.y, r11.y, l(0.008000)
        mad r13.xyw, r11.zzzz, r10.xyxz, r9.xyxz
        mad r4.z, r4.y, r11.z, r4.x
        movc r20.xyz, r11.yyyy, r13.xywx, r8.xyzx
        movc r13.xyw, r11.yyyy, r9.xyxz, r13.xyxw
        movc r11.yz, r11.yyyy, r4.xxzx, r4.zzwz
        movc r14.xyz, r12.yyyy, r20.xyzx, r8.xyzx
        movc r15.xyz, r12.yyyy, r13.xywx, r9.xyzx
        movc r11.yz, r12.yyyy, r11.yyzy, r4.xxwx
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.xyzw, r11.w, l(80), t12.xyzw
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r21.xyzw, r11.w, l(96), t12.xyzw
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyzw, r11.w, l(112), t12.xyzw
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r23.xyzw, r11.w, l(128), t12.xyzw
        dp4 r13.x, r20.xyzw, r14.xyzw
        dp4 r13.y, r21.xyzw, r14.xyzw
        dp4 r22.z, r22.xyzw, r14.xyzw
        dp4 r4.z, r23.xyzw, r14.xyzw
        div r22.xy, r13.xyxx, r4.zzzz
        dp4 r13.x, r20.xyzw, r15.xyzw
        dp4 r13.y, r21.xyzw, r15.xyzw
        dp4 r12.y, r23.xyzw, r15.xyzw
        div r13.xy, r13.xyxx, r12.yyyy
        add r13.xy, -r22.xyxx, r13.xyxx
        mov r14.xy, l(1.000000,0,0,0)
        mov r12.w, l(0)
        loop
          uge r13.w, r12.w, l(2)
          breakc_nz r13.w
          dp3 r13.w, r22.xyzx, icb[r12.w + 0].xyzx
          dp2 r14.z, r13.xyxx, icb[r12.w + 0].xyxx
          lt r15.x, l(0.000000), |r14.z|
          if_nz r15.x
            div r15.x, -r13.w, r14.z
            add r15.y, -r13.w, l(1.000000)
            div r14.z, r15.y, r14.z
            min r15.y, r14.z, r15.x
            max r14.z, r14.z, r15.x
            max r14.y, r14.y, r15.y
            min r14.x, r14.z, r14.x
          else
            lt r14.z, r13.w, l(0.000000)
            lt r13.w, l(1.000000), r13.w
            or r13.w, r13.w, r14.z
            movc r14.xy, r13.wwww, l(0,1.000000,0,0), r14.xyxx
          endif
          iadd r12.w, r12.w, l(1)
        endloop
        lt r12.w, r14.x, r14.y
        movc r13.xy, r12.wwww, l(1.000000,0,0,0), r14.xyxx
        lt r12.w, l(0.000000), r4.z
        lt r13.w, l(0.000000), r12.y
        and r12.w, r12.w, r13.w
        rcp r12.y, r12.y
        rcp r4.z, r4.z
        mul r13.w, r4.z, r11.z
        mad r14.z, r11.y, r12.y, -r13.w
        mad r15.xy, r13.xyxx, r14.zzzz, r13.wwww
        add r12.y, -r4.z, r12.y
        mad r13.xy, r13.xyxx, r12.yyyy, r4.zzzz
        div r13.xy, r15.xyxx, r13.xyxx
        movc r11.yz, r12.wwww, r13.xxyx, r11.yyzy
        add r4.z, -r11.y, r11.z
        div r4.z, |r4.z|, |r4.y|
        and r4.z, r4.z, r8.w
        min r4.z, r4.z, l(1.000000)
      else
        mov r11.yz, r4.xxwx
        mov r4.z, l(1.000000)
      endif
      add r11.z, -r11.y, r11.z
      mad r12.y, r0.z, r11.z, r11.y
      mul r16.xyz, r6.xyzx, r12.yyyy
      mad r13.xyw, -r12.yyyy, r6.xyxz, r19.xyxz
      dp3 r12.y, r13.xywx, r13.xywx
      sqrt r12.w, r12.y
      lt r14.z, r12.w, r19.w
      if_nz r14.z
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r14.z, r11.w, l(4), t12.xxxx
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r15.x, r11.w, l(32), t12.xxxx
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.xyzw, r11.w, l(48), t12.xyzw
        rsq r12.y, r12.y
        mul r13.xyw, r12.yyyy, r13.xyxw
        div r12.y, l(1.000000, 1.000000, 1.000000, 1.000000), r19.w
        add r15.y, -r12.w, r19.w
        mul r12.y, r12.y, r15.y
        mul_sat r12.y, r12.y, l(5.000000)
        add r12.w, r12.w, -r15.x
        max r12.w, r12.w, l(0.000000)
        div r12.w, r12.w, r15.x
        add r12.w, r12.w, l(1.000000)
        mul r12.y, r12.y, r12.y
        mul r12.w, r12.w, r12.w
        div r12.y, r12.y, r12.w
        mul r4.z, r4.z, r12.y
        if_nz r6.w
          lt r6.w, l(0.000000), r4.z
          if_nz r6.w
            ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r6.w, r11.w, l(40), t12.xxxx
            ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.xyzw, r11.w, l(80), t12.xyzw
            ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r21.xyzw, r11.w, l(96), t12.xyzw
            ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyzw, r11.w, l(128), t12.xyzw
            dp4 r15.x, r19.xyzw, r16.xyzw
            dp4 r15.y, r21.xyzw, r16.xyzw
            dp4 r12.y, r22.xyzw, r16.xyzw
            div r15.xy, r15.xyxx, r12.yyyy
            min r12.w, r15.y, r15.x
            lt r12.yw, r12.yyyw, l(0.000000, 0.008000, 0.000000, 0.000000)
            or r12.y, r12.w, r12.y
            max r12.w, r15.y, r15.x
            lt r12.w, l(1.000000), r12.w
            or r12.y, r12.w, r12.y
            if_nz r12.y
              mov r12.y, l(1)
            else
              utof r15.z, r14.z
              sample_l_indexable(texture2darray)(float,float,float,float) r12.w, r15.xyzx, t19.yzwx, s1, l(4.000000)
              mul r20.xyz, r12.wwww, r20.xyzx
              mov r12.y, l(0)
            endif
            lt r6.w, l(0.000000), r6.w
            iadd r12.w, r12.y, l(2)
            movc r6.w, r6.w, r12.w, r12.y
          else
            mov r6.w, l(0)
          endif
        else
          ieq r12.y, r12.z, l(7)
          lt r15.xyz, |r13.ywwy|, |r13.xxyx|
          lt r16.xyz, r13.xwyx, l(0.000000, 0.000000, 0.000000, 0.000000)
          movc r16.xyz, r16.xyzx, l(0,4,2,0), l(1,5,3,0)
          movc r12.zw, r15.yyyz, r16.xxxz, r16.yyyy
          movc r12.z, r15.x, r12.z, r12.w
          ine r12.z, r12.z, r14.z
          movc r12.z, r12.z, l(1), l(2)
          and r6.w, r12.z, r12.y
        endif
        and r12.y, r6.w, l(1)
        if_z r12.y
          dp3 r12.y, r13.xywx, r3.xywx
          and r6.w, r6.w, l(2)
          if_nz r6.w
            ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.xyzw, r11.w, l(144), t12.xyzw
            ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r21.xyzw, r11.w, l(160), t12.xyzw
            ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyzw, r11.w, l(176), t12.xyzw
            ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r23.xyzw, r11.w, l(192), t12.xyzw
            mov r12.zw, l(0,0,0,0)
            loop
              ge r6.w, r12.w, l(2.000000)
              breakc_nz r6.w
              add r6.w, r0.z, r12.w
              mul r6.w, r11.z, r6.w
              mad r6.w, r6.w, l(0.500000), r11.y
              mad r11.w, -r2.y, r2.x, r6.w
              min r11.w, r11.w, l(0.000000)
              mul r11.w, r11.w, l(5.770780)
              exp r11.w, r11.w
              mul r15.xyz, r11.wwww, r13.xywx
              mad r17.xyz, r6.wwww, r6.xyzx, -r15.xyzx
              dp4 r15.x, r19.xyzw, r17.xyzw
              dp4 r15.y, r21.xyzw, r17.xyzw
              dp4 r6.w, r22.xyzw, r17.xyzw
              dp4 r11.w, r23.xyzw, r17.xyzw
              div r15.xy, r15.xyxx, r11.wwww
              sample_c_lz_indexable(texture2d)(float,float,float,float) r6.w, r15.xyxx, t20.xxxx, s14, r6.w
              add r12.z, r6.w, r12.z
              add r12.w, r12.w, l(1.000000)
            endloop
            mul r6.w, r4.z, r12.z
            mul r4.z, r6.w, l(0.500000)
          endif
          mad r6.w, cb0[2].x, r12.y, l(-1.000000)
          mul r6.w, r6.w, r6.w
          mul r6.w, r6.w, l(12.566000)
          div r6.w, cb0[2].y, r6.w
          add r11.y, -|r12.y|, l(1.000000)
          mad r11.y, r11.y, l(0.101327159), -r6.w
          mad r6.w, r20.w, r11.y, r6.w
          mul r4.z, r4.z, r6.w
          mad r18.xyz, r4.zzzz, r20.xyzx, r18.xyzx
        endif
      endif
    endif
    iadd r10.w, r10.w, l(1)
  endloop
  mul r0.x, cb0[19].y, l(0.693147182)
  mul r0.y, r7.z, cb0[19].x
  mul r0.y, r0.y, l(1.442695)
  exp r0.y, r0.y
  mul_sat r0.x, r0.y, r0.x
  mad_sat r0.y, r5.w, cb0[0].z, -cb0[0].w
  mul r0.x, r0.y, r0.x
  movc r0.x, r2.w, r0.x, l(0)
  movc r0.y, r2.w, l(1), l(0)
  if_nz r0.y
    and r7.xyz, cb0[99].zzzz, l(32, 2, 8, 0)
    ine r2.zw, r7.yyyz, l(0, 0, 0, 0)
    lt r0.w, l(0.000000), cb0[18].z
    mov r8.w, l(1.000000)
    mov r3.z, l(0)
    mov r4.z, l(0)
    loop
      utof r4.w, r4.z
      ge r5.w, r4.w, l(2.000000)
      breakc_nz r5.w
      add r4.w, r0.z, r4.w
      mul r4.w, r4.y, r4.w
      mad r4.w, r4.w, l(0.500000), r4.x
      mad r7.yzw, r4.wwww, r6.xxyz, cb0[5].xxyz
      mad r4.w, -r2.y, r2.x, r4.w
      min r4.w, r4.w, l(0.000000)
      mul r4.w, r4.w, l(5.770780)
      exp r4.w, r4.w
      mad r8.xyz, -cb0[21].xyzx, r4.wwww, r7.yzwy
      if_nz cb0[99].z
        dp4 r9.x, cb0[13].xyzw, r8.xyzw
        dp4 r9.y, cb0[14].xyzw, r8.xyzw
        dp4 r4.w, cb0[15].xyzw, r8.xyzw
        dp4 r5.w, cb0[16].xyzw, r8.xyzw
        div r7.yz, r9.xxyx, r5.wwww
        mad r4.w, r4.w, cb0[22].x, cb0[23].x
        ge r9.xy, r7.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000)
        ge r9.zw, l(0.000000, 0.000000, 1.000000, 1.000000), r7.yyyz
        and r5.w, r9.z, r9.x
        and r5.w, r9.y, r5.w
        and r5.w, r9.w, r5.w
        ge r6.w, l(1.000000), r4.w
        and r5.w, r5.w, r6.w
        if_nz r5.w
          sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r7.yzyy, t5.xxxx, s0, r4.w
          mov r6.w, l(-1)
        else
          mov r4.w, l(1.000000)
        endif
        and r5.w, r5.w, r6.w
        not r5.w, r5.w
        and r5.w, r2.z, r5.w
        if_nz r5.w
          dp4 r9.x, cb0[6].xyzw, r8.xyzw
          dp4 r9.y, cb0[7].xyzw, r8.xyzw
          dp4 r5.w, cb0[8].xyzw, r8.xyzw
          dp4 r6.w, cb0[9].xyzw, r8.xyzw
          div r7.yz, r9.xxyx, r6.wwww
          mad r5.w, r5.w, cb0[22].y, cb0[23].y
          ge r9.xy, r7.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000)
          ge r9.zw, l(0.000000, 0.000000, 1.000000, 1.000000), r7.yyyz
          and r6.w, r9.z, r9.x
          and r6.w, r9.y, r6.w
          and r6.w, r9.w, r6.w
          ge r7.w, l(1.000000), r5.w
          and r6.w, r6.w, r7.w
          if_nz r6.w
            sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r7.yzyy, t6.xxxx, s0, r5.w
            mov r5.w, l(-1)
          else
            mov r4.w, l(1.000000)
          endif
          and r5.w, r5.w, r6.w
          not r5.w, r5.w
          and r5.w, r2.w, r5.w
          if_nz r5.w
            dp4 r9.x, cb0[25].xyzw, r8.xyzw
            dp4 r9.y, cb0[26].xyzw, r8.xyzw
            dp4 r5.w, cb0[27].xyzw, r8.xyzw
            dp4 r6.w, cb0[28].xyzw, r8.xyzw
            div r7.yz, r9.xxyx, r6.wwww
            mad r5.w, r5.w, cb0[22].w, cb0[23].w
            ge r9.xy, r7.yzyy, l(0.000000, 0.000000, 0.000000, 0.000000)
            ge r9.zw, l(0.000000, 0.000000, 1.000000, 1.000000), r7.yyyz
            and r6.w, r9.z, r9.x
            and r6.w, r9.y, r6.w
            and r6.w, r9.w, r6.w
            ge r7.w, l(1.000000), r5.w
            and r6.w, r6.w, r7.w
            if_nz r6.w
              sample_c_lz_indexable(texture2d)(float,float,float,float) r4.w, r7.yzyy, t2.xxxx, s0, r5.w
            else
              mov r4.w, l(1.000000)
            endif
          endif
        endif
      else
        mov r4.w, l(1.000000)
      endif
      if_nz r7.x
        div r5.w, -r8.z, cb2[4].z
        mad r7.yz, r5.wwww, cb2[4].xxyx, r8.xxyx
        mad r7.yz, r7.yyzy, cb0[33].xxyx, -cb0[33].zzwz
        sample_l_indexable(texture2d)(float,float,float,float) r5.w, r7.yzyy, t0.yzwx, s2, l(0.000000)
        mul_sat r5.w, r5.w, cb0[18].w
        add r6.w, -r5.w, l(1.000000)
        movc r5.w, r0.w, r6.w, r5.w
        mul r4.w, r4.w, r5.w
      endif
      add r3.z, r3.z, r4.w
      iadd r4.z, r4.z, l(1)
    endloop
    mul r0.z, r3.z, l(0.500000)
  else
    mov r0.z, l(0)
  endif
  mul r2.xyz, r0.xxxx, cb0[24].xyzx
  mul r2.xyz, r18.xyzx, r2.xyzx
  if_nz r0.y
    dp3 r0.y, cb0[21].xyzx, r3.xywx
    mad r0.w, cb0[1].z, r0.y, l(-1.000000)
    mul r0.w, r0.w, r0.w
    mul r0.w, r0.w, l(12.566000)
    div r0.w, cb0[1].w, r0.w
    mad r2.w, cb0[11].w, r0.y, l(-1.000000)
    mul r2.w, r2.w, r2.w
    mul r2.w, r2.w, l(12.566000)
    div r2.w, cb0[34].w, r2.w
    mul r0.w, r0.z, r0.w
    mul r2.w, r0.z, r2.w
    mul r3.xyz, r0.wwww, cb0[11].xyzx
    mul r4.xyz, r2.wwww, cb0[34].xyzx
    mad r0.w, -cb0[4].x, cb0[4].y, l(1.000000)
    mul r4.xyz, r4.xyzx, cb0[4].xxxx
    mad r3.xyz, r3.xyzx, r0.wwww, r4.xyzx
    mad r2.xyz, r0.xxxx, r3.xyzx, r2.xyzx
    mad r0.x, cb0[2].x, r0.y, l(-1.000000)
    mul r0.x, r0.x, r0.x
    mul r0.x, r0.x, l(12.566000)
    div r0.x, cb0[2].y, r0.x
    mul r0.x, r0.z, r0.x
    mad r18.xyz, r0.xxxx, cb0[17].xyzx, r18.xyzx
  endif
  mad r0.xyz, r18.xyzx, r5.xyzx, r2.xyzx
else
  mov r0.xyz, l(0,0,0,0)
endif
mul r1.xyz, r0.xyzx, l(16.000000, 16.000000, 16.000000, 0.000000)
store_uav_typed u0.xyzw, vThreadID.xyzz, r1.xyzw
ret
// Approximately 609 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
