//lights reflections 2
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//   using 3Dmigoto v1.3.11 on Wed Aug 01 19:06:35 2018
//
//
// Buffer Definitions:
//
// cbuffer cb_g_Frame
// {
//
//   struct FrameConsts
//   {
//
//       float4 m_CurrentTime;          // Offset:    0
//       bool m_DeconstructionEnabled;  // Offset:   16
//       float4 m_DeconstructionRanges; // Offset:   32
//       float4 m_DeconstructionOrigin; // Offset:   48
//       float4 m_GlobalWind;           // Offset:   64
//       float4 m_WeatherInfo;          // Offset:   80
//       float4 m_SkyVisibilityWetnessBias;// Offset:   96
//       float4 m_MainPlayerPosition;   // Offset:  112
//
//       struct SunShadowConsts
//       {
//
//           float4 m_ShadowMapSize;    // Offset:  128
//           float4 m_Offsets[4];       // Offset:  144
//           float4 m_Scales[4];        // Offset:  208
//           float4 m_SplitBlendMulAddUVAndZ[4];// Offset:  272
//           float4 m_NoiseScale;       // Offset:  336
//           float4 m_NearFar;          // Offset:  352
//           float4 m_FadeParams;       // Offset:  368
//           float4 m_CascadesRangesMax;// Offset:  384
//           float4 m_CascadesRangesMin;// Offset:  400
//           float4 m_ShadowSplitBlendUVAmount;// Offset:  416
//           float4x4 m_WorldToLightProj;// Offset:  432
//           float4x4 m_FarWorldToLightProj;// Offset:  496
//           float4x4 m_DebugShadowVisiblePixelMat;// Offset:  560
//
//       } m_SunShadows;                // Offset:  128
//
//       struct DirectLightConsts
//       {
//
//           float4 m_Direction;        // Offset:  624
//           float4 m_Color;            // Offset:  640
//
//       } m_SunLight;                  // Offset:  624
//
//       struct GISamplingConfig
//       {
//
//           float4 Params;             // Offset:  656
//           float4 WSToIndirectionScale;// Offset:  672
//           float4 WSToIndirectionBias;// Offset:  688
//           float4 InvVolumeSize;      // Offset:  704
//           float4 InvVolumeAtlasSize; // Offset:  720
//
//       } m_GIConsts;                  // Offset:  656
//       float4 m_LocalCubeMapParams[2];// Offset:  736
//
//       struct LocalCubeMapParams
//       {
//
//           float4 boxMax;             // Offset:  768
//           float4 boxMin;             // Offset:  784
//           float4 innerBlendBoxMax;   // Offset:  800
//           float4 blendBoxMax;        // Offset:  816
//           float4 worldPosition;      // Offset:  832
//           float4x4 worldToLocal;     // Offset:  848
//           uint cubeMapArrayIndex;    // Offset:  912
//           float padding;             // Offset:  916
//
//       } m_LocalCubeMaps[32];         // Offset:  768
//
//       struct VolumetricFogConsts
//       {
//
//           float4 VolumeInvTransZ;    // Offset: 5888
//           float4 VolumeTexScale;     // Offset: 5904
//           float4 VolumeTexBias;      // Offset: 5920
//           float4 SunColor;           // Offset: 5936
//           float4 SunColorByOneOverPi;// Offset: 5952
//
//       } m_VolumetricFog;             // Offset: 5888
//
//       struct SurfaceWeatherModificationConsts
//       {
//
//           float RippleScale;         // Offset: 5968
//           float2 SurfaceFloodLevelRef;// Offset: 5972
//           float4 RippleImpactSurfaceSizeInvSize;// Offset: 5984
//
//       } m_SurfaceWeatherModifications;// Offset: 5968
//
//       struct RainBlockerConsts
//       {
//
//           float4 HeightMapSize;      // Offset: 6000
//           float4 HeightMapOffset;    // Offset: 6016
//
//       } m_RainBlockerConsts;         // Offset: 6000
//       float4 m_WorldMapFogExtents;   // Offset: 6032
//       float4 m_WorldMapFogTextureSize;// Offset: 6048
//       float m_WorldMapFogMinHeight;  // Offset: 6064
//       float m_WorldMapFogMaxHeight;  // Offset: 6068
//       uint m_WorldMapFogVisibilityFlags;// Offset: 6072
//       float4 m_WorldMapDistrictColors[32];// Offset: 6080
//       float4 m_UILighting[6];        // Offset: 6592
//       float m_CharacterEffectMultiplier;// Offset: 6688
//
//   } g_Frame;                         // Offset:    0 Size:  6692
//
// }
//
// cbuffer cb_g_Pass
// {
//
//   struct PassConsts
//   {
//
//       float4 m_EyePosition;          // Offset:    0
//       float4 m_EyeDirection;         // Offset:   16
//       float4x4 m_ViewToWorld;        // Offset:   32
//       float4x4 m_WorldToView;        // Offset:   96
//       float4x4 m_ProjMatrix;         // Offset:  160
//       float4x4 m_ViewProj;           // Offset:  224
//       float4x4 m_ViewNoTranslationProj;// Offset:  288
//       float4 m_ViewTranslation;      // Offset:  352
//
//       struct ReverseProjParams
//       {
//
//           float4x4 clipXYZToViewPos; // Offset:  368
//           float4x4 clipXYZToWorldPos;// Offset:  432
//           float4 clipZToViewZ;       // Offset:  496
//
//       } reverseProjParams;           // Offset:  368
//       float4 m_VPosToUV;             // Offset:  512
//       float4 m_ViewportScaleOffset;  // Offset:  528
//       float4 m_ClipPlane;            // Offset:  544
//       float4 m_GlobalLightingScale;  // Offset:  560
//       float4 m_ViewSpaceLightingBackWS;// Offset:  576
//       float4 m_ThinGeomAAPixelScale; // Offset:  592
//
//   } g_Pass;                          // Offset:    0 Size:   608
//
// }
//
// cbuffer cb_g_DeferredLights
// {
//
//   struct DeferredLightingConsts
//   {
//
//       struct OmniLightConsts
//       {
//
//           float4 m_Position;         // Offset:    0
//           float4 m_Color;            // Offset:   16
//           float4 m_Attenuation;      // Offset:   32
//
//       } m_OmniLight;                 // Offset:    0
//
//       struct DirectLightConsts
//       {
//
//           float4 m_Direction;        // Offset:   48
//           float4 m_Color;            // Offset:   64
//
//       } m_DirectLight;               // Offset:   48
//
//       struct SpotLightConsts
//       {
//
//           float4 m_Position;         // Offset:   80
//           float4 m_Color;            // Offset:   96
//           float4 m_Attenuation;      // Offset:  112
//           float4 m_Direction;        // Offset:  128
//           float4 m_ConeAngles;       // Offset:  144
//           float4 m_PositionAtNearClip;// Offset:  160
//
//       } m_SpotLight;                 // Offset:   80
//
//       struct ProjectorShadowParams
//       {
//
//           float4x4 worldToLight[6];  // Offset:  176
//           float4 shadowMapScaleOffset[6];// Offset:  560
//           float4 noiseScale;         // Offset:  656
//
//       } m_Projections;               // Offset:  176
//
//       struct ProjectorCookieParams
//       {
//
//           float4x4 worldToCookie;    // Offset:  672
//           int4 cookieArrayIndex;     // Offset:  736
//
//       } m_Cookie;                    // Offset:  672
//       float4 m_BackgroundColor;      // Offset:  752
//       float4 m_DepthParams;          // Offset:  768
//       float4 m_EyeXAxis;             // Offset:  784
//       float4 m_EyeYAxis;             // Offset:  800
//       float4 m_EyeZAxis;             // Offset:  816
//       float4 m_VPOSToUVs_Resolve;    // Offset:  832
//       float4 m_EyeWorldPosition_Resolve;// Offset:  848
//       float4 m_WeatherExposedParams; // Offset:  864
//       float4x4 m_LightClipToWorldMat;// Offset:  880
//       float4 m_IsolateVars;          // Offset:  944
//       float m_EnvironmentSpecularScale;// Offset:  960
//
//   } g_DeferredLights;                // Offset:    0 Size:   964
//
// }
//
// cbuffer cb_g_VolumeCloudsShadow
// {
//
//   struct VolumetricCloudShadowConsts
//   {
//
//       float4 CloudScale;             // Offset:    0
//       float4 CloudTranslate;         // Offset:   16
//       float4 CloudProject;           // Offset:   32
//       float4 UseCloudShadow;         // Offset:   48
//       float4 CloudShadowMipBias;     // Offset:   64
//
//   } g_VolumeCloudsShadow;            // Offset:    0 Size:    80
//
// }
//
// Resource bind info for g_IndoorGIVolumes
// {
//
//   float4x4 $Element;                 // Offset:    0 Size:    64
//
// }
//
// Resource bind info for g_WorldGICells
// {
//
//   struct GIIndirectionCell
//   {
//
//       float3 WSToUnitScale;          // Offset:    0
//       float3 WSToUnitBias;           // Offset:   12
//       float3 UnitToVolumeScale;      // Offset:   24
//       float3 UnitToVolumeBias;       // Offset:   36
//       float NormalBiasScale;         // Offset:   48
//
//   } $Element;                        // Offset:    0 Size:    52
//
// }
//
// Resource bind info for g_SkySHConstants
// {
//
//   struct SkyLightingSH
//   {
//
//       float4 Values[7];              // Offset:    0
//       float4 SkyLightingUp;          // Offset:  112
//       float4 SkyLightingScale;       // Offset:  128
//
//   } $Element;                        // Offset:    0 Size:   144
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// s_g_WorldGIVolumeSampler          sampler      NA          NA    4        1
// s_LocalCubeMaps                   sampler      NA          NA    8        1
// s_PointClamp                      sampler      NA          NA   10        1
// s_TrilinearClamp                  sampler      NA          NA   12        1
// s_TrilinearWrap                   sampler      NA          NA   13        1
// s_LinearCmpWithBorder           sampler_c      NA          NA   15        1
// t_Albedo                          texture  float4       2dMS4    0        1
// t_Normals                         texture  float4       2dMS4    1        1
// t_DepthSurface                    texture   float       2dMS4    2        1
// t_SpecularReflectance             texture  float4       2dMS4    3        1
// t_SSAO                            texture  float4          2d    4        1
// t_LocalCubeMaps                   texture  float4   cubearray    5        1
// t_g_FarShadowMap                  texture  float4          2d    8        1
// t_Emissive                        texture  float4       2dMS4   12        1
// t_g_SkyLightingCubeTexture        texture  float4        cube   13        1
// t_g_PCSSShadowSampler             texture  float4          2d   14        1
// t_MiscProps                       texture  float4       2dMS4   15        1
// t_g_WorldGIVolume0                texture  float4          3d   20        1
// t_g_WorldGIVolume1                texture  float4          3d   21        1
// t_g_WorldGIVolume2                texture  float4          3d   22        1
// t_g_WorldGIVolume3                texture  float4          3d   23        1
// g_WorldGIIndirection              texture    uint          3d   24        1
// t_GlobalEnvMap                    texture  float4        cube   25        1
// g_IndoorGIVolumes                 texture  struct         r/o   26        1
// g_WorldGICells                    texture  struct         r/o   28        1
// g_VolumeIndex                     texture    uint       2dMS4   29        1
// g_GILocalCubeMapsSRV              texture  float4         buf   48        1
// t_g_CloudShadowTexture            texture  float4          3d   54        1
// t_BRDFLUT                         texture  float4          2d   55        1
// g_SkySHConstants                  texture  struct         r/o   56        1
// cb_g_Frame                        cbuffer      NA          NA    1        1
// cb_g_Pass                         cbuffer      NA          NA    2        1
// cb_g_DeferredLights               cbuffer      NA          NA    5        1
// cb_g_VolumeCloudsShadow           cbuffer      NA          NA   10        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                1   xyzw        1   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb1[419], dynamicIndexed
dcl_constantbuffer cb2[36], immediateIndexed
dcl_constantbuffer cb5[61], immediateIndexed
dcl_constantbuffer cb10[5], immediateIndexed
dcl_sampler s4, mode_default
dcl_sampler s8, mode_default
dcl_sampler s10, mode_default
dcl_sampler s12, mode_default
dcl_sampler s13, mode_default
dcl_sampler s15, mode_comparison
dcl_resource_texture2dms(4) (float,float,float,float) t0
dcl_resource_texture2dms(4) (float,float,float,float) t1
dcl_resource_texture2dms(4) (float,float,float,float) t2
dcl_resource_texture2dms(4) (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texturecubearray (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t8
dcl_resource_texture2dms(4) (float,float,float,float) t12
dcl_resource_texturecube (float,float,float,float) t13
dcl_resource_texture2d (float,float,float,float) t14
dcl_resource_texture2dms(4) (float,float,float,float) t15
dcl_resource_texture3d (float,float,float,float) t20
dcl_resource_texture3d (float,float,float,float) t21
dcl_resource_texture3d (float,float,float,float) t22
dcl_resource_texture3d (float,float,float,float) t23
dcl_resource_texture3d (uint,uint,uint,uint) t24
dcl_resource_texturecube (float,float,float,float) t25
dcl_resource_structured t26, 64
dcl_resource_structured t28, 52
dcl_resource_texture2dms(4) (uint,uint,uint,uint) t29
dcl_resource_buffer (float,float,float,float) t48
dcl_resource_texture3d (float,float,float,float) t54
dcl_resource_texture2d (float,float,float,float) t55
dcl_resource_structured t56, 144
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_output o1.xyzw

//insert
dcl_temps 28
dcl_resource_texture2d (float,float,float,float) t125

dcl_indexableTemp x0[2], 4
dcl_indexableTemp x1[2], 4
dcl_indexableTemp x2[2], 4
dcl_indexableTemp x3[2], 4
ftou r0.xy, v0.xyxx
mov r0.zw, l(0,0,0,0)
ldms_indexable(texture2dms)(float,float,float,float) r1.z, r0.xyww, t2.yzxw, l(0)
mul r2.xy, v0.xyxx, cb2[32].xyxx
mad r1.xy, r2.xyxx, l(2.000000, -2.000000, 0.000000, 0.000000), l(-1.000000, 1.000000, 0.000000, 0.000000)
mov r1.w, l(1.000000)




dp4 r3.x, r1.xyzw, cb2[23].xyzw
dp4 r3.y, r1.xyzw, cb2[24].xyzw
dp4 r3.z, r1.xyzw, cb2[25].xyzw
dp4 r1.x, r1.xyzw, cb2[26].xyzw
div r1.xyz, r3.xyzx, r1.xxxx
mov r1.w, l(1.000000)
dp4 r3.x, r1.xyzw, cb2[2].xyzw
dp4 r3.y, r1.xyzw, cb2[3].xyzw
dp4 r3.z, r1.xyzw, cb2[4].xyzw
ldms_indexable(texture2dms)(float,float,float,float) r1.xyzw, r0.xyww, t0.xyzw, l(0)
ldms_indexable(texture2dms)(float,float,float,float) r4.xyzw, r0.xyww, t1.xyzw, l(0)
ldms_indexable(texture2dms)(float,float,float,float) r5.xyzw, r0.xyww, t3.yxzw, l(0)
ldms_indexable(texture2dms)(float,float,float,float) r6.xyzw, r0.xyww, t15.xyzw, l(0)
mad r4.xyz, r4.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r2.z, r4.xyzx, r4.xyzx
rsq r2.z, r2.z
mul r7.xyz, r2.zzzz, r4.xyzx
max r1.w, r1.w, l(0.000010)
log r1.w, r1.w
mul r1.w, r1.w, l(2.200000)
exp r1.w, r1.w
mul r2.z, r4.w, l(19.000000)
exp r4.x, r2.z
mad r2.z, r4.x, l(0.500000), l(1.000000)
div r8.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z
mul r2.z, r6.w, l(255.000000)
ftou r2.z, r2.z
ieq r2.z, r2.z, l(255)
if_nz r2.z
  lt r2.w, l(0.000100), r5.w
  sqrt r9.xyz, r1.xyzx
  movc r1.xyz, r2.wwww, r9.xyzx, r1.xyzx
  mad r9.xyz, r6.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
  dp3 r2.w, r9.xyzx, r9.xyzx
  rsq r2.w, r2.w
  mul r9.xyz, r2.wwww, r9.xyzx
  mul r2.w, r5.y, l(19.000000)
  exp r4.y, r2.w
  mov r10.xyz, l(0,0,0,0)
  mov r11.xyz, r1.wwww
  mov r12.y, l(0)
  mov r1.w, l(1.000000)
  mov r6.xz, l(0,0,0,0)
else
  ldms_indexable(texture2dms)(float,float,float,float) r10.xyz, r0.xyww, t12.xyzw, l(0)
  mov r11.xyz, r5.yxzy
  mov r9.xyz, l(1.000000,1.000000,1.000000,0)
  mov r1.xyz, l(0,0,0,0)
  mov r12.y, r6.y
  mov r4.y, l(1.000000)
  mov r5.xz, l(1.000000,0,0,0)
endif
movc r2.w, r2.z, r5.x, l(1.000000)
sample_indexable(texture2d)(float,float,float,float) r4.z, r2.xyxx, t4.yzxw, s10
add r5.xyw, -r3.xyxz, cb2[0].xyxz
mov r3.w, l(1.000000)
dp4 r13.x, r3.xyzw, cb1[27].xyzw
dp4 r13.y, r3.xyzw, cb1[28].xyzw
dp4 r13.z, r3.xyzw, cb1[29].xyzw
mad r14.xyz, r13.xyzx, cb1[13].xyzx, cb1[9].xyzx
mad r15.xyz, r13.xyzx, cb1[14].xyzx, cb1[10].xyzx
mad r16.xyz, r13.yxzy, cb1[15].yxzy, cb1[11].yxzy
mad r13.xyz, r13.xyzx, cb1[16].xyzx, cb1[12].xyzx
mov r17.x, cb1[24].x
mov r17.z, l(1.000000)
lt r17.xyz, |r14.xyzx|, r17.xxzx
and r6.y, r17.y, r17.x
and r17.x, r17.z, r6.y
mov r18.x, cb1[24].y
mov r18.z, l(1.000000)
lt r18.xyz, |r15.xyzx|, r18.xxzx
and r6.y, r18.y, r18.x
and r17.y, r18.z, r6.y
mov r18.x, cb1[24].z
mov r18.z, l(1.000000)
lt r18.xyz, |r16.yxzy|, r18.xxzx
and r6.y, r18.y, r18.x
and r17.z, r18.z, r6.y
mov r18.x, cb1[24].w
mov r18.z, l(1.000000)
lt r18.xyz, |r13.xyzx|, r18.xxzx
and r6.y, r18.y, r18.x
and r17.w, r18.z, r6.y
or r6.yw, r17.zzzw, r17.xxxy
or r6.y, r6.w, r6.y
ieq r6.w, r6.y, l(0)
if_z r6.y
  dp4 r18.x, r3.xyzw, cb1[31].xyzw
  dp4 r18.y, r3.xyzw, cb1[32].xyzw
  dp4 r18.z, r3.xyzw, cb1[33].xyzw
  dp4 r6.y, r3.xyzw, cb1[34].xyzw
  div r18.xyz, r18.zxyz, r6.yyyy
  mad r8.zw, r18.yyyz, l(0.000000, 0.000000, 0.500000, -0.500000), l(0.000000, 0.000000, 0.500000, 0.500000)
  mov_sat r18.x, r18.x
  sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r8.zwzz, t8.xxxx, s15, r18.x
  mov r18.xyz, r18.zzzz
endif
if_z r6.w
  and r19.xyz, r17.yzwy, l(0x3f800000, 0x3f800000, 0x3f800000, 0)
  mul r20.xyzw, r19.xxxx, cb1[17].xyzw
  mul r21.xyzw, r19.yyyy, cb1[18].xyzw
  mul r19.xyzw, r19.zzzz, cb1[19].zxyw
  movc r22.x, r17.z, r16.x, r13.y
  movc r22.yzw, r17.zzzz, r19.yyzw, cb1[20].xxyw
  movc r13.xy, r17.zzzz, r16.yzyy, r13.xzxx
  movc r13.z, r17.z, r19.x, cb1[20].z
  mov r16.x, r15.y
  mov r16.yzw, r21.xxyw
  movc r16.xyzw, r17.yyyy, r16.xyzw, r22.xyzw
  mov r15.w, r21.z
  movc r13.xyz, r17.yyyy, r15.xzwx, r13.xyzx
  mov r15.x, r14.y
  mov r15.yzw, r20.xxyw
  movc r15.xyzw, r17.xxxx, r15.xyzw, r16.xyzw
  mov r14.w, r20.z
  movc r13.xyz, r17.xxxx, r14.xzwx, r13.xyzx
  sample_l_indexable(texture2d)(float,float,float,float) r2.x, r2.xyxx, t14.xyzw, s12, l(0.000000)
  max r2.y, |r15.x|, |r13.x|
  min r2.y, r2.y, l(1.000000)
  mad_sat r2.y, r2.y, r15.y, r15.z
  mad_sat r6.y, r13.y, r13.z, r15.w
  max r2.y, r2.y, r6.y
  lt r6.y, l(0.000000), r2.y
  if_nz r6.y
    ieq r13.xyzw, r17.xyzw, l(0, 0, 0, -1)
    and r6.yw, r13.zzzw, r13.xxxy
    and r6.y, r6.w, r6.y
    if_nz r6.y
      dp4 r13.x, r3.xyzw, cb1[31].xyzw
      dp4 r13.y, r3.xyzw, cb1[32].xyzw
      dp4 r13.z, r3.xyzw, cb1[33].xyzw
      dp4 r6.y, r3.xyzw, cb1[34].xyzw
      div r13.xyz, r13.zxyz, r6.yyyy
      mad r6.yw, r13.yyyz, l(0.000000, 0.500000, 0.000000, -0.500000), l(0.000000, 0.500000, 0.000000, 0.500000)
      mov_sat r13.x, r13.x
      sample_c_lz_indexable(texture2d)(float,float,float,float) r6.y, r6.ywyy, t8.xxxx, s15, r13.x
    else
      mov r6.y, r2.x
    endif
    add r6.y, -r2.x, r6.y
    mad r2.x, r2.y, r6.y, r2.x
  endif
  mov r18.xyz, r2.xxxx
endif
dp3 r2.x, r5.xywx, r5.xywx
ne r2.y, l(0.000000, 0.000000, 0.000000, 0.000000), cb10[3].x
if_nz r2.y
  mad r13.xyz, r3.xyzx, cb10[0].xyzx, cb10[1].xyzx
  mul r2.y, r13.z, cb10[2].z
  mad r13.xy, cb10[2].xyxx, r2.yyyy, r13.xyxx
  mov r13.z, cb10[1].w
  sample_l_indexable(texture3d)(float,float,float,float) r2.y, r13.xyzx, t54.xyzw, s13, cb10[4].x
  mad_sat r6.y, r2.x, cb10[3].z, cb10[3].w
  add r6.w, -cb10[3].y, l(1.000000)
  mad r6.y, r6.y, r6.w, cb10[3].y
  add r2.y, r2.y, l(-1.000000)
  mad r2.y, r6.y, r2.y, l(1.000000)
else
  mov r2.y, l(1.000000)
endif
mul r13.xyz, r2.yyyy, r18.xyzx
dp3 r6.y, cb5[3].xyzx, r9.xyzx
mad r14.xyz, -r6.yyyy, r9.xyzx, cb5[3].xyzx
dp3 r6.y, r14.xyzx, r14.xyzx
rsq r6.y, r6.y
mul r14.xyz, r6.yyyy, r14.xyzx
movc r14.xyz, r2.zzzz, r14.xyzx, r7.xyzx
rsq r2.x, r2.x
mul r15.xyz, r2.xxxx, r5.xywx
mad r5.xyw, r5.xyxw, r2.xxxx, cb5[3].xyxz
dp3 r2.x, r5.xywx, r5.xywx
rsq r2.x, r2.x
mul r5.xyw, r2.xxxx, r5.xyxw
dp3 r2.x, r14.xyzx, cb5[3].xyzx
dp3_sat r8.x, r14.xyzx, r15.xyzx
dp3 r6.y, r14.xyzx, r5.xywx
mad r12.x, r2.x, l(0.500000), l(0.500000)
mad r8.zw, r12.xxxy, l(0.000000, 0.000000, 0.968750, 0.968750), l(0.000000, 0.000000, 0.015625, 0.015625)
sample_l_indexable(texture2d)(float,float,float,float) r6.w, r8.zwzz, t55.xywz, s12, l(0.000000)
mov_sat r8.z, -r2.x
mul r6.z, r6.z, r8.z
mul r12.xyz, r13.xyzx, cb5[4].xyzx
mul r13.xyz, r6.wwww, r12.xyzx
mad r12.xyz, r6.zzzz, r12.xyzx, r13.xyzx
mul r12.xyz, r2.wwww, r12.xyzx
dp3 r6.z, r13.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000)
if_nz r2.z
  add r8.zw, r4.xxxy, l(0.000000, 0.000000, 1.000000, 1.000000)
  sqrt r8.zw, r8.zzzw
  mul r8.zw, r8.zzzw, l(0.000000, 0.000000, 0.125000, 0.125000)
  dp3 r6.w, r5.xywx, r9.xyzx
  mul r6.w, r6.w, r6.w
  mul r4.xy, r4.xyxx, r6.wwww
  add r6.w, r6.y, l(1.000000)
  div r4.xy, -r4.xyxx, r6.wwww
  mul r4.xy, r4.xyxx, l(1.442695, 1.442695, 0.000000, 0.000000)
  exp r4.xy, r4.xyxx
  mul r4.xy, r4.xyxx, r8.zwzz
  mul r9.xyz, r11.xyzx, r4.xxxx
  mul r4.x, r5.z, r4.y
  mad r9.xyz, r9.xyzx, r1.xyzx, r4.xxxx
  mul r9.xyz, r13.xyzx, r9.xyzx
else
  mov_sat r2.x, r2.x
  mov_sat r6.y, r6.y
  dp3_sat r4.x, r15.xyzx, r5.xywx
  add r4.y, r8.y, l(-1.000000)
  mul r5.x, r6.y, r6.y
  mad r4.y, r5.x, r4.y, l(1.000000)
  mul r4.y, r4.y, r4.y
  div r4.y, r8.y, r4.y
  add r5.yzw, -r11.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000)
  add r4.x, -r4.x, l(1.000000)
  mul r6.w, r4.x, r4.x
  mul r6.w, r6.w, r6.w
  mul r4.x, r4.x, r6.w
  mad r5.yzw, r5.yyzw, r4.xxxx, r11.xxyz
  add r4.x, -r8.y, l(1.000000)
  mad r6.w, r2.x, r4.x, r8.y
  sqrt r6.w, r6.w
  add r2.x, r2.x, r6.w
  div r2.x, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x
  mad r4.x, r8.x, r4.x, r8.y
  sqrt r4.x, r4.x
  add r4.x, r4.x, r8.x
  div r4.x, l(1.000000, 1.000000, 1.000000, 1.000000), r4.x
  mul r2.x, r2.x, r4.x
  mul r4.x, r2.x, r4.y
  lt r6.w, l(0.000000), r6.x
  mad r6.y, -r6.y, r6.y, l(1.000100)
  mul r8.z, r6.y, r6.y
  div r5.x, r5.x, r6.y
  div r5.x, -r5.x, r8.y
  mul r5.x, r5.x, l(1.442695)
  exp r5.x, r5.x
  mul r5.x, r5.x, l(4.000000)
  div r5.x, r5.x, r8.z
  add r5.x, r5.x, l(1.000000)
  mad r6.y, r8.y, l(4.000000), l(1.000000)
  div r5.x, r5.x, r6.y
  mad r2.x, -r4.y, r2.x, r5.x
  mad r2.x, r6.x, r2.x, r4.x
  movc r2.x, r6.w, r2.x, r4.x
  mul r5.xyz, r1.wwww, r5.yzwy
  mul r5.xyz, r4.zzzz, r5.xyzx
  mul r5.xyz, r2.xxxx, r5.xyzx
  mul r9.xyz, r5.xyzx, r13.xyzx
