//
// Generated by Microsoft (R) HLSL Shader Compiler 9.30.960.8229
//
//   using 3Dmigoto v1.2.69 on Tue May 01 13:12:45 2018
//
//
// Buffer Definitions: 
//
// cbuffer PER_BATCH
// {
//
//   float4 FrustumTL;                  // Offset:    0 Size:    16
//   float4 FrustumBL;                  // Offset:   16 Size:    16
//   float4 ProjParams;                 // Offset:   32 Size:    16
//   float4 ForwGiIntegrationMode;      // Offset:   48 Size:    16
//   float4 SunDir;                     // Offset:   64 Size:    16
//   float4 SSDOParams;                 // Offset:   80 Size:    16
//   float4 FrustumTR;                  // Offset:   96 Size:    16
//   float4 ScreenSize;                 // Offset:  112 Size:    16
//   float4 g_vVisAreasParams[64];      // Offset:  128 Size:  1024 [unused]
//
// }
//
// Resource bind info for TiledLightsShadeInfo
// {
//
//   struct STiledLightShadeInfo
//   {
//       
//       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 TiledLightsCullInfo
// {
//
//   struct STiledLightCullInfo
//   {
//       
//       uint volumeType;               // Offset:    0
//       uint PADDING0;                 // Offset:    4
//       float2 depthBounds;            // Offset:    8
//       float4 posRad;                 // Offset:   16
//       float4 volumeParams0;          // Offset:   32
//       float4 volumeParams1;          // Offset:   48
//       float4 volumeParams2;          // Offset:   64
//
//   } $Element;                        // Offset:    0 Size:    80
//
// }
//
// Resource bind info for TiledClipVolumeInfo
// {
//
//   struct STiledClipVolumeInfo
//   {
//       
//       uint data;                     // Offset:    0
//
//   } $Element;                        // Offset:    0 Size:     4
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// TrilinearClampSamplerState        sampler      NA          NA    0        1
// DepthRT                           texture  float4          2d    0        1
// NormalRT                          texture  float4          2d    1        1
// SpecularRT                        texture  float4          2d    2        1
// DiffuseRT                         texture  float4          2d    3        1
// ShadowMaskRT                      texture  float4     2darray    4        1
// DirectionalOccRT                  texture  float4          2d    5        1
// SSReflectionRT                    texture  float4          2d    6        1
// EnvBRDF                           texture  float4          2d    7        1
// ClipVolumeIndexRT                 texture  float4          2d    8        1
// AOColorBleedRT                    texture  float4          2d    9        1
// GiDiffuseRT                       texture  float4          2d   10        1
// CausticsRT                        texture  float4          2d   12        1
// TiledLightsShadeInfo              texture  struct         r/o   16        1
// SpecCubeArray                     texture  float4   cubearray   17        1
// DiffuseCubeArray                  texture  float4   cubearray   18        1
// SpotTexArray                      texture  float4     2darray   19        1
// TiledLightsCullInfo               texture  struct         r/o   22        1
// TiledClipVolumeInfo               texture  struct         r/o   23        1
// TileTranspLightIndexUAV               UAV    uint         buf    0        1
// HDRSceneTargetUAV                     UAV  float4          2d    1        1
// DiffuseAccUAV                         UAV  float4          2d    2        1
// PER_BATCH                         cbuffer      NA          NA    0        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_constantbuffer cb0[8], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2darray (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_resource_texture2d (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_texture2d (float,float,float,float) t12
dcl_resource_structured t16, 208 
dcl_resource_texturecubearray (float,float,float,float) t17
dcl_resource_texturecubearray (float,float,float,float) t18
dcl_resource_texture2darray (float,float,float,float) t19
dcl_resource_structured t22, 80 
dcl_resource_structured t23, 4 
dcl_uav_typed_buffer (uint,uint,uint,uint) u0
dcl_uav_typed_texture2d (float,float,float,float) u1
dcl_uav_typed_texture2d (float,float,float,float) u2
dcl_input vThreadGroupID.xy
dcl_input vThreadIDInGroup.xy
dcl_temps 26
dcl_tgsm_raw g0, 4
dcl_tgsm_raw g1, 4
dcl_tgsm_structured g2, 4, 255
dcl_tgsm_structured g3, 4, 255
dcl_tgsm_raw g4, 4
dcl_tgsm_raw g5, 4
dcl_thread_group 8, 8, 1
imad r0.x, vThreadIDInGroup.y, l(8), vThreadIDInGroup.x
imad r1.xy, vThreadGroupID.xyxx, l(8, 8, 0, 0), vThreadIDInGroup.xyxx
if_z r0.x
  store_raw g0.x, l(0), l(0)
  store_raw g1.x, l(0), l(0)
  store_raw g4.x, l(0), l(340282346638528860000000000000000000000.000000)
  store_raw g5.x, l(0), l(0)
endif 
store_structured g2.x, r0.x, l(0), l(255)
store_structured g3.x, r0.x, l(0), l(255)
mov r1.w, l(0)
ld_indexable(texture2d)(float,float,float,float) r0.y, r1.xyww, t0.yxzw
add r0.z, r0.y, l(0.000100)
sync_g_t
atomic_umin g4, l(0), r0.y
atomic_umax g5, l(0), r0.z
sync_g_t
ld_raw r0.z, l(0), g4.xxxx
ld_raw r0.w, l(0), g5.xxxx
eq r2.x, r0.z, l(1.000000)
mul r2.yz, cb0[7].xxyx, l(0.000000, 0.125000, 0.125000, 0.000000)
round_pi r2.yz, r2.yyzy
mul r3.xy, r2.yzyy, l(0.500000, 0.500000, 0.000000, 0.000000)
utof r3.zw, vThreadGroupID.xxxy
mad r2.zw, r2.yyyz, l(0.000000, 0.000000, 0.500000, 0.500000), -r3.zzzw
mul r4.y, r3.x, cb0[2].x
mul r4.x, r3.y, -cb0[2].y
add r4.zw, r2.zzzw, cb0[2].zzzw
add r5.xyzw, -r4.yzxw, l(0.000000, 1.000000, 0.000000, 1.000000)
dp2 r2.z, r5.xyxx, r5.xyxx
rsq r2.z, r2.z
mul r2.zw, r2.zzzz, r5.xxxy
add r4.xyzw, r4.yzxw, l(0.000000, 1.000000, 0.000000, 1.000000)
dp2 r3.x, r4.xyxx, r4.xyxx
rsq r3.x, r3.x
mul r3.xy, r3.xxxx, r4.xyxx
dp2 r4.x, r5.zwzz, r5.zwzz
rsq r4.x, r4.x
mul r4.xy, r4.xxxx, r5.zwzz
dp2 r5.x, r4.zwzz, r4.zwzz
rsq r5.x, r5.x
mul r4.zw, r4.zzzw, r5.xxxx
ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r5.x, r0.x, l(0), t22.xxxx
if_nz r5.x
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r5.yz, r0.x, l(8), t22.xxyx
  lt r5.y, r5.y, r0.w
  if_nz r5.y
    ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r6.xyzw, r0.x, l(16), t22.xyzw
    dp2 r5.y, r2.zwzz, r6.xzxx
    dp2 r5.w, r3.xyxx, r6.xzxx
    dp2 r7.x, r4.xyxx, r6.yzyy
    dp2 r7.y, r4.zwzz, r6.yzyy
    ieq r7.z, r5.x, l(1)
    if_nz r7.z
      ge r7.zw, r5.yyyw, -r6.wwww
      and r7.z, r7.w, r7.z
      ge r7.w, r7.x, -r6.w
      and r7.z, r7.w, r7.z
      ge r7.w, r7.y, -r6.w
      and r7.z, r7.w, r7.z
    else 
      ieq r7.w, r5.x, l(2)
      if_nz r7.w
        ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r8.xyzw, r0.x, l(32), t22.xyzw
        mad r9.xyzw, -r8.xzyz, r6.wwww, r6.xzyz
        dp2 r6.x, r8.xzxx, r2.zwzz
        mad r6.xy, -r8.xzxx, r6.xxxx, r2.zwzz
        mad r6.xy, r8.wwww, r6.xyxx, r9.xyxx
        dp2 r6.x, r2.zwzz, r6.xyxx
        lt r6.y, l(0.000000), r5.y
        lt r6.x, l(0.000000), r6.x
        or r6.x, r6.x, r6.y
        ge r6.y, r5.y, -r6.w
        and r6.x, r6.y, r6.x
        dp2 r6.y, r8.xzxx, r3.xyxx
        mad r6.yz, -r8.xxzx, r6.yyyy, r3.xxyx
        mad r6.yz, r8.wwww, r6.yyzy, r9.xxyx
        dp2 r6.y, r3.xyxx, r6.yzyy
        lt r6.z, l(0.000000), r5.w
        lt r6.y, l(0.000000), r6.y
        or r6.y, r6.y, r6.z
        ge r6.z, r5.w, -r6.w
        and r6.y, r6.z, r6.y
        and r6.x, r6.y, r6.x
        dp2 r6.y, r8.yzyy, r4.xyxx
        mad r6.yz, -r8.yyzy, r6.yyyy, r4.xxyx
        mad r6.yz, r8.wwww, r6.yyzy, r9.zzwz
        dp2 r6.y, r4.xyxx, r6.yzyy
        lt r6.z, l(0.000000), r7.x
        lt r6.y, l(0.000000), r6.y
        or r6.y, r6.y, r6.z
        ge r6.z, r7.x, -r6.w
        and r6.y, r6.z, r6.y
        and r6.x, r6.y, r6.x
        dp2 r6.y, r8.yzyy, r4.zwzz
        mad r6.yz, -r8.yyzy, r6.yyyy, r4.zzwz
        mad r6.yz, r8.wwww, r6.yyzy, r9.zzwz
        dp2 r6.y, r4.zwzz, r6.yzyy
        lt r6.z, l(0.000000), r7.y
        lt r6.y, l(0.000000), r6.y
        or r6.y, r6.y, r6.z
        ge r6.z, r7.y, -r6.w
        and r6.y, r6.z, r6.y
        and r7.z, r6.y, r6.x
      else 
        ieq r6.x, r5.x, l(3)
        if_nz r6.x
          ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r6.xyzw, r0.x, l(32), t22.xyzw
          ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r8.xyzw, r0.x, l(48), t22.xyzw
          ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r9.xyzw, r0.x, l(64), t22.xyzw
          dp2 r7.w, r2.zwzz, r6.xzxx
          mov r10.x, |r7.w|
          dp2 r7.w, r2.zwzz, r8.xzxx
          mov r10.y, |r7.w|
          dp2 r7.w, r2.zwzz, r9.xzxx
          mov r10.z, |r7.w|
          mov r11.x, r6.w
          mov r11.y, r8.w
          mov r11.z, r9.w
          dp3 r6.w, r11.xyzx, r10.xyzx
          dp2 r6.x, r3.xyxx, r6.xzxx
          mov r10.x, |r6.x|
          dp2 r6.x, r3.xyxx, r8.xzxx
          mov r10.y, |r6.x|
          dp2 r6.x, r3.xyxx, r9.xzxx
          mov r10.z, |r6.x|
          dp3 r6.x, r11.xyzx, r10.xyzx
          ge r5.yw, r6.wwwx, -r5.yyyw
          and r5.y, r5.w, r5.y
          dp2 r5.w, r4.xyxx, r6.yzyy
          mov r10.x, |r5.w|
          dp2 r5.w, r4.xyxx, r8.yzyy
          mov r10.y, |r5.w|
          dp2 r5.w, r4.xyxx, r9.yzyy
          mov r10.z, |r5.w|
          dp3 r5.w, r11.xyzx, r10.xyzx
          ge r5.w, r5.w, -r7.x
          and r5.y, r5.w, r5.y
          dp2 r5.w, r4.zwzz, r6.yzyy
          mov r6.x, |r5.w|
          dp2 r5.w, r4.zwzz, r8.yzyy
          mov r6.y, |r5.w|
          dp2 r5.w, r4.zwzz, r9.yzyy
          mov r6.z, |r5.w|
          dp3 r5.w, r11.xyzx, r6.xyzx
          ge r5.w, r5.w, -r7.y
          and r7.z, r5.w, r5.y
        else 
          mov r7.z, l(-1)
        endif 
      endif 
    endif 
    if_nz r7.z
      ge r5.y, r5.z, r0.z
      not r5.z, r2.x
      and r5.y, r5.z, r5.y
      if_nz r5.y
        imm_atomic_iadd r6.x, g0, l(0), l(1)
        store_structured g2.x, r6.x, l(0), r0.x
      endif 
      ine r5.y, r5.x, l(4)
      if_nz r5.y
        imm_atomic_iadd r6.x, g1, l(0), l(1)
        store_structured g3.x, r6.x, l(0), r0.x
      endif 
    endif 
  endif 
endif 
iadd r5.y, r0.x, l(64)
movc r5.z, r5.x, r5.y, r0.x
ine r5.w, r5.x, l(0)
if_nz r5.x
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r5.x, r5.z, l(0), t22.xxxx
  ieq r6.x, r5.x, l(0)
  if_nz r5.x
    ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r6.yz, r5.z, l(8), t22.xxyx
    lt r6.y, r6.y, r0.w
    if_nz r6.y
      ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r7.xyzw, r5.z, l(16), t22.xyzw
      dp2 r6.y, r2.zwzz, r7.xzxx
      dp2 r6.w, r3.xyxx, r7.xzxx
      dp2 r8.x, r4.xyxx, r7.yzyy
      dp2 r8.y, r4.zwzz, r7.yzyy
      ieq r8.z, r5.x, l(1)
      if_nz r8.z
        ge r8.zw, r6.yyyw, -r7.wwww
        and r8.z, r8.w, r8.z
        ge r8.w, r8.x, -r7.w
        and r8.z, r8.w, r8.z
        ge r8.w, r8.y, -r7.w
        and r8.z, r8.w, r8.z
      else 
        ieq r8.w, r5.x, l(2)
        if_nz r8.w
          ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r9.xyzw, r5.z, l(32), t22.xyzw
          mad r10.xyzw, -r9.xzyz, r7.wwww, r7.xzyz
          dp2 r7.x, r9.xzxx, r2.zwzz
          mad r7.xy, -r9.xzxx, r7.xxxx, r2.zwzz
          mad r7.xy, r9.wwww, r7.xyxx, r10.xyxx
          dp2 r7.x, r2.zwzz, r7.xyxx
          lt r7.y, l(0.000000), r6.y
          lt r7.x, l(0.000000), r7.x
          or r7.x, r7.x, r7.y
          ge r7.y, r6.y, -r7.w
          and r7.x, r7.y, r7.x
          dp2 r7.y, r9.xzxx, r3.xyxx
          mad r7.yz, -r9.xxzx, r7.yyyy, r3.xxyx
          mad r7.yz, r9.wwww, r7.yyzy, r10.xxyx
          dp2 r7.y, r3.xyxx, r7.yzyy
          lt r7.z, l(0.000000), r6.w
          lt r7.y, l(0.000000), r7.y
          or r7.y, r7.y, r7.z
          ge r7.z, r6.w, -r7.w
          and r7.y, r7.z, r7.y
          and r7.x, r7.y, r7.x
          dp2 r7.y, r9.yzyy, r4.xyxx
          mad r7.yz, -r9.yyzy, r7.yyyy, r4.xxyx
          mad r7.yz, r9.wwww, r7.yyzy, r10.zzwz
          dp2 r7.y, r4.xyxx, r7.yzyy
          lt r7.z, l(0.000000), r8.x
          lt r7.y, l(0.000000), r7.y
          or r7.y, r7.y, r7.z
          ge r7.z, r8.x, -r7.w
          and r7.y, r7.z, r7.y
          and r7.x, r7.y, r7.x
          dp2 r7.y, r9.yzyy, r4.zwzz
          mad r7.yz, -r9.yyzy, r7.yyyy, r4.zzwz
          mad r7.yz, r9.wwww, r7.yyzy, r10.zzwz
          dp2 r7.y, r4.zwzz, r7.yzyy
          lt r7.z, l(0.000000), r8.y
          lt r7.y, l(0.000000), r7.y
          or r7.y, r7.y, r7.z
          ge r7.z, r8.y, -r7.w
          and r7.y, r7.z, r7.y
          and r8.z, r7.y, r7.x
        else 
          ieq r7.x, r5.x, l(3)
          if_nz r7.x
            ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r7.xyzw, r5.z, l(32), t22.xyzw
            ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r9.xyzw, r5.z, l(48), t22.xyzw
            ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r10.xyzw, r5.z, l(64), t22.xyzw
            dp2 r8.w, r2.zwzz, r7.xzxx
            mov r11.x, |r8.w|
            dp2 r8.w, r2.zwzz, r9.xzxx
            mov r11.y, |r8.w|
            dp2 r8.w, r2.zwzz, r10.xzxx
            mov r11.z, |r8.w|
            mov r12.x, r7.w
            mov r12.y, r9.w
            mov r12.z, r10.w
            dp3 r7.w, r12.xyzx, r11.xyzx
            dp2 r7.x, r3.xyxx, r7.xzxx
            mov r11.x, |r7.x|
            dp2 r7.x, r3.xyxx, r9.xzxx
            mov r11.y, |r7.x|
            dp2 r7.x, r3.xyxx, r10.xzxx
            mov r11.z, |r7.x|
            dp3 r7.x, r12.xyzx, r11.xyzx
            ge r6.yw, r7.wwwx, -r6.yyyw
            and r6.y, r6.w, r6.y
            dp2 r6.w, r4.xyxx, r7.yzyy
            mov r11.x, |r6.w|
            dp2 r6.w, r4.xyxx, r9.yzyy
            mov r11.y, |r6.w|
            dp2 r6.w, r4.xyxx, r10.yzyy
            mov r11.z, |r6.w|
            dp3 r6.w, r12.xyzx, r11.xyzx
            ge r6.w, r6.w, -r8.x
            and r6.y, r6.w, r6.y
            dp2 r6.w, r4.zwzz, r7.yzyy
            mov r7.x, |r6.w|
            dp2 r6.w, r4.zwzz, r9.yzyy
            mov r7.y, |r6.w|
            dp2 r6.w, r4.zwzz, r10.yzyy
            mov r7.z, |r6.w|
            dp3 r6.w, r12.xyzx, r7.xyzx
            ge r6.w, r6.w, -r8.y
            and r8.z, r6.w, r6.y
          else 
            mov r8.z, l(-1)
          endif 
        endif 
      endif 
      if_nz r8.z
        ge r6.y, r6.z, r0.z
        not r6.z, r2.x
        and r6.y, r6.z, r6.y
        if_nz r6.y
          imm_atomic_iadd r7.x, g0, l(0), l(1)
          store_structured g2.x, r7.x, l(0), r5.z
        endif 
        ine r5.x, r5.x, l(4)
        if_nz r5.x
          imm_atomic_iadd r7.x, g1, l(0), l(1)
          store_structured g3.x, r7.x, l(0), r5.z
        endif 
      endif 
    endif 
  endif 
  iadd r5.x, r5.z, l(64)
  movc r5.z, r6.x, r5.z, r5.x