endif
ne r2.x, l(0.000000, 0.000000, 0.000000, 0.000000), cb5[59].x
if_nz r2.x
  dp3 r2.x, -r15.xyzx, r14.xyzx
  add r2.x, r2.x, r2.x
  mad r5.xyz, r14.xyzx, -r2.xxxx, -r15.xyzx
  mul r13.xyz, r7.xyzx, cb1[41].yyyy
  mad r13.xyz, r13.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r3.xyzx
  mad r14.xyz, r13.xyzx, cb1[42].xyzx, cb1[43].xyzx
  ftou r14.xyz, r14.xyzx
  mov r14.w, l(0)
  ld_indexable(texture3d)(uint,uint,uint,uint) r2.x, r14.xyzw, t24.xyzw
  if_nz r2.x
    ldms_indexable(texture2dms)(uint,uint,uint,uint) r0.x, r0.xyzw, t29.xyzw, l(0)
    iadd r0.y, r2.x, l(-1)
    ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r14.xyzw, r0.y, l(0), t28.xyzw
    ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r15.xyzw, r0.y, l(16), t28.zwxy
    ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r16.xyzw, r0.y, l(32), t28.xyzw
    ld_structured_indexable(structured_buffer, stride=52)(mixed,mixed,mixed,mixed) r0.y, r0.y, l(48), t28.xxxx
    mov r17.x, r14.w
    mov r17.yz, r15.zzwz
    mad r14.xyz, r13.xyzx, r14.xyzx, r17.xyzx
    mul r0.yzw, r0.yyyy, r7.xxyz
    mad_sat r0.yzw, r0.yyzw, cb1[41].yyyy, r14.xxyz
    mov r15.z, r16.x
    mad r0.yzw, r0.yyzw, r15.xxyz, r16.yyzw
    sample_l_indexable(texture3d)(float,float,float,float) r14.xyzw, r0.yzwy, t20.xyzw, s4, l(0.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r15.xyzw, r0.yzwy, t21.xyzw, s4, l(0.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r16.xyzw, r0.yzwy, t22.xyzw, s4, l(0.000000)
    sample_l_indexable(texture3d)(float,float,float,float) r17.xyzw, r0.yzwy, t23.xyzw, s4, l(0.000000)
    and r0.y, r0.x, l(0x0000ffff)
    if_nz r0.y
      and r0.y, r0.x, l(255)
      iadd r0.y, r0.y, l(-1)
      ld_structured_indexable(structured_buffer, stride=64)(mixed,mixed,mixed,mixed) r18.xyzw, r0.y, l(0), t26.xyzw
      ld_structured_indexable(structured_buffer, stride=64)(mixed,mixed,mixed,mixed) r19.xyzw, r0.y, l(16), t26.xyzw
      ld_structured_indexable(structured_buffer, stride=64)(mixed,mixed,mixed,mixed) r20.xyzw, r0.y, l(32), t26.xyzw
      mov r13.w, l(1.000000)
      dp4 r18.x, r13.xyzw, r18.xyzw
      dp4 r18.y, r13.xyzw, r19.xyzw
      dp4 r18.z, r13.xyzw, r20.xyzw
      ubfe r0.y, l(8), l(8), r0.x
      utof r0.y, r0.y
      mul r0.y, r0.y, l(0.00392156886)
      sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r18.xyzx, t20.xyzw, s4, l(0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xyzx, t21.xyzw, s4, l(0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r18.xyzx, t22.xyzw, s4, l(0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r18.xyzx, t23.xyzw, s4, l(0.000000)
      add r19.xyzw, -r14.xyzw, r19.xyzw
      mad r14.xyzw, r0.yyyy, r19.xyzw, r14.xyzw
      add r19.xyzw, -r15.xyzw, r20.xyzw
      mad r15.xyzw, r0.yyyy, r19.xyzw, r15.xyzw
      add r19.xyzw, -r16.xyzw, r21.xyzw
      mad r16.xyzw, r0.yyyy, r19.xyzw, r16.xyzw
      add r18.xyzw, -r17.xyzw, r18.xyzw
      mad r17.xyzw, r0.yyyy, r18.xyzw, r17.xyzw
    else
      mov r0.y, l(0)
    endif
    ushr r0.z, r0.x, l(16)
    if_nz r0.z
      ubfe r0.x, l(8), l(16), r0.x
      iadd r0.x, r0.x, l(-1)
      ld_structured_indexable(structured_buffer, stride=64)(mixed,mixed,mixed,mixed) r18.xyzw, r0.x, l(0), t26.xyzw
      ld_structured_indexable(structured_buffer, stride=64)(mixed,mixed,mixed,mixed) r19.xyzw, r0.x, l(16), t26.xyzw
      ld_structured_indexable(structured_buffer, stride=64)(mixed,mixed,mixed,mixed) r20.xyzw, r0.x, l(32), t26.xyzw
      mov r13.w, l(1.000000)
      dp4 r18.x, r13.xyzw, r18.xyzw
      dp4 r18.y, r13.xyzw, r19.xyzw
      dp4 r18.z, r13.xyzw, r20.xyzw
      ushr r0.x, r0.z, l(8)
      utof r0.x, r0.x
      mul r0.x, r0.x, l(0.00392156886)
      sample_l_indexable(texture3d)(float,float,float,float) r13.xyzw, r18.xyzx, t20.xyzw, s4, l(0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r18.xyzx, t21.xyzw, s4, l(0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r20.xyzw, r18.xyzx, t22.xyzw, s4, l(0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r18.xyzw, r18.xyzx, t23.xyzw, s4, l(0.000000)
      add r0.y, -r0.y, l(1.000000)
      min r0.x, r0.y, r0.x
      add r13.xyzw, -r14.xyzw, r13.xyzw
      mad r14.xyzw, r0.xxxx, r13.xyzw, r14.xyzw
      add r13.xyzw, -r15.xyzw, r19.xyzw
      mad r15.xyzw, r0.xxxx, r13.xyzw, r15.xyzw
      add r13.xyzw, -r16.xyzw, r20.xyzw
      mad r16.xyzw, r0.xxxx, r13.xyzw, r16.xyzw
      add r13.xyzw, -r17.xyzw, r18.xyzw
      mad r17.xyzw, r0.xxxx, r13.xyzw, r17.xyzw
    endif
    mul r0.x, r2.y, cb2[35].y
    mul r13.xyzw, r0.xxxx, r14.xyzw
    mul r14.xyzw, r0.xxxx, r15.xyzw
    mul r0.xyzw, r0.xxxx, r16.xyzw
    mov r7.w, l(1.000000)
    dp4 r15.x, r13.xyzw, r7.xyzw
    dp4 r15.y, r14.xyzw, r7.xyzw
    dp4 r15.z, r0.xyzw, r7.xyzw
    ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r16.xyzw, l(0), l(0), t56.xyzw
    ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r18.xyzw, l(0), l(16), t56.xyzw
    ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r19.xyzw, l(0), l(32), t56.xyzw
    ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r20.xyzw, l(0), l(48), t56.xyzw
    ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r21.xyzw, l(0), l(64), t56.xyzw
    ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r22.xyzw, l(0), l(80), t56.xyzw
    ld_structured_indexable(structured_buffer, stride=144)(mixed,mixed,mixed,mixed) r23.xyz, l(0), l(96), t56.xyzx
    dp4 r24.x, r16.xyzw, r7.xyzw
    dp4 r24.y, r18.xyzw, r7.xyzw
    dp4 r24.z, r19.xyzw, r7.xyzw
    mul r25.xyzw, r7.yzzz, r7.xyzx
    dp4 r20.x, r20.xyzw, r25.xyzw
    dp4 r20.y, r21.xyzw, r25.xyzw
    dp4 r20.z, r22.xyzw, r25.xyzw
    mul r2.y, r7.y, r7.y
    mad r2.y, r7.x, r7.x, -r2.y
    add r20.xyz, r20.xyzx, r24.xyzx
    mad r20.xyz, r23.xyzx, r2.yyyy, r20.xyzx
    max r20.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
    dp4 r2.y, r17.xyzw, r7.xyzw
    mad r15.xyz, r20.xyzx, r2.yyyy, r15.xyzx
    mov r5.w, l(1.000000)
    dp4 r2.y, r17.xyzw, r5.xyzw
    dp4 r13.x, r13.xyzw, r5.xyzw
    dp4 r13.y, r14.xyzw, r5.xyzw
    dp4 r13.z, r0.xyzw, r5.xyzw
    dp4 r0.x, r16.xyzw, r5.xyzw
    dp4 r0.y, r18.xyzw, r5.xyzw
    dp4 r0.z, r19.xyzw, r5.xyzw
    max r0.xyz, r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
    mad r0.xyz, r0.xyzx, r2.yyyy, r13.xyzx
    dp3 r0.x, r0.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000)
  else
    mov r15.xyz, l(0,0,0,0)
    mov r2.y, l(1.000000)
    mov r0.x, l(1.000000)
  endif
  ne r0.y, l(0.000000, 0.000000, 0.000000, 0.000000), cb1[41].x
  not r0.y, r0.y
  ieq r0.z, r2.x, l(0)
  or r0.y, r0.z, r0.y
  if_nz r0.y
    sample_l_indexable(texturecube)(float,float,float,float) r15.xyz, r7.xyzx, t13.xyzw, s12, l(0.000000)
    dp3 r0.x, r15.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000)
    mad r2.y, r7.z, l(0.500000), l(0.500000)
  endif
  mul r0.yzw, r4.zzzz, r15.xxyz
  mul r2.x, r1.w, r4.z
  dp3 r4.x, r0.yzwy, l(0.212600, 0.715200, 0.072200, 0.000000)
  mad r4.y, -r4.w, l(6.33333349), l(6.33333349)
  min r4.z, l(32.000000), cb1[46].x
  mov r4.w, l(0)
  mov r5.w, l(0)
  mov r6.yw, l(0,0,0,0)
  loop
    itof r7.x, r6.y
    lt r7.x, r7.x, r4.z
    ilt r7.y, r5.w, l(2)
    and r7.x, r7.y, r7.x
    mov r6.w, l(0)
    breakc_z r7.x
    imul null, r7.x, r6.y, l(10)
    dp4 r13.x, r3.xyzw, cb1[r7.x + 53].xyzw
    dp4 r13.y, r3.xyzw, cb1[r7.x + 54].xyzw
    dp4 r13.z, r3.xyzw, cb1[r7.x + 55].xyzw
    lt r7.yzw, |r13.xxyz|, cb1[r7.x + 51].xxyz
    and r7.y, r7.z, r7.y
    and r7.y, r7.w, r7.y
    if_nz r7.y
      lt r7.xyz, |r13.xyzx|, cb1[r7.x + 50].xyzx
      and r7.x, r7.y, r7.x
      and r7.x, r7.z, r7.x
      if_nz r7.x
        mov x2[0].x, r6.y
        mov x0[0].xyz, r13.xyzx
        mov x1[0].x, l(1.000000)
        mov r4.w, l(1)
        mov r6.w, l(-1)
        break
      else
        mov x2[r5.w + 0].x, r6.y
        mov x0[r5.w + 0].xyz, r13.xyzx
        iadd r5.w, r5.w, l(1)
      endif
      mov r6.w, r7.x
    else
      mov r6.w, l(0)
    endif
    iadd r6.y, r6.y, l(1)
    mov r4.w, l(0)
  endloop
  if_z r6.w
    mov r3.w, l(0.000100)
    mov r4.z, l(0.000100)
    mov r6.y, l(0)
    loop
      ige r6.w, r6.y, r5.w
      breakc_nz r6.w
      mov r6.w, x2[r6.y + 0].x
      imul null, r6.w, r6.w, l(10)
      mov r7.xyz, x0[r6.y + 0].xyzx
      add r7.xyz, |r7.xyzx|, -cb1[r6.w + 50].xyzx
      add r13.xyz, -cb1[r6.w + 50].xyzx, cb1[r6.w + 51].xyzx
      div r7.xyz, r7.xyzx, r13.xyzx
      max r6.w, r7.y, r7.x
      max r6.w, r7.z, r6.w
      mov x3[r6.y + 0].x, r6.w
      add r4.z, r4.z, r6.w
      add r6.w, r3.w, -r6.w
      add r3.w, r6.w, l(1.000000)
      iadd r6.y, r6.y, l(1)
    endloop
    ilt r6.yw, l(0, 0, 0, 1), r5.wwww
    mov r7.x, x3[0].x
    div r7.y, r7.x, r4.z
    add r7.xy, -r7.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
    div r7.x, r7.x, r3.w
    mul r7.x, r7.x, r7.y
    movc r7.x, r6.y, r7.x, r7.y
    and r7.z, r6.y, r7.x
    mov r7.w, x3[1].x
    div r4.z, r7.w, r4.z
    add r4.z, -r4.z, l(1.000000)
    add r7.w, -r7.w, l(1.000000)
    div r7.w, r7.w, r3.w
    mul r7.w, r4.z, r7.w
    movc r7.w, r6.w, r7.w, r4.z
    add r8.z, r7.w, r7.z
    movc r7.z, r6.w, r8.z, r7.z
    eq r8.z, r7.z, l(0.000000)
    div r7.z, l(1.000000, 1.000000, 1.000000, 1.000000), r7.z
    movc r7.z, r8.z, l(1.000000), r7.z
    mul r7.x, r7.z, r7.x
    movc r6.y, r6.y, r7.x, r7.y
    mul r7.x, r7.z, r7.w
    movc r4.z, r6.w, r7.x, r4.z
    mov x1[0].x, r6.y
    mov x1[1].x, r4.z
    mov r4.w, r5.w
  else
    mov r3.w, l(1.000000)
  endif
  ilt r6.yw, l(0, 0, 0, 1), r4.wwww
  if_nz r6.y
    mov r7.xyz, x0[0].xyzx
    mov r4.z, x1[0].x
    mov r5.w, x2[0].x
    imul null, r6.y, r5.w, l(10)
    ld_indexable(buffer)(float,float,float,float) r13.xyzw, r5.wwww, t48.xyzw
    mov r14.xyz, r5.xyzx
    mov r14.w, l(1.000000)
    dp4_sat r5.w, r13.xyzw, r14.xyzw
    div_sat r5.w, r0.x, r5.w
    mul r4.z, r4.z, r5.w
    dp3 r13.x, r5.xyzx, cb1[r6.y + 53].xyzx
    dp3 r13.y, r5.xyzx, cb1[r6.y + 54].xyzx
    dp3 r13.z, r5.xyzx, cb1[r6.y + 55].xyzx
    add r14.xyz, -r7.xyzx, cb1[r6.y + 48].xyzx
    div r14.xyz, r14.xyzx, r13.xyzx
    add r7.xyz, -r7.xyzx, cb1[r6.y + 49].xyzx
    div r7.xyz, r7.xyzx, r13.xyzx
    max r7.xyz, r7.xyzx, r14.xyzx
    min r5.w, r7.y, r7.x
    min r5.w, r7.z, r5.w
    mad r7.xyz, r5.xyzx, r5.wwww, r3.xyzx
    add r7.xyz, r7.xyzx, -cb1[r6.y + 52].xyzx
    dp3 r13.x, r7.xyzx, cb1[r6.y + 53].xyzx
    dp3 r13.y, r7.xyzx, cb1[r6.y + 54].xyzx
    dp3 r13.z, r7.xyzx, cb1[r6.y + 55].xyzx
    utof r13.w, cb1[r6.y + 57].x
    sample_l_indexable(texturecubearray)(float,float,float,float) r7.xyz, r13.xyzw, t5.xyzw, s8, r4.y
    mul r7.xyz, r4.zzzz, r7.xyzx
  else
    mov r7.xyz, l(0,0,0,0)
  endif
  if_nz r6.w
    mov r13.xyz, x0[1].xyzx
    mov r4.z, x1[1].x
    mov r5.w, x2[1].x
    imul null, r6.y, r5.w, l(10)
    ld_indexable(buffer)(float,float,float,float) r14.xyzw, r5.wwww, t48.xyzw
    mov r15.xyz, r5.xyzx
    mov r15.w, l(1.000000)
    dp4_sat r5.w, r14.xyzw, r15.xyzw
    div_sat r0.x, r0.x, r5.w
    mul r0.x, r0.x, r4.z
    dp3 r14.x, r5.xyzx, cb1[r6.y + 53].xyzx
    dp3 r14.y, r5.xyzx, cb1[r6.y + 54].xyzx
    dp3 r14.z, r5.xyzx, cb1[r6.y + 55].xyzx
    add r15.xyz, -r13.xyzx, cb1[r6.y + 48].xyzx
    div r15.xyz, r15.xyzx, r14.xyzx
    add r13.xyz, -r13.xyzx, cb1[r6.y + 49].xyzx
    div r13.xyz, r13.xyzx, r14.xyzx
    max r13.xyz, r13.xyzx, r15.xyzx
    min r4.z, r13.y, r13.x
    min r4.z, r13.z, r4.z
    mad r3.xyz, r5.xyzx, r4.zzzz, r3.xyzx
    add r3.xyz, r3.xyzx, -cb1[r6.y + 52].xyzx
    dp3 r13.x, r3.xyzx, cb1[r6.y + 53].xyzx
    dp3 r13.y, r3.xyzx, cb1[r6.y + 54].xyzx
    dp3 r13.z, r3.xyzx, cb1[r6.y + 55].xyzx
    utof r13.w, cb1[r6.y + 57].x
    sample_l_indexable(texturecubearray)(float,float,float,float) r3.xyz, r13.xyzw, t5.xyzw, s8, r4.y
    mad r7.xyz, r0.xxxx, r3.xyzx, r7.xyzx
  endif
  min r0.x, r3.w, l(0.900000)
  movc r3.x, r4.w, l(1.000000), l(0)
  mul r0.x, r0.x, r3.x
  mul r3.x, r0.x, l(1.11111116)
  sample_l_indexable(texturecube)(float,float,float,float) r3.yzw, r5.xyzx, t25.wxyz, s8, r4.y
  mul r3.yzw, r2.yyyy, r3.yyzw
  mad r0.x, -r0.x, l(1.11111116), l(1.000000)
  mul r4.yzw, r7.xxyz, r3.xxxx
  mad r3.xyz, r0.xxxx, r3.yzwy, r4.yzwy
  dp3 r0.x, r3.xyzx, cb1[47].xyzx
  mad r3.xyz, r3.xyzx, cb1[46].zzzz, r0.xxxx
  mad r3.w, cb1[46].w, cb1[46].y, r3.z
  mul r3.xyz, r3.xywx, cb2[35].yyyy
  mad r4.yzw, r8.xxyy, l(0.000000, 0.968750, 0.968750, 4.000000), l(0.000000, 0.015625, 0.015625, 1.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r4.yz, r4.yzyy, t55.zxyw, s12, l(0.000000)
  mad r5.xyz, r4.zzzz, r11.xyzx, r4.yyyy
  mul r7.xyz, r2.xxxx, r5.xyzx
  mul r1.xyz, r1.xyzx, r7.xyzx
  movc r1.xyz, r2.zzzz, r1.xyzx, r7.xyzx
  mul r1.xyz, r1.xyzx, r3.xyzx
  lt r0.x, l(0.000000), r6.x
  mul r2.x, r8.x, r8.x
  mad r2.y, -r8.x, r8.x, l(1.000100)
  mul r2.z, r2.y, r2.y
  div r2.x, r2.x, r2.y
  div r2.x, -r2.x, r8.y
  mul r2.x, r2.x, l(1.442695)
  exp r2.x, r2.x
  mul r2.x, r2.x, l(4.000000)
  div r2.x, r2.x, r2.z
  add r2.x, r2.x, l(1.000000)
  div r2.x, r2.x, r4.w
  mul r2.xyz, r5.xyzx, r2.xxxx
  mul r2.xyz, r1.wwww, r2.xyzx
  mul r2.xyz, r0.yzwy, r2.xyzx
  mad r2.xyz, r2.xyzx, r6.xxxx, -r1.xyzx
  mad r2.xyz, r6.xxxx, r2.xyzx, r1.xyzx
  movc r1.xyz, r0.xxxx, r2.xyzx, r1.xyzx
  mad r12.xyz, r0.yzwy, r2.wwww, r12.xyzx
  add r0.x, r4.x, r6.z
  mad r0.yzw, cb5[60].xxxx, r1.xxyz, r9.xxyz
  add r9.xyz, r10.xyzx, r0.yzwy
  dp3 r0.y, r10.xyzx, l(0.212600, 0.715200, 0.072200, 0.000000)
  add r6.z, r0.y, r0.x
endif
mul o0.xyz, r12.xyzx, cb2[35].xxxx
mul o1.xyz, r9.xyzx, cb2[35].xxxx
mul o0.w, r6.z, cb2[35].x
mov o1.w, l(1.000000)
ret