else 
  mov r6.x, l(-1)
endif 
not r5.x, r6.x
and r5.x, r5.x, r5.w
if_z r6.x
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r5.w, r5.z, l(0), t22.xxxx
  ieq r6.x, r5.w, l(0)
  if_nz r5.w
    ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r6.yz, r5.z, l(8), t22.xxyx
    lt r6.y, r6.y, r0.w
    if_nz r6.y
      ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r7.xyzw, r5.z, l(16), t22.xyzw
      dp2 r6.y, r2.zwzz, r7.xzxx
      dp2 r6.w, r3.xyxx, r7.xzxx
      dp2 r8.x, r4.xyxx, r7.yzyy
      dp2 r8.y, r4.zwzz, r7.yzyy
      ieq r8.z, r5.w, l(1)
      if_nz r8.z
        ge r8.zw, r6.yyyw, -r7.wwww
        and r8.z, r8.w, r8.z
        ge r8.w, r8.x, -r7.w
        and r8.z, r8.w, r8.z
        ge r8.w, r8.y, -r7.w
        and r8.z, r8.w, r8.z
      else 
        ieq r8.w, r5.w, l(2)
        if_nz r8.w
          ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r9.xyzw, r5.z, l(32), t22.xyzw
          mad r10.xyzw, -r9.xzyz, r7.wwww, r7.xzyz
          dp2 r7.x, r9.xzxx, r2.zwzz
          mad r7.xy, -r9.xzxx, r7.xxxx, r2.zwzz
          mad r7.xy, r9.wwww, r7.xyxx, r10.xyxx
          dp2 r7.x, r2.zwzz, r7.xyxx
          lt r7.y, l(0.000000), r6.y
          lt r7.x, l(0.000000), r7.x
          or r7.x, r7.x, r7.y
          ge r7.y, r6.y, -r7.w
          and r7.x, r7.y, r7.x
          dp2 r7.y, r9.xzxx, r3.xyxx
          mad r7.yz, -r9.xxzx, r7.yyyy, r3.xxyx
          mad r7.yz, r9.wwww, r7.yyzy, r10.xxyx
          dp2 r7.y, r3.xyxx, r7.yzyy
          lt r7.z, l(0.000000), r6.w
          lt r7.y, l(0.000000), r7.y
          or r7.y, r7.y, r7.z
          ge r7.z, r6.w, -r7.w
          and r7.y, r7.z, r7.y
          and r7.x, r7.y, r7.x
          dp2 r7.y, r9.yzyy, r4.xyxx
          mad r7.yz, -r9.yyzy, r7.yyyy, r4.xxyx
          mad r7.yz, r9.wwww, r7.yyzy, r10.zzwz
          dp2 r7.y, r4.xyxx, r7.yzyy
          lt r7.z, l(0.000000), r8.x
          lt r7.y, l(0.000000), r7.y
          or r7.y, r7.y, r7.z
          ge r7.z, r8.x, -r7.w
          and r7.y, r7.z, r7.y
          and r7.x, r7.y, r7.x
          dp2 r7.y, r9.yzyy, r4.zwzz
          mad r7.yz, -r9.yyzy, r7.yyyy, r4.zzwz
          mad r7.yz, r9.wwww, r7.yyzy, r10.zzwz
          dp2 r7.y, r4.zwzz, r7.yzyy
          lt r7.z, l(0.000000), r8.y
          lt r7.y, l(0.000000), r7.y
          or r7.y, r7.y, r7.z
          ge r7.z, r8.y, -r7.w
          and r7.y, r7.z, r7.y
          and r8.z, r7.y, r7.x
        else 
          ieq r7.x, r5.w, l(3)
          if_nz r7.x
            ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r7.xyzw, r5.z, l(32), t22.xyzw
            ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r9.xyzw, r5.z, l(48), t22.xyzw
            ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r10.xyzw, r5.z, l(64), t22.xyzw
            dp2 r8.w, r2.zwzz, r7.xzxx
            mov r11.x, |r8.w|
            dp2 r8.w, r2.zwzz, r9.xzxx
            mov r11.y, |r8.w|
            dp2 r8.w, r2.zwzz, r10.xzxx
            mov r11.z, |r8.w|
            mov r12.x, r7.w
            mov r12.y, r9.w
            mov r12.z, r10.w
            dp3 r7.w, r12.xyzx, r11.xyzx
            dp2 r7.x, r3.xyxx, r7.xzxx
            mov r11.x, |r7.x|
            dp2 r7.x, r3.xyxx, r9.xzxx
            mov r11.y, |r7.x|
            dp2 r7.x, r3.xyxx, r10.xzxx
            mov r11.z, |r7.x|
            dp3 r7.x, r12.xyzx, r11.xyzx
            ge r6.yw, r7.wwwx, -r6.yyyw
            and r6.y, r6.w, r6.y
            dp2 r6.w, r4.xyxx, r7.yzyy
            mov r11.x, |r6.w|
            dp2 r6.w, r4.xyxx, r9.yzyy
            mov r11.y, |r6.w|
            dp2 r6.w, r4.xyxx, r10.yzyy
            mov r11.z, |r6.w|
            dp3 r6.w, r12.xyzx, r11.xyzx
            ge r6.w, r6.w, -r8.x
            and r6.y, r6.w, r6.y
            dp2 r6.w, r4.zwzz, r7.yzyy
            mov r7.x, |r6.w|
            dp2 r6.w, r4.zwzz, r9.yzyy
            mov r7.y, |r6.w|
            dp2 r6.w, r4.zwzz, r10.yzyy
            mov r7.z, |r6.w|
            dp3 r6.w, r12.xyzx, r7.xyzx
            ge r6.w, r6.w, -r8.y
            and r8.z, r6.w, r6.y
          else 
            mov r8.z, l(-1)
          endif 
        endif 
      endif 
      if_nz r8.z
        ge r6.y, r6.z, r0.z
        not r6.z, r2.x
        and r6.y, r6.z, r6.y
        if_nz r6.y
          imm_atomic_iadd r7.x, g0, l(0), l(1)
          store_structured g2.x, r7.x, l(0), r5.z
        endif 
        ine r6.y, r5.w, l(4)
        if_nz r6.y
          imm_atomic_iadd r7.x, g1, l(0), l(1)
          store_structured g3.x, r7.x, l(0), r5.z
        endif 
      endif 
    endif 
  endif 
  iadd r6.y, r5.z, l(64)
  movc r5.z, r5.w, r6.y, r5.z
else 
  mov r6.x, l(-1)
endif 
not r5.w, r6.x
and r5.x, r5.w, r5.x
ult r5.w, r5.z, l(255)
and r5.x, r5.w, r5.x
if_nz r5.x
  ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r5.x, r5.z, l(0), t22.xxxx
  if_nz r5.x
    ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r6.xy, r5.z, l(8), t22.xyxx
    lt r0.w, r6.x, r0.w
    if_nz r0.w
      ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r7.xyzw, r5.z, l(16), t22.xyzw
      dp2 r0.w, r2.zwzz, r7.xzxx
      dp2 r5.w, r3.xyxx, r7.xzxx
      dp2 r6.x, r4.xyxx, r7.yzyy
      dp2 r6.z, r4.zwzz, r7.yzyy
      ieq r6.w, r5.x, l(1)
      if_nz r6.w
        ge r6.w, r0.w, -r7.w
        ge r8.x, r5.w, -r7.w
        and r6.w, r6.w, r8.x
        ge r8.x, r6.x, -r7.w
        and r6.w, r6.w, r8.x
        ge r8.x, r6.z, -r7.w
        and r6.w, r6.w, r8.x
      else 
        ieq r8.x, r5.x, l(2)
        if_nz r8.x
          ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r8.xyzw, r5.z, l(32), t22.xyzw
          mad r9.xyzw, -r8.xzyz, r7.wwww, r7.xzyz
          dp2 r7.x, r8.xzxx, r2.zwzz
          mad r7.xy, -r8.xzxx, r7.xxxx, r2.zwzz
          mad r7.xy, r8.wwww, r7.xyxx, r9.xyxx
          dp2 r7.x, r2.zwzz, r7.xyxx
          lt r7.y, l(0.000000), r0.w
          lt r7.x, l(0.000000), r7.x
          or r7.x, r7.x, r7.y
          ge r7.y, r0.w, -r7.w
          and r7.x, r7.y, r7.x
          dp2 r7.y, r8.xzxx, r3.xyxx
          mad r7.yz, -r8.xxzx, r7.yyyy, r3.xxyx
          mad r7.yz, r8.wwww, r7.yyzy, r9.xxyx
          dp2 r7.y, r3.xyxx, r7.yzyy
          lt r7.z, l(0.000000), r5.w
          lt r7.y, l(0.000000), r7.y
          or r7.y, r7.y, r7.z
          ge r7.z, r5.w, -r7.w
          and r7.y, r7.z, r7.y
          and r7.x, r7.y, r7.x
          dp2 r7.y, r8.yzyy, r4.xyxx
          mad r7.yz, -r8.yyzy, r7.yyyy, r4.xxyx
          mad r7.yz, r8.wwww, r7.yyzy, r9.zzwz
          dp2 r7.y, r4.xyxx, r7.yzyy
          lt r7.z, l(0.000000), r6.x
          lt r7.y, l(0.000000), r7.y
          or r7.y, r7.y, r7.z
          ge r7.z, r6.x, -r7.w
          and r7.y, r7.z, r7.y
          and r7.x, r7.y, r7.x
          dp2 r7.y, r8.yzyy, r4.zwzz
          mad r7.yz, -r8.yyzy, r7.yyyy, r4.zzwz
          mad r7.yz, r8.wwww, r7.yyzy, r9.zzwz
          dp2 r7.y, r4.zwzz, r7.yzyy
          lt r7.z, l(0.000000), r6.z
          lt r7.y, l(0.000000), r7.y
          or r7.y, r7.y, r7.z
          ge r7.z, r6.z, -r7.w
          and r7.y, r7.z, r7.y
          and r6.w, r7.y, r7.x
        else 
          ieq r7.x, r5.x, l(3)
          if_nz r7.x
            ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r7.xyzw, r5.z, l(32), t22.xyzw
            ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r8.xyzw, r5.z, l(48), t22.xyzw
            ld_structured_indexable(structured_buffer, stride=80)(mixed,mixed,mixed,mixed) r9.xyzw, r5.z, l(64), t22.xyzw
            dp2 r10.x, r2.zwzz, r7.xzxx
            dp2 r10.w, r2.zwzz, r8.xzxx
            mov r10.xy, |r10.xwxx|
            dp2 r2.z, r2.zwzz, r9.xzxx
            mov r10.z, |r2.z|
            mov r11.x, r7.w
            mov r11.y, r8.w
            mov r11.z, r9.w
            dp3 r2.z, r11.xyzx, r10.xyzx
            ge r0.w, r2.z, -r0.w
            dp2 r2.z, r3.xyxx, r7.xzxx
            mov r10.x, |r2.z|
            dp2 r2.z, r3.xyxx, r8.xzxx
            mov r10.y, |r2.z|
            dp2 r2.z, r3.xyxx, r9.xzxx
            mov r10.z, |r2.z|
            dp3 r2.z, r11.xyzx, r10.xyzx
            ge r2.z, r2.z, -r5.w
            and r0.w, r0.w, r2.z
            dp2 r2.z, r4.xyxx, r7.yzyy
            mov r10.x, |r2.z|
            dp2 r2.z, r4.xyxx, r8.yzyy
            mov r10.y, |r2.z|
            dp2 r2.z, r4.xyxx, r9.yzyy
            mov r10.z, |r2.z|
            dp3 r2.z, r11.xyzx, r10.xyzx
            ge r2.z, r2.z, -r6.x
            and r0.w, r0.w, r2.z
            dp2 r2.z, r4.zwzz, r7.yzyy
            mov r7.x, |r2.z|
            dp2 r2.z, r4.zwzz, r8.yzyy
            mov r7.y, |r2.z|
            dp2 r2.z, r4.zwzz, r9.yzyy
            mov r7.z, |r2.z|
            dp3 r2.z, r11.xyzx, r7.xyzx
            ge r2.z, r2.z, -r6.z
            and r6.w, r0.w, r2.z
          else 
            mov r6.w, l(-1)
          endif 
        endif 
      endif 
      if_nz r6.w
        ge r0.z, r6.y, r0.z
        not r0.w, r2.x
        and r0.z, r0.w, r0.z
        if_nz r0.z
          imm_atomic_iadd r4.x, g0, l(0), l(1)
          store_structured g2.x, r4.x, l(0), r5.z
        endif 
        ine r0.z, r5.x, l(4)
        if_nz r0.z
          imm_atomic_iadd r4.x, g1, l(0), l(1)
          store_structured g3.x, r4.x, l(0), r5.z
        endif 
      endif 
    endif 
  endif 
endif 
sync_g_t
and r4.xyzw, r0.xxxx, l(62, 2, 61, 4)
ld_structured r0.z, r4.x, l(0), g2.xxxx
or r6.xyzw, r0.xxxx, l(1, 2, 4, 8)
ld_structured r0.w, r6.x, l(0), g2.xxxx
uge r0.z, r0.w, r0.z
ine r2.xz, r4.yywy, l(0, 0, 0, 0)
ieq r0.z, r0.z, r2.x
xor r7.xyzw, r0.xxxx, l(1, 2, 4, 8)
ld_structured r0.w, r7.x, l(0), g2.xxxx
ld_structured r2.w, r0.x, l(0), g2.xxxx
movc r0.z, r0.z, r0.w, r2.w
ld_structured r0.w, r4.x, l(0), g3.xxxx
ld_structured r2.w, r6.x, l(0), g3.xxxx
uge r0.w, r2.w, r0.w
ieq r0.w, r2.x, r0.w
ld_structured r2.x, r7.x, l(0), g3.xxxx
ld_structured r2.w, r0.x, l(0), g3.xxxx
movc r0.w, r0.w, r2.x, r2.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r4.z, l(0), g2.xxxx
ld_structured r2.w, r6.y, l(0), g2.xxxx
uge r2.x, r2.w, r2.x
ieq r2.x, r2.z, r2.x
ld_structured r2.w, r7.y, l(0), g2.xxxx
movc r0.z, r2.x, r2.w, r0.z
ld_structured r2.x, r4.z, l(0), g3.xxxx
ld_structured r2.w, r6.y, l(0), g3.xxxx
uge r2.x, r2.w, r2.x
ieq r2.x, r2.z, r2.x
ld_structured r2.w, r7.y, l(0), g3.xxxx
movc r0.w, r2.x, r2.w, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r4.x, l(0), g2.xxxx
ld_structured r2.w, r6.x, l(0), g2.xxxx
uge r2.x, r2.w, r2.x
ieq r2.x, r2.z, r2.x
ld_structured r2.w, r7.x, l(0), g2.xxxx
movc r0.z, r2.x, r2.w, r0.z
ld_structured r2.x, r4.x, l(0), g3.xxxx
ld_structured r2.w, r6.x, l(0), g3.xxxx
uge r2.x, r2.w, r2.x
ieq r2.x, r2.z, r2.x
ld_structured r2.z, r7.x, l(0), g3.xxxx
movc r0.w, r2.x, r2.z, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
and r8.xyzw, r0.xxxx, l(59, 8, 55, 16)
ld_structured r2.x, r8.x, l(0), g2.xxxx
ld_structured r2.z, r6.z, l(0), g2.xxxx
uge r2.x, r2.z, r2.x
ine r2.zw, r8.yyyw, l(0, 0, 0, 0)
ieq r2.x, r2.z, r2.x
ld_structured r3.x, r7.z, l(0), g2.xxxx
movc r0.z, r2.x, r3.x, r0.z
ld_structured r2.x, r8.x, l(0), g3.xxxx
ld_structured r3.x, r6.z, l(0), g3.xxxx
uge r2.x, r3.x, r2.x
ieq r2.x, r2.z, r2.x
ld_structured r3.x, r7.z, l(0), g3.xxxx
movc r0.w, r2.x, r3.x, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r4.z, l(0), g2.xxxx
ld_structured r3.x, r6.y, l(0), g2.xxxx
uge r2.x, r3.x, r2.x
ieq r2.x, r2.z, r2.x
ld_structured r3.x, r7.y, l(0), g2.xxxx
movc r0.z, r2.x, r3.x, r0.z
ld_structured r2.x, r4.z, l(0), g3.xxxx
ld_structured r3.x, r6.y, l(0), g3.xxxx
uge r2.x, r3.x, r2.x
ieq r2.x, r2.z, r2.x
ld_structured r3.x, r7.y, l(0), g3.xxxx
movc r0.w, r2.x, r3.x, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r4.x, l(0), g2.xxxx
ld_structured r3.x, r6.x, l(0), g2.xxxx
uge r2.x, r3.x, r2.x
ieq r2.x, r2.z, r2.x
ld_structured r3.x, r7.x, l(0), g2.xxxx
movc r0.z, r2.x, r3.x, r0.z
ld_structured r2.x, r4.x, l(0), g3.xxxx
ld_structured r3.x, r6.x, l(0), g3.xxxx
uge r2.x, r3.x, r2.x
ieq r2.x, r2.z, r2.x
ld_structured r2.z, r7.x, l(0), g3.xxxx
movc r0.w, r2.x, r2.z, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r8.z, l(0), g2.xxxx
ld_structured r2.z, r6.w, l(0), g2.xxxx
uge r2.x, r2.z, r2.x
ieq r2.x, r2.w, r2.x
ld_structured r2.z, r7.w, l(0), g2.xxxx
movc r0.z, r2.x, r2.z, r0.z
ld_structured r2.x, r8.z, l(0), g3.xxxx
ld_structured r2.z, r6.w, l(0), g3.xxxx
uge r2.x, r2.z, r2.x
ieq r2.x, r2.w, r2.x
ld_structured r2.z, r7.w, l(0), g3.xxxx
movc r0.w, r2.x, r2.z, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r8.x, l(0), g2.xxxx
ld_structured r2.z, r6.z, l(0), g2.xxxx
uge r2.x, r2.z, r2.x
ieq r2.x, r2.w, r2.x
ld_structured r2.z, r7.z, l(0), g2.xxxx
movc r0.z, r2.x, r2.z, r0.z
ld_structured r2.x, r8.x, l(0), g3.xxxx
ld_structured r2.z, r6.z, l(0), g3.xxxx
uge r2.x, r2.z, r2.x
ieq r2.x, r2.w, r2.x
ld_structured r2.z, r7.z, l(0), g3.xxxx
movc r0.w, r2.x, r2.z, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r4.z, l(0), g2.xxxx
ld_structured r2.z, r6.y, l(0), g2.xxxx
uge r2.x, r2.z, r2.x
ieq r2.x, r2.w, r2.x
ld_structured r2.z, r7.y, l(0), g2.xxxx
movc r0.z, r2.x, r2.z, r0.z
ld_structured r2.x, r4.z, l(0), g3.xxxx
ld_structured r2.z, r6.y, l(0), g3.xxxx
uge r2.x, r2.z, r2.x
ieq r2.x, r2.w, r2.x
ld_structured r2.z, r7.y, l(0), g3.xxxx
movc r0.w, r2.x, r2.z, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r4.x, l(0), g2.xxxx
ld_structured r2.z, r6.x, l(0), g2.xxxx
uge r2.x, r2.z, r2.x
ieq r2.x, r2.w, r2.x
ld_structured r2.z, r7.x, l(0), g2.xxxx
movc r0.z, r2.x, r2.z, r0.z
ld_structured r2.x, r4.x, l(0), g3.xxxx
ld_structured r2.z, r6.x, l(0), g3.xxxx
uge r2.x, r2.z, r2.x
ieq r2.x, r2.w, r2.x
ld_structured r2.z, r7.x, l(0), g3.xxxx
movc r0.w, r2.x, r2.z, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
and r2.xzw, r0.xxxx, l(47, 0, 32, 31)
ld_structured r3.x, r2.x, l(0), g2.xxxx
or r4.yw, r0.xxxx, l(0, 16, 0, 32)
ld_structured r3.y, r4.y, l(0), g2.xxxx
uge r3.x, r3.y, r3.x
ine r2.z, r2.z, l(0)
ieq r3.x, r2.z, r3.x
xor r5.xz, r0.xxxx, l(16, 0, 32, 0)
ld_structured r3.y, r5.x, l(0), g2.xxxx
movc r0.z, r3.x, r3.y, r0.z
ld_structured r3.x, r2.x, l(0), g3.xxxx
ld_structured r3.y, r4.y, l(0), g3.xxxx
uge r3.x, r3.y, r3.x
ieq r3.x, r2.z, r3.x
ld_structured r3.y, r5.x, l(0), g3.xxxx
movc r0.w, r3.x, r3.y, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r3.x, r8.z, l(0), g2.xxxx
ld_structured r3.y, r6.w, l(0), g2.xxxx
uge r3.x, r3.y, r3.x
ieq r3.x, r2.z, r3.x
ld_structured r3.y, r7.w, l(0), g2.xxxx
movc r0.z, r3.x, r3.y, r0.z
ld_structured r3.x, r8.z, l(0), g3.xxxx
ld_structured r3.y, r6.w, l(0), g3.xxxx
uge r3.x, r3.y, r3.x
ieq r3.x, r2.z, r3.x
ld_structured r3.y, r7.w, l(0), g3.xxxx
movc r0.w, r3.x, r3.y, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r3.x, r8.x, l(0), g2.xxxx
ld_structured r3.y, r6.z, l(0), g2.xxxx
uge r3.x, r3.y, r3.x
ieq r3.x, r2.z, r3.x
ld_structured r3.y, r7.z, l(0), g2.xxxx
movc r0.z, r3.x, r3.y, r0.z
ld_structured r3.x, r8.x, l(0), g3.xxxx
ld_structured r3.y, r6.z, l(0), g3.xxxx
uge r3.x, r3.y, r3.x
ieq r3.x, r2.z, r3.x
ld_structured r3.y, r7.z, l(0), g3.xxxx
movc r0.w, r3.x, r3.y, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r3.x, r4.z, l(0), g2.xxxx
ld_structured r3.y, r6.y, l(0), g2.xxxx
uge r3.x, r3.y, r3.x
ieq r3.x, r2.z, r3.x
ld_structured r3.y, r7.y, l(0), g2.xxxx
movc r0.z, r3.x, r3.y, r0.z
ld_structured r3.x, r4.z, l(0), g3.xxxx
ld_structured r3.y, r6.y, l(0), g3.xxxx
uge r3.x, r3.y, r3.x
ieq r3.x, r2.z, r3.x
ld_structured r3.y, r7.y, l(0), g3.xxxx
movc r0.w, r3.x, r3.y, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r3.x, r4.x, l(0), g2.xxxx
ld_structured r3.y, r6.x, l(0), g2.xxxx
uge r3.x, r3.y, r3.x
ieq r3.x, r2.z, r3.x
ld_structured r3.y, r7.x, l(0), g2.xxxx
movc r0.z, r3.x, r3.y, r0.z
ld_structured r3.x, r4.x, l(0), g3.xxxx
ld_structured r3.y, r6.x, l(0), g3.xxxx
uge r3.x, r3.y, r3.x
ieq r2.z, r2.z, r3.x
ld_structured r3.x, r7.x, l(0), g3.xxxx
movc r0.w, r2.z, r3.x, r0.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.z, r2.w, l(0), g2.xxxx
ld_structured r3.x, r4.w, l(0), g2.xxxx
uge r2.z, r3.x, r2.z
ld_structured r3.x, r5.z, l(0), g2.xxxx
movc r0.z, r2.z, r0.z, r3.x
ld_structured r2.z, r2.w, l(0), g3.xxxx
ld_structured r2.w, r4.w, l(0), g3.xxxx
uge r2.z, r2.w, r2.z
ld_structured r2.w, r5.z, l(0), g3.xxxx
movc r0.w, r2.z, r0.w, r2.w
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.z, r2.x, l(0), g2.xxxx
ld_structured r2.w, r4.y, l(0), g2.xxxx
uge r2.z, r2.w, r2.z
ld_structured r2.w, r5.x, l(0), g2.xxxx
movc r0.z, r2.z, r0.z, r2.w
ld_structured r2.x, r2.x, l(0), g3.xxxx
ld_structured r2.z, r4.y, l(0), g3.xxxx
uge r2.x, r2.z, r2.x
ld_structured r2.z, r5.x, l(0), g3.xxxx
movc r0.w, r2.x, r0.w, r2.z
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r8.z, l(0), g2.xxxx
ld_structured r2.z, r6.w, l(0), g2.xxxx
uge r2.x, r2.z, r2.x
ld_structured r2.z, r7.w, l(0), g2.xxxx
movc r0.z, r2.x, r0.z, r2.z
ld_structured r2.x, r8.z, l(0), g3.xxxx
ld_structured r2.z, r6.w, l(0), g3.xxxx
uge r2.x, r2.z, r2.x
ld_structured r2.z, r7.w, l(0), g3.xxxx
movc r0.w, r2.x, r0.w, r2.z
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r8.x, l(0), g2.xxxx
ld_structured r2.z, r6.z, l(0), g2.xxxx
uge r2.x, r2.z, r2.x
ld_structured r2.z, r7.z, l(0), g2.xxxx
movc r0.z, r2.x, r0.z, r2.z
ld_structured r2.x, r8.x, l(0), g3.xxxx
ld_structured r2.z, r6.z, l(0), g3.xxxx
uge r2.x, r2.z, r2.x
ld_structured r2.z, r7.z, l(0), g3.xxxx
movc r0.w, r2.x, r0.w, r2.z
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r4.z, l(0), g2.xxxx
ld_structured r2.z, r6.y, l(0), g2.xxxx
uge r2.x, r2.z, r2.x
ld_structured r2.z, r7.y, l(0), g2.xxxx
movc r0.z, r2.x, r0.z, r2.z
ld_structured r2.x, r4.z, l(0), g3.xxxx
ld_structured r2.z, r6.y, l(0), g3.xxxx
uge r2.x, r2.z, r2.x
ld_structured r2.z, r7.y, l(0), g3.xxxx
movc r0.w, r2.x, r0.w, r2.z
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
store_structured g3.x, r0.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r4.x, l(0), g2.xxxx
ld_structured r2.z, r6.x, l(0), g2.xxxx
uge r2.x, r2.z, r2.x
ld_structured r2.z, r7.x, l(0), g2.xxxx
movc r0.z, r2.x, r0.z, r2.z
ld_structured r2.x, r4.x, l(0), g3.xxxx
ld_structured r2.z, r6.x, l(0), g3.xxxx
uge r2.x, r2.z, r2.x
ld_structured r2.z, r7.x, l(0), g3.xxxx
movc r0.w, r2.x, r0.w, r2.z
sync_g_t
store_structured g2.x, r0.x, l(0), r0.z
sync_g_t
mad r0.z, r3.w, r2.y, r3.z
ftou r0.z, r0.z
ld_raw r2.x, l(0), g1.xxxx
ult r2.y, r0.x, r2.x
movc r0.w, r2.y, r0.w, l(255)
imad r0.x, r0.z, l(255), r0.x
store_uav_typed u0.xyzw, r0.xxxx, r0.wwww
ult r0.x, r5.y, r2.x
ld_structured r0.w, r5.y, l(0), g3.xxxx
movc r0.x, r0.x, r0.w, l(255)
imad r0.w, r0.z, l(255), r5.y
store_uav_typed u0.xyzw, r0.wwww, r0.xxxx
iadd r0.x, r5.y, l(64)
ult r0.w, r0.x, r2.x
ld_structured r2.y, r0.x, l(0), g3.xxxx
movc r0.w, r0.w, r2.y, l(255)
imad r2.y, r0.z, l(255), r0.x
store_uav_typed u0.xyzw, r2.yyyy, r0.wwww
or r0.x, r0.x, l(192)
ult r0.w, r0.x, l(255)
if_nz r0.w
  ult r0.w, r0.x, r2.x
  ld_structured r2.x, r0.x, l(0), g3.xxxx
  movc r0.w, r0.w, r2.x, l(255)
  imad r0.x, r0.z, l(255), r0.x
  store_uav_typed u0.xyzw, r0.xxxx, r0.wwww
endif 
ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r1.xyww, t1.xyzw
ld_indexable(texture2d)(float,float,float,float) r3.xyzw, r1.xyww, t2.yxzw
mul r0.x, r2.w, l(3.99609375)
round_ni r0.z, r0.x
ftoi r0.z, r0.z
mad r2.xyz, r2.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r0.w, r2.xyzx, r2.xyzx
rsq r0.w, r0.w
mul r2.xyz, r0.wwww, r2.xyzx
mad r4.yz, r3.zzwz, l(0.000000, 2.007874, 2.007874, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
movc r5.yz, r0.zzzz, l(0,0,0,0), r4.yyzy
mov r5.x, r3.x
dp3 r6.y, l(1.000000, -0.344100, -0.714100, 0.000000), r5.xyzx
mad r6.xz, r5.zzyz, l(1.402000, 0.000000, 1.772000, 0.000000), r3.xxxx
mul r5.xyz, r6.xyzx, r6.xyzx
ieq r0.z, r0.z, l(1)
frc r4.x, r0.x
dp3 r7.y, l(1.000000, -0.344100, -0.714100, 0.000000), r4.xyzx
mad r7.xz, r4.zzyz, l(1.402000, 0.000000, 1.772000, 0.000000), r4.xxxx
mul r4.xyz, r7.xyzx, r7.xyzx
and r4.xyz, r0.zzzz, r4.xyzx
utof r0.xw, r1.xxxy
mul r3.zw, r0.xxxw, cb0[7].zzzw
mad r4.w, -r0.x, cb0[7].z, l(1.000000)
mad r4.w, -r0.w, cb0[7].w, r4.w
mul r7.xyz, r3.zzzz, cb0[6].xyzx
mad r7.xyz, r4.wwww, cb0[0].xyzx, r7.xyzx
mad r7.xyz, r3.wwww, cb0[1].xyzx, r7.xyzx
mul r8.xyz, r0.yyyy, r7.xyzx
dp3 r4.w, -r8.xyzx, -r8.xyzx
rsq r4.w, r4.w
mul r9.xyz, r4.wwww, -r8.xyzx
ld_structured r5.w, l(0), l(0), g2.xxxx
ld_indexable(texture2d)(float,float,float,float) r10.xy, r1.xyww, t8.xyzw
mul r6.w, r10.x, l(255.000000)
ftou r6.w, r6.w
and r7.w, r6.w, l(63)
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r7.w, r7.w, l(0), t23.xxxx
dp3 r9.w, r8.xyzx, r2.xyzx
add r9.w, r9.w, r9.w
mad r10.xzw, r2.xxyz, -r9.wwww, r8.xxyz
dp3 r9.w, r10.xzwx, r10.xzwx
rsq r9.w, r9.w
mul r10.xzw, r9.wwww, r10.xxzw
mad r9.w, -r3.y, l(6.000000), l(6.000000)
ld_raw r11.x, l(0), g0.xxxx
and r11.y, r7.w, l(8)
ushr r11.z, r7.w, l(24)
ubfe r7.w, l(8), l(16), r7.w
add r11.w, -r10.y, l(1.000000)
lt r12.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r10.xzwx
mov r14.xyz, l(0,0,0,0)
mov r12.w, l(0)
mov r13.xyzw, l(0,0,0,0)
mov r14.w, r5.w
loop 
  ult r15.x, r13.w, r11.x
  ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r15.y, r14.w, l(0), t16.xxxx
  ieq r15.y, r15.y, l(1)
  and r15.x, r15.y, r15.x
  breakc_z r15.x
  ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r15.x, r14.w, l(12), t16.xxxx
  and r15.y, r15.x, l(255)
  ushr r15.x, r15.x, l(16)
  ieq r15.z, r15.y, l(255)
  ieq r15.w, r11.z, r15.y
  ieq r16.x, r7.w, r15.y
  movc r16.y, r15.w, r10.y, r11.w
  or r15.w, r15.w, r16.x
  movc r15.w, r11.y, r15.w, l(0)
  ieq r15.xy, r6.wwww, r15.xyxx
  or r15.x, r15.x, r15.y
  and r15.x, r15.x, l(0x3f800000)
  movc r15.x, r15.w, r16.y, r15.x
  movc r15.x, r15.z, l(1.000000), r15.x
  lt r15.y, r12.w, l(1.000000)
  lt r15.z, l(0.000000), r15.x
  and r15.y, r15.z, r15.y
  if_nz r15.y
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r15.y, r14.w, l(4), t16.xxxx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r16.xyz, r14.w, l(16), t16.xyzx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r15.zw, r14.w, l(32), t16.xxxy
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r17.xyzw, r14.w, l(48), t16.xyzw
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r18.xyz, r14.w, l(80), t16.xyzx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.xyz, r14.w, l(96), t16.xyzx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.xyz, r14.w, l(112), t16.xyzx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r21.xyz, r14.w, l(144), t16.xyzx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyz, r14.w, l(160), t16.xyzx
    mad r23.xyz, -r7.xyzx, r0.yyyy, r16.xyzx
    dp3 r18.x, r18.xyzx, r23.xyzx
    dp3 r18.y, r19.xyzx, r23.xyzx
    dp3 r18.z, r20.xyzx, r23.xyzx
    max r16.w, |r18.y|, |r18.x|
    max r16.w, |r18.z|, r16.w
    lt r16.w, r16.w, l(1.000000)
    if_nz r16.w
      mul r19.xyz, r18.zxyz, r18.zxyz
      mul r20.xyz, r19.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
      mad r20.xyz, -r19.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), -r20.zxyz
      add r20.xyz, r20.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
      mul r19.xyz, r19.zxyz, r19.xyzx
      mad r19.xyz, r19.xyzx, l(0.333000, 0.333000, 0.333000, 0.000000), r20.xyzx
      sqrt r19.xyz, r19.xyzx
      mul r18.xyz, r18.xyzx, r19.xyzx
      dp3 r16.w, r18.xyzx, -r18.xyzx
      add_sat r16.w, r16.w, l(1.000000)
      div_sat r15.w, r16.w, r15.w
      mul r16.w, r15.w, r15.w
      mad r15.w, -r15.w, l(2.000000), l(3.000000)
      mul r15.w, r15.w, r16.w
      mul r15.z, r15.z, r15.w
      utof r2.w, r15.y
      sample_l_indexable(texturecubearray)(float,float,float,float) r18.xyz, r2.xyzw, t18.xyzw, s0, l(0.000000)
      if_nz r0.z
        mul r19.xyzw, r2.xyzw, l(-1.000000, -1.000000, -1.000000, 1.000000)
        sample_l_indexable(texturecubearray)(float,float,float,float) r19.xyz, r19.xyzw, t18.xyzw, s0, l(0.000000)
        mad r18.xyz, r19.xyzx, r4.xyzx, r18.xyzx
      endif 
      add r15.y, -r12.w, l(1.000000)
      mul r15.y, r15.z, r15.y
      mul r15.z, r15.x, r15.y
      mul r18.xyz, r17.xyzx, r18.xyzx
      mad r13.xyz, r18.xyzx, r15.zzzz, r13.xyzx
      add r18.xyz, r16.xyzx, r22.xyzx
      mad r18.xyz, -r7.xyzx, r0.yyyy, r18.xyzx
      div r18.xyz, r18.xyzx, r10.xzwx
      add r19.xyz, r16.xyzx, r21.xyzx
      mad r19.xyz, -r7.xyzx, r0.yyyy, r19.xyzx
      div r19.xyz, r19.xyzx, r10.xzwx
      movc r18.xyz, r12.xyzx, r18.xyzx, r19.xyzx
      min r15.w, r18.y, r18.x
      min r15.w, r18.z, r15.w
      mad r18.xyz, r10.xzwx, r15.wwww, r8.xyzx
      add r16.xyz, -r16.xyzx, r18.xyzx
      mov r16.w, r2.w
      sample_l_indexable(texturecubearray)(float,float,float,float) r16.xyz, r16.xyzw, t17.xyzw, s0, r9.w
      mul r16.xyz, r17.xyzx, r16.xyzx
      mul r16.xyz, r17.wwww, r16.xyzx
      mad r14.xyz, r16.xyzx, r15.zzzz, r14.xyzx
      mad r12.w, r15.y, r15.x, r12.w
    endif 
  endif 
  iadd r13.w, r13.w, l(1)
  imin r2.w, r13.w, l(254)
  ld_structured r14.w, r2.w, l(0), g2.xxxx
endloop 

div r10.xz, l(0.500000, 0.000000, 0.500000, 0.000000), cb0[7].xxyx
mad r0.xw, r0.xxxw, cb0[7].zzzw, r10.xxxz

sample_l_indexable(texture2d)(float,float,float,float) r10.xzw, r0.xwxx, t10.xwyz, s0, l(0.000000)
dp3 r0.x, r10.xzwx, l(0.212600, 0.715200, 0.072200, 0.000000)
dp3 r0.w, r13.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000)
add r0.w, r0.w, l(0.001000)
div r0.x, r0.x, r0.w
min r0.x, r0.x, l(2.000000)
dp3 r0.w, r5.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000)
mul r2.w, r0.w, r3.y
mul_sat r2.w, r2.w, cb0[3].x
add r5.w, -r0.x, l(1.000000)
mad r0.x, r2.w, r5.w, r0.x
mul r12.xyz, r0.xxxx, r14.xyzx
ld_indexable(texture2d)(float,float,float,float) r15.xyzw, r1.xyww, t5.xyzw
mad r13.xyz, r15.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mad_sat r14.xy, -r15.wwww, cb0[5].yzyy, l(1.000000, 1.000000, 0.000000, 0.000000)
mul r14.xy, r14.xyxx, r14.xyxx
sample_l_indexable(texture2d)(float,float,float,float) r15.xyz, r3.zwzz, t9.xyzw, s0, l(0.000000)
mul r16.xyz, r15.xyzx, r15.xyzx
mul r15.xyz, r15.xyzx, r16.xyzx
mul r15.xyz, r15.xyzx, l(3.000000, 3.000000, 3.000000, 0.000000)
min r15.xyz, r15.xyzx, l(0.700000, 0.700000, 0.700000, 0.000000)
add r15.xyz, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
log r0.x, r14.x
mul r15.xyz, r0.xxxx, r15.xyzx
exp r15.xyz, r15.xyzx
mul r10.xzw, r10.xxzw, r15.xxyz
dp3 r0.x, r8.xyzx, r8.xyzx
rsq r0.x, r0.x
mul r15.xyz, r0.xxxx, r8.xyzx
dp3 r3.x, -r15.xyzx, r2.xyzx
max r0.x, r14.y, l(0.300000)
add r2.w, r0.x, r3.x
log r2.w, r2.w
mul r2.w, r2.w, r3.y
exp r2.w, r2.w
add r0.x, r0.x, r2.w
add_sat r0.x, r0.x, l(-1.000000)
mul r12.xyz, r0.xxxx, r12.xyzx
ld_raw r0.x, l(0), g0.xxxx
mov r15.xz, l(1.000000,0,1.000000,0)
mov r8.w, l(1.000000)
mov r14.xyz, r10.xzwx
mov r16.xyz, r12.xyzx
mov r2.w, r13.w
mov r5.w, r14.w
loop 
  ult r9.w, r2.w, r0.x
  ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r11.x, r5.w, l(0), t16.xxxx
  ige r12.w, l(4), r11.x
  and r9.w, r9.w, r12.w
  breakc_z r9.w
  ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r17.xyzw, r5.w, l(12), t16.xyzw
  and r9.w, r17.x, l(255)
  ushr r12.w, r17.x, l(16)
  ieq r16.w, r9.w, l(255)
  ieq r17.x, r11.z, r9.w
  ieq r18.x, r7.w, r9.w
  movc r18.y, r17.x, r10.y, r11.w
  or r17.x, r17.x, r18.x
  movc r17.x, r11.y, r17.x, l(0)
  ieq r9.w, r6.w, r9.w
  ieq r12.w, r6.w, r12.w
  or r9.w, r9.w, r12.w
  and r9.w, r9.w, l(0x3f800000)
  movc r9.w, r17.x, r18.y, r9.w
  movc r9.w, r16.w, l(1.000000), r9.w
  ne r12.w, r9.w, l(0.000000)
  if_nz r12.w
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r18.xy, r5.w, l(28), t16.xyxx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.xyz, r5.w, l(48), t16.xyzx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.xyzw, r5.w, l(80), t16.xyzw
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r21.xyzw, r5.w, l(96), t16.xyzw
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyzw, r5.w, l(128), t16.xyzw
    mad r17.xyz, -r7.xyzx, r0.yyyy, r17.yzwy
    ieq r12.w, r11.x, l(4)
    if_nz r12.w
      ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r23.xyz, r5.w, l(112), t16.xyzx
      dp3 r12.w, r20.xyzx, r17.xyzx
      mad r24.xyz, r12.wwww, r20.xyzx, -r17.xyzx
      dp3 r25.x, r24.xyzx, r21.xyzx
      dp3 r25.y, r24.xyzx, r23.xyzx
      max r18.zw, -r22.xxxy, r25.xxxy
      min r18.zw, r22.xxxy, r18.zzzw
      mul r23.xyz, r18.wwww, r23.xyzx
      mad r23.xyz, r21.xyzx, r18.zzzz, r23.xyzx
      add r23.xyz, r17.xyzx, r23.xyzx
      div r12.w, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x
      mul r24.xyz, r12.wwww, r23.xyzx
      dp3 r12.w, r24.xyzx, -r24.xyzx
      add_sat r12.w, r12.w, l(1.000000)
      dp3 r16.w, r23.xyzx, r23.xyzx
      rsq r16.w, r16.w
      mul r23.xyz, r16.wwww, r23.xyzx
      dp3 r16.w, -r23.xyzx, r20.xyzx
      add r17.w, r16.w, l(0.000001)
      div_sat r17.w, r22.w, r17.w
      log r17.w, r17.w
      mul r17.w, r17.w, r18.x
      exp r17.w, r17.w
      add r17.w, -r17.w, l(1.000000)
      mul r12.w, r12.w, r17.w
      mul r15.y, r12.w, r12.w
      dp3_sat r12.w, r2.xyzx, r23.xyzx
      mov_sat r17.w, r16.w
      mul r12.w, r12.w, r17.w
      mov r18.zw, r15.xxxy
    else 
      lt r15.y, l(0.000000), r18.y
      if_nz r15.y
        dp3 r15.y, r17.xyzx, r17.xyzx
        sqrt r15.y, r15.y
        div r17.w, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x
        add r19.w, -r15.y, r18.x
        mul r17.w, r17.w, r19.w
        mul_sat r17.w, r17.w, l(5.000000)
        add r15.y, -r18.y, r15.y
        max r15.y, r15.y, l(0.000000)
        div r15.y, r15.y, r18.y
        add r15.y, r15.y, l(1.000000)
        mul r17.w, r17.w, r17.w
        mul r15.y, r15.y, r15.y
        div r18.w, r17.w, r15.y
      else 
        div r15.y, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x
        mul r24.xyz, r15.yyyy, r17.xyzx
        dp3 r15.y, r24.xyzx, -r24.xyzx
        add_sat r18.w, r15.y, l(1.000000)
      endif 
      dp3 r15.y, r17.xyzx, r17.xyzx
      rsq r15.y, r15.y
      mul r23.xyz, r15.yyyy, r17.xyzx
      dp3_sat r12.w, r2.xyzx, r23.xyzx
      ieq r11.x, r11.x, l(3)
      if_nz r11.x
        lt r11.x, l(0.000000), r18.w
        if_nz r11.x
          dp4 r17.x, r20.xyzw, r8.xyzw
          dp4 r17.y, r21.xyzw, r8.xyzw
          dp4 r11.x, r22.xyzw, r8.xyzw
          div r17.xy, r17.xyxx, r11.xxxx
          lt r11.x, l(0.000000), r11.x
          mad r18.xy, r17.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
          max r15.y, |r18.y|, |r18.x|
          lt r15.y, r15.y, l(1.000000)
          and r11.x, r11.x, r15.y
          if_nz r11.x
            ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r11.x, r5.w, l(4), t16.xxxx
            utof r17.z, r11.x
            sample_l_indexable(texture2darray)(float,float,float,float) r18.z, r17.xyzx, t19.zwxy, s0, l(0.000000)
          else 
            mov r18.z, l(0)
          endif 
        else 
          mov r18.z, l(0)
        endif 
      else 
        mul r15.w, r18.w, r18.w
        mov r18.zw, r15.zzzw
      endif 
      mov r16.w, l(1.000000)
    endif 
    dp3 r11.x, r23.xyzx, r13.xyzx
    mul_sat r11.x, r11.x, cb0[5].x
    add r11.x, -r11.x, l(1.000000)
    mad r11.x, r11.x, l(0.700000), l(0.300000)
    lt r17.xyz, l(1.000000, 1.000000, 1.000000, 0.000000), r19.xyzx
    mul r11.x, r11.x, r12.w
    mov_sat r16.w, r16.w
    movc r17.xyz, r17.xyzx, r11.xxxx, r16.wwww
    mul r9.w, r9.w, r18.w
    mul r9.w, r18.z, r9.w
    mul r17.xyz, r17.xyzx, r9.wwww
    add r18.xyz, r19.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
    mad r17.xyz, r17.xyzx, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
    mul r14.xyz, r14.xyzx, r17.xyzx
    mul r16.xyz, r16.xyzx, r17.xyzx
  endif 
  iadd r2.w, r2.w, l(1)
  imin r9.w, r2.w, l(254)
  ld_structured r5.w, r9.w, l(0), g2.xxxx
endloop 
sample_l_indexable(texture2d)(float,float,float,float) r12.xyzw, r3.zwzz, t6.xyzw, s0, l(0.000000)
add r10.xzw, -r16.xxyz, r12.xxyz
mad r10.xzw, r12.wwww, r10.xxzw, r16.xxyz
sample_l_indexable(texture2d)(float,float,float,float) r12.xy, r3.xyxx, t7.xyzw, s0, l(0.000000)
add r0.x, -r12.x, r12.y
mad r12.xyz, r5.xyzx, r0.xxxx, r12.xxxx
mul r10.xzw, r10.xxzw, r12.xxyz
sample_l_indexable(texture2d)(float,float,float,float) r3.xzw, r3.zwzz, t12.xwyz, s0, l(0.000000)
add r3.xzw, r3.xxzw, r14.xxyz
ld_raw r0.x, l(0), g0.xxxx
ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.w, r6.w, l(0), t23.xxxx
and r9.w, r9.w, l(4)
movc r9.w, r9.w, l(1.000000), l(0)
add r3.y, -r3.y, l(1.000000)
mul r3.y, r3.y, r3.y
mul r11.x, r3.y, r3.y
mul r11.x, r3.y, r11.x
dp3 r12.x, r2.xyzx, r9.xyzx
mad r12.y, r11.x, l(0.287787139), l(1.000000)
div r12.y, l(1.000000, 1.000000, 1.000000, 1.000000), r12.y
mul r11.x, r11.x, r12.y
dp3 r12.z, r4.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000)
mad r12.w, r12.z, l(0.500000), l(1.000000)
mul r12.w, r12.w, r12.w
rcp r12.w, r12.w
max r3.y, r3.y, l(0.001000)
mul r13.w, r3.y, r3.y
mad r14.x, r3.y, r3.y, l(-1.000000)
mad r3.y, r3.y, l(0.500000), l(0.800000)
mul r3.y, r3.y, r3.y
mul r14.y, r3.y, l(0.500000)
mov_sat r14.z, r12.x
mad r3.y, -r3.y, l(0.500000), l(1.000000)
mad r14.z, r14.z, r3.y, r14.y
dp3 r14.w, r5.xyzx, l(0.333330, 0.333330, 0.333330, 0.000000)
mul r14.w, r14.w, l(50.000000)
min r14.w, r14.w, l(1.000000)
mad r6.xyz, -r6.xyzx, r6.xyzx, r14.wwww
mov r8.w, l(1.000000)
mov r15.xyz, r3.xzwx
mov r16.xyz, r10.xzwx
mov r14.w, r2.w
mov r15.w, r5.w
loop 
  uge r17.x, r14.w, r0.x
  breakc_nz r17.x
  ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r17.xyz, r15.w, l(0), t16.xyzx
  ieq r17.w, r17.x, l(9)
  if_nz r17.w
    mov r18.xyz, cb0[4].xyzx
    mov r17.w, r9.w
  else 
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.xyzw, r15.w, l(16), t16.xyzw
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r18.w, r15.w, l(32), t16.xxxx
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.x, r15.w, l(12), t16.xxxx
    and r20.y, r20.x, l(255)
    ushr r20.x, r20.x, l(16)
    ieq r20.z, r20.y, l(255)
    ieq r20.w, r11.z, r20.y
    ieq r21.x, r7.w, r20.y
    movc r21.y, r20.w, r10.y, r11.w
    or r20.w, r20.w, r21.x
    movc r20.w, r11.y, r20.w, l(0)
    ieq r20.xy, r6.wwww, r20.xyxx
    or r20.x, r20.x, r20.y
    and r20.x, r20.x, l(0x3f800000)
    movc r20.x, r20.w, r21.y, r20.x
    movc r20.x, r20.z, l(1.000000), r20.x
    mad r19.xyz, -r7.xyzx, r0.yyyy, r19.xyzx
    dp3 r20.y, r19.xyzx, r19.xyzx
    sqrt r20.z, r20.y
    div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), r19.w
    add r19.w, r19.w, -r20.z
    mul r19.w, r19.w, r20.w
    mul_sat r19.w, r19.w, l(5.000000)
    add r20.z, -r18.w, r20.z
    max r20.z, r20.z, l(0.000000)
    div r18.w, r20.z, r18.w
    add r18.w, r18.w, l(1.000000)
    mul r19.w, r19.w, r19.w
    mul r18.w, r18.w, r18.w
    div r18.w, r19.w, r18.w
    mul r17.w, r20.x, r18.w
    rsq r18.w, r20.y
    mul r18.xyz, r18.wwww, r19.xyzx
  endif 
  dp3 r18.w, r2.xyzx, r18.xyzx
  mov_sat r19.x, r18.w
  lt r19.y, l(0.000000), r17.w
  lt r19.z, l(0.000000), r19.x
  or r19.z, r0.z, r19.z
  and r19.y, r19.z, r19.y
  if_nz r19.y
    ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r19.y, r15.w, l(40), t16.xxxx
    lt r19.y, l(0.000000), r19.y
    ine r19.z, r17.x, l(9)
    if_nz r19.z
      ieq r19.z, r17.x, l(6)
      if_nz r19.z
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.xyzw, r15.w, l(80), t16.xyzw
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r21.xyzw, r15.w, l(96), t16.xyzw
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r22.xyzw, r15.w, l(128), t16.xyzw
        dp4 r20.x, r20.xyzw, r8.xyzw
        dp4 r20.y, r21.xyzw, r8.xyzw
        dp4 r19.z, r22.xyzw, r8.xyzw
        div r20.xy, r20.xyxx, r19.zzzz
        lt r19.z, r19.z, l(0.000000)
        mad r21.xy, r20.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
        max r19.w, |r21.y|, |r21.x|
        lt r19.w, l(1.000000), r19.w
        or r19.z, r19.w, r19.z
        if_nz r19.z
          mov r19.w, l(1.000000)
        else 
          utof r20.z, r17.y
          sample_l_indexable(texture2darray)(float,float,float,float) r19.w, r20.xyzx, t19.yzwx, s0, l(0.000000)
        endif 
      else 
        ieq r17.x, r17.x, l(7)
        lt r20.xyz, |r18.yzzy|, |r18.xxyx|
        lt r21.xyz, r18.xzyx, l(0.000000, 0.000000, 0.000000, 0.000000)
        movc r21.xyz, r21.xyzx, l(0,4,2,0), l(1,5,3,0)
        movc r20.yz, r20.yyzy, r21.xxzx, r21.yyyy
        movc r20.x, r20.x, r20.y, r20.z
        ine r17.y, r17.y, r20.x
        and r19.z, r17.y, r17.x
        mov r19.w, l(1.000000)
      endif 
    else 
      mov r19.zw, l(0,0,0,1.000000)
    endif 
    if_z r19.z
      if_nz r19.y
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.xyzw, r15.w, l(64), t16.xyzw
        mov r1.z, r17.z
        ld_indexable(texture2darray)(float,float,float,float) r21.xyzw, r1.xyzw, t4.xyzw
        dp4 r1.z, r20.xyzw, r21.xyzw
        add r1.z, -r1.z, l(1.000000)
      else 
        mov r1.z, l(1.000000)
      endif 
      lt r17.x, l(0.000000), r1.z
      if_nz r17.x
        ld_structured_indexable(structured_buffer, stride=208)(mixed,mixed,mixed,mixed) r20.xyzw, r15.w, l(48), t16.xyzw
        dp3 r17.x, r18.xyzx, r13.xyzx
        mul_sat r17.x, r17.x, cb0[5].x
        add r17.x, -r17.x, l(1.000000)
        mul r17.x, r17.x, r17.x
        mul r1.z, r1.z, r17.w
        mul r1.z, r17.x, r1.z
        mul r1.z, r1.z, r19.w
        dp3 r17.x, r18.xyzx, r9.xyzx
        mad r17.x, -r18.w, r12.x, r17.x
        ge r17.y, l(0.000000), r17.x
        max r17.z, r12.x, r18.w
        max r17.z, r17.z, l(0.000001)
        movc r17.y, r17.y, l(1.000000), r17.z
        div r17.x, r17.x, r17.y
        mad r17.x, r11.x, r17.x, r12.y
        max r17.x, r17.x, l(0.000000)
        mul r17.x, r17.x, r19.x
        mad r17.y, r12.z, l(0.500000), -r18.w
        mad r17.z, r12.z, l(0.500000), r18.w
        mul_sat r17.yz, r12.wwww, r17.yyzy
        mad r17.yzw, r4.xxyz, r17.yyyy, r17.zzzz
        mul r21.xyzw, r20.xyzw, r1.zzzz
        movc r17.xyz, r0.zzzz, r17.yzwy, r17.xxxx
        mad r15.xyz, r21.xyzx, r17.xyzx, r15.xyzx
        mad r17.xyz, -r8.xyzx, r4.wwww, r18.xyzx
        dp3 r1.z, r17.xyzx, r17.xyzx
        rsq r1.z, r1.z
        mul r17.xyz, r1.zzzz, r17.xyzx
        dp3_sat r1.z, r2.xyzx, r17.xyzx
        mul r1.z, r1.z, r1.z
        mad r1.z, r1.z, r14.x, l(1.000000)
        mul r1.z, r1.z, r1.z
        div r1.z, r13.w, r1.z
        mad r17.w, r19.x, r3.y, r14.y
        mul r17.w, r14.z, r17.w
        max r17.w, r17.w, l(0.000001)
        div r1.z, r1.z, r17.w
        dp3 r17.x, r18.xyzx, r17.xyzx
        add r17.x, -r17.x, l(1.000000)
        mul r17.y, r17.x, r17.x
        mul r17.y, r17.y, r17.y
        mul r17.x, r17.y, r17.x
        mad r17.xyz, r17.xxxx, r6.xyzx, r5.xyzx
        mul r17.xyz, r1.zzzz, r17.xyzx
        mul r17.xyz, r17.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000)
        mul r17.xyz, r17.xyzx, r21.wwww
        mul r17.xyz, r19.xxxx, r17.xyzx
        mad r16.xyz, r17.xyzx, r20.xyzx, r16.xyzx
      endif 
    endif 
  endif 
  iadd r14.w, r14.w, l(1)
  imin r1.z, r14.w, l(254)
  ld_structured r15.w, r1.z, l(0), g2.xxxx
endloop 
ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r1.xyww, t3.xyzw
mul r0.xyz, r2.xyzx, r2.xyzx
add r0.w, -r0.w, l(1.000000)
max r0.w, r0.w, l(0.000000)
mul r0.xyz, r0.wwww, r0.xyzx
lt r0.w, l(0.000000), r2.w
if_nz r0.w
  mul r0.w, r2.w, l(3.99609375)
  round_ni r0.w, r0.w
  ne r0.w, r0.w, l(1.000000)
  sqrt r2.xyz, r0.xyzx
  movc r2.xyz, r0.wwww, r2.xyzx, l(1.000000,1.000000,1.000000,0)
  mul r2.xyz, r2.xyzx, r15.xyzx
else 
  mad r16.xyz, r15.xyzx, r0.xyzx, r16.xyzx
  mov r2.xyz, l(0,0,0,0)
endif 
mov r2.w, l(0)
store_uav_typed u2.xyzw, r1.xyyy, r2.xyzw
mov r16.w, l(0)
store_uav_typed u1.xyzw, r1.xyyy, r16.xyzw
ret 
// Approximately 1485 instruction slots used
