// Hear Enemy
// Generated by Microsoft (R) HLSL Shader Compiler 9.30.9200.20546
//
//   using 3Dmigoto v1.2.57 on Fri Jun 02 13:27:29 2017
//
//
// Buffer Definitions: 
//
// cbuffer $Globals
// {
//
//   float4x4 LocalToWorld;             // Offset:    0 Size:    64 [unused]
//   float TwoSidedSign;                // Offset:   64 Size:     4
//   float3 CameraWorldPos;             // Offset:   68 Size:    12
//   float4 UniformPixelVector_0;       // Offset:   80 Size:    16
//   float4 UniformPixelVector_1;       // Offset:   96 Size:    16
//   float4 UniformPixelVector_2;       // Offset:  112 Size:    16
//   float4 UniformPixelVector_3;       // Offset:  128 Size:    16
//   float4 UniformPixelVector_4;       // Offset:  144 Size:    16
//   float4 UniformPixelVector_5;       // Offset:  160 Size:    16
//   float4 UniformPixelVector_6;       // Offset:  176 Size:    16
//   float4 UniformPixelVector_7;       // Offset:  192 Size:    16
//   float4 UniformPixelVector_8;       // Offset:  208 Size:    16
//   float4 UniformPixelVector_9;       // Offset:  224 Size:    16
//   float4 UniformPixelScalars_0;      // Offset:  240 Size:    16
//   float4 UniformPixelScalars_1;      // Offset:  256 Size:    16
//   float4x3 WorldToLocal;             // Offset:  272 Size:    48 [unused]
//   float3 MeshOrigin;                 // Offset:  320 Size:    12 [unused]
//   float3 MeshExtension;              // Offset:  336 Size:    12 [unused]
//   uint BoneIndexOffset;              // Offset:  348 Size:     4 [unused]
//   float3 LightingChannelsAndModel;   // Offset:  352 Size:    12 [unused]
//   float4 ShadowMapAtlasSize;         // Offset:  368 Size:    16 [unused]
//   float2 InvClusterScreenSize;       // Offset:  384 Size:     8 [unused]
//   float3 ReflectionShadowPlane;      // Offset:  400 Size:    12 [unused]
//   float2 ReflectionInvBufferSize;    // Offset:  416 Size:     8 [unused]
//   bool bShowLightComplexity;         // Offset:  424 Size:     4 [unused]
//   bool4 bClusteredForwardRenderingOptions;// Offset:  432 Size:    16
//   float4 WorldIncidentLighting[3];   // Offset:  448 Size:    48
//   float3 UpperSkyColor;              // Offset:  496 Size:    12 [unused]
//   float3 LowerSkyColor;              // Offset:  512 Size:    12 [unused]
//   bool bEnableSHLight;               // Offset:  524 Size:     4
//   bool bEnableSkyLight;              // Offset:  528 Size:     4 [unused]
//   bool bEnableDominantDirectionalLight;// Offset:  532 Size:     4
//   bool2 bEnableReflections;          // Offset:  536 Size:     8 [unused]
//   float4 LightPositionAndInvRadius;  // Offset:  544 Size:    16
//   float4 LightColorAndFalloffExponent;// Offset:  560 Size:    16
//   float3 DominantDirectionalLightDirection;// Offset:  576 Size:    12
//   float4 DominantDirectionalLightColor;// Offset:  592 Size:    16
//   uint3 LightingChannelsInt;         // Offset:  608 Size:    12
//   float4 AmbientColorAndSkyFactor;   // Offset:  624 Size:    16
//   float EnvironmentReflectionFactor; // Offset:  640 Size:     4 [unused]
//
// }
//
// cbuffer VSOffsetConstants
// {
//
//   float4x4 ViewProjectionMatrix;     // Offset:    0 Size:    64
//   float4x4 ViewProjectionMatrixNoTemporal;// Offset:   64 Size:    64 [unused]
//   float4 CameraPositionVS;           // Offset:  128 Size:    16 [unused]
//   float4 PreViewTranslation;         // Offset:  144 Size:    16 [unused]
//
// }
//
// cbuffer PSOffsetConstants
// {
//
//   float4 ScreenPositionScaleBias;    // Offset:    0 Size:    16 [unused]
//   float4 MinZ_MaxZRatio;             // Offset:   16 Size:    16 [unused]
//   float NvStereoEnabled;             // Offset:   32 Size:     4 [unused]
//   float MetallicOverrideParameter;   // Offset:   36 Size:     4 [unused]
//   float4 DiffuseOverrideParameter;   // Offset:   48 Size:    16 [unused]
//   float4 SpecularOverrideParameter;  // Offset:   64 Size:    16 [unused]
//   float4 CameraPositionPS;           // Offset:   80 Size:    16 [unused]
//   float4 ScreenAndTexelSize;         // Offset:   96 Size:    16 [unused]
//   float4 ViewClampRect;              // Offset:  112 Size:    16 [unused]
//   float2 ProjectionInvScale;         // Offset:  128 Size:     8 [unused]
//   float4x4 ViewProjectionMatrixPS;   // Offset:  144 Size:    64 [unused]
//   float2 SceneColorExponentBias;     // Offset:  208 Size:     8
//
// }
//
// cbuffer ClusteredLightsConstants
// {
//
//   struct FClusteredLight
//   {
//       
//       float4 PositionInvRadius;      // Offset:    0
//       float4 ColorFalloffExponent;   // Offset:   16
//       float3 Direction;              // Offset:   32
//       uint LightingChannels;         // Offset:   44
//       float2 SpotAngles;             // Offset:   48
//       bool bCastShadows;             // Offset:   56
//       float HairScatteringScale;     // Offset:   60
//       float4 SimpleLightFunctionScaleBiasFade;// Offset:   64
//       float4x4 WorldToShadowMatrix;  // Offset:   80
//       float3x3 WorldToLightMatrix;   // Offset:  144
//       float4 ShadowClipScaleBias;    // Offset:  192
//       float4 ShadowFilterScale;      // Offset:  208
//       float4 ShadowFilterBias;       // Offset:  224
//       float2 ShadowGradientParams;   // Offset:  240
//       float DiffuseIntensity;        // Offset:  248
//       float DiffuseBackfaceHack;     // Offset:  252
//       bool bUseFakeWaterReflection;  // Offset:  256
//       bool bCastNightVisionShadow;   // Offset:  260
//       float4 FaceUVScaleBias[6];     // Offset:  272
//
//   } ClusteredLights[64];             // Offset:    0 Size: 23552
//
// }
//
// cbuffer ClusteredShadowCascadesConstants
// {
//
//   struct FClusteredDominantShadow
//   {
//       
//       float4x4 WorldToShadowMatrix;  // Offset:    0
//       float4 ShadowFilterScale;      // Offset:   64
//       float4 ShadowFilterBias;       // Offset:   80
//       float4 ShadowsRectCenterAndSize;// Offset:   96
//       float2 TransitionScaleBias;    // Offset:  112
//       float2 DynamicObjectMask;      // Offset:  120
//       float3 Fading;                 // Offset:  128
//
//   } ClusteredDominantShadows[64];    // Offset:    0 Size:  9212
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// PointWrapSampler                  sampler      NA          NA    0        1
// TrilinearClampSampler             sampler      NA          NA    1        1
// PixelTexture2D_0Sampler           sampler      NA          NA    2        1
// PixelTexture2D_1Sampler           sampler      NA          NA    3        1
// PixelTexture2D_2Sampler           sampler      NA          NA    4        1
// PixelTexture2D_3Sampler           sampler      NA          NA    5        1
// PixelTexture2D_4Sampler           sampler      NA          NA    6        1
// ShadowComparisonSampler         sampler_c      NA          NA    7        1
// LightIndexListTexture             texture    uint         buf    1        1
// ClusteredTexture3D                texture   uint2          3d    2        1
// ShadowMapAtlasTexture             texture  float4          2d    3        1
// RandomAngles3DTexture             texture  float4          3d    4        1
// SimpleLightFunctionsAtlasTexture    texture  float4          2d    5        1
// PixelTexture2D_0                  texture  float4          2d    9        1
// PixelTexture2D_1                  texture  float4          2d   10        1
// PixelTexture2D_2                  texture  float4          2d   11        1
// PixelTexture2D_3                  texture  float4          2d   12        1
// PixelTexture2D_4                  texture  float4          2d   13        1
// $Globals                          cbuffer      NA          NA    0        1
// VSOffsetConstants                 cbuffer      NA          NA    1        1
// PSOffsetConstants                 cbuffer      NA          NA    2        1
// ClusteredLightsConstants          cbuffer      NA          NA    6        1
// ClusteredShadowCascadesConstants    cbuffer      NA          NA    9        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                10   xyz         0     NONE   float   xyz 
// TEXCOORD                11   xyzw        1     NONE   float   xyzw
// COLOR                    0   xyzw        2     NONE   float       
// TEXCOORD                 0   xyzw        3     NONE   float   xy  
// TEXCOORD                 4   xyzw        4     NONE   float   xyzw
// TEXCOORD                 5   xyzw        5     NONE   float   xyzw
// SV_Position              0   xyzw        6      POS   float   xy  
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[40], immediateIndexed
dcl_constantbuffer cb1[4], immediateIndexed
dcl_constantbuffer cb2[14], immediateIndexed
dcl_constantbuffer cb6[1472], dynamicIndexed
dcl_constantbuffer cb9[576], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_sampler s7, mode_comparison
dcl_resource_buffer (uint,uint,uint,uint) t1
dcl_resource_texture3d (uint,uint,uint,uint) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture3d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_texture2d (float,float,float,float) t11
dcl_resource_texture2d (float,float,float,float) t12
dcl_resource_texture2d (float,float,float,float) t13
dcl_input_ps linear centroid v0.xyz
dcl_input_ps linear centroid v1.xyzw
dcl_input_ps linear centroid v3.xy
dcl_input_ps linear v4.xyzw
dcl_input_ps linear v5.xyzw
dcl_input_ps_siv linear noperspective v6.xy, position
dcl_output o0.xyzw
//dcl_temps 22
dcl_temps 30

// 3DMigoto StereoParams:
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r30.xyzw, l(0, 0, 0, 0), t125.xyzw

dp3 r0.x, v1.xyzx, v1.xyzx
rsq r0.x, r0.x
mul r0.xyz, r0.xxxx, v1.xyzx
dp3 r0.w, v0.xyzx, v0.xyzx
rsq r0.w, r0.w



mul r1.xyz, r0.wwww, v0.xyzx
mul r2.xyz, r0.zxyz, r1.yzxy
mad r2.xyz, r0.yzxy, r1.zxyz, -r2.xyzx
mul r2.xyz, r2.xyzx, v1.wwww


dp3 r0.w, -v5.xyzx, -v5.xyzx
rsq r0.w, r0.w
mul r3.xyz, r0.wwww, -v5.xyzx
sample_b_indexable(texture2d)(float,float,float,float) r4.xyz, v3.xyxx, t9.xyzw, s2, l(0.000000)
mad r4.xyz, r4.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mul r4.xy, r4.xyxx, cb0[15].xxxx
dp3 r1.w, r4.xyzx, r4.xyzx
rsq r1.w, r1.w
mul r4.xyz, r1.wwww, r4.xyzx
sample_b_indexable(texture2d)(float,float,float,float) r5.xyz, v3.xyxx, t11.xyzw, s4, l(0.000000)
mad r5.xyz, r5.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
mul r5.xyz, r5.xyzx, cb0[8].xyzx
dp3 r1.w, r5.xyzx, r5.xyzx
rsq r1.w, r1.w
mul r5.xyz, r1.wwww, r5.xyzx
dp3 r6.x, r1.xyzx, r5.xyzx
dp3 r6.y, r2.xyzx, r5.xyzx
dp3 r6.z, r0.xyzx, r5.xyzx
dp3 r1.w, r6.xyzx, r6.xyzx
max r1.w, r1.w, l(0.010000)
sqrt r1.w, r1.w
div r5.xyz, r6.xyzx, r1.wwww
dp3 r1.x, r1.xyzx, r4.xyzx
dp3 r1.y, r2.xyzx, r4.xyzx
dp3 r1.z, r0.xyzx, r4.xyzx
dp3 r0.x, r1.xyzx, r1.xyzx
rsq r0.x, r0.x
mul r0.xyz, r0.xxxx, r1.xyzx
add r1.xyz, -cb0[5].xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mul r2.xy, v3.xyxx, cb0[7].xyxx
sample_b_indexable(texture2d)(float,float,float,float) r2.xyzw, r2.xyxx, t10.xyzw, s3, l(0.000000)
mul r2.xyz, r2.xyzx, cb0[6].xyzx
mul r1.xyz, r1.xyzx, r2.xyzx
mul r0.xyz, r0.xyzx, cb0[4].xxxx
mul r2.xyz, r5.xyzx, cb0[4].xxxx
mul r4.xyz, r1.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
mul r5.yzw, r0.yyzx, l(0.000000, -1.02332771, 1.02332771, -1.02332771)
mov r5.x, l(0.886227548)
dp4 r6.x, cb0[28].xyzw, r5.xyzw
dp4 r6.y, cb0[29].xyzw, r5.xyzw
dp4 r6.z, cb0[30].xyzw, r5.xyzw
max r5.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mul r6.x, cb0[28].x, l(0.886226952)
mul r6.y, cb0[29].x, l(0.886226952)
mul r6.z, cb0[30].x, l(0.886226952)
max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mul r6.xyz, r4.xyzx, r6.xyzx
mad r5.xyz, r4.xyzx, r5.xyzx, r6.xyzx
movc r5.xyz, cb0[32].wwww, r5.xyzx, l(0,0,0,0)
mul r6.xy, v3.xyxx, cb0[10].xyxx
sample_b_indexable(texture2d)(float,float,float,float) r1.w, r6.xyxx, t12.yzwx, s5, l(0.000000)
mad r1.w, r1.w, l(2.000000), l(-1.000000)
mad r3.w, cb0[9].x, r1.w, cb0[9].y
mad r1.w, r1.w, cb0[12].x, cb0[12].y
mul r6.xyz, cb0[11].xyzx, cb0[11].wwww
mul r7.xyz, cb0[13].xyzx, cb0[13].wwww
mul r8.xy, v3.xyxx, cb0[14].xyxx
sample_b_indexable(texture2d)(float,float,float,float) r4.w, r8.xyxx, t13.yzwx, s6, l(0.000000)
add r4.w, r4.w, l(-1.000000)
mad r4.w, cb0[16].x, r4.w, l(1.000000)
mul r7.xyz, r7.xyzx, r4.wwww
mad r8.xyz, -v5.xyzx, r0.wwww, cb0[34].xyzx
dp3 r4.w, r8.xyzx, r8.xyzx
rsq r4.w, r4.w
mul r8.xyz, r4.wwww, r8.xyzx
mad r9.xyz, r0.xyzx, r3.wwww, r2.xyzx
dp3 r3.w, r9.xyzx, r9.xyzx
rsq r3.w, r3.w
mul r9.xyz, r3.wwww, r9.xyzx
mad r2.xyz, r0.xyzx, r1.wwww, r2.xyzx
dp3 r1.w, r2.xyzx, r2.xyzx
rsq r1.w, r1.w
mul r2.xyz, r1.wwww, r2.xyzx
mul r10.xy, cb0[15].zwzz, l(-22.299999, -22.299999, 0.000000, 0.000000)
exp r10.xy, r10.xyxx
mul r10.xy, r10.xyxx, l(10000.000000, 10000.000000, 0.000000, 0.000000)
mul r6.xyz, r6.xyzx, l(0.040000, 0.040000, 0.040000, 0.000000)
dp3 r1.w, r9.xyzx, r8.xyzx
mul r1.w, r1.w, r1.w
min r1.w, r1.w, l(1.000000)
add r1.w, -r1.w, l(1.000000)
sqrt r1.w, r1.w
log r1.w, r1.w
mul r1.w, r1.w, r10.x
exp r1.w, r1.w
mul r7.xyz, r7.xyzx, l(0.040000, 0.040000, 0.040000, 0.000000)
dp3 r3.w, r2.xyzx, r8.xyzx
mul r3.w, r3.w, r3.w
min r3.w, r3.w, l(1.000000)
add r3.w, -r3.w, l(1.000000)
sqrt r3.w, r3.w
log r3.w, r3.w
mul r3.w, r3.w, r10.y
exp r3.w, r3.w
mul r8.xyz, r3.wwww, r7.xyzx
dp3 r3.w, r0.xyzx, cb0[34].xyzx
mad_sat r10.zw, r3.wwww, l(0.000000, 0.000000, 0.500000, 1.750000), l(0.000000, 0.000000, 0.500000, 0.250000)
mad r8.xyz, r6.xyzx, r1.wwww, r8.xyzx
mul r8.xyz, r10.wwww, r8.xyzx
mad r8.xyz, r4.xyzx, r10.zzzz, r8.xyzx
mad r5.xyz, r8.xyzx, cb0[35].xyzx, r5.xyzx
mad r1.xyz, r1.xyzx, cb0[39].xyzx, r5.xyzx
if_nz cb0[38].z
  add r5.xyz, v5.xyzx, cb0[4].yzwy
  movc r1.w, cb0[33].y, cb0[37].w, l(0)
  if_nz cb0[27].x
    mul r3.w, v5.y, cb1[1].w
    mad r3.w, cb1[0].w, v5.x, r3.w
    mad r3.w, cb1[2].w, v5.z, r3.w
	mad r3.w, cb1[3].w, v5.w, r3.w
    ftou r8.xy, v6.xyxx
    ushr r8.xy, r8.xyxx, l(6, 6, 0, 0)
    mul r3.w, r3.w, l(0.010000)
    log r3.w, r3.w
    mad r3.w, r3.w, l(3.11064339), l(1.000000)
    max r3.w, r3.w, l(0.000000)
    ftou r8.z, r3.w
    mov r8.w, l(0)
    ld_indexable(texture3d)(uint,uint,uint,uint) r8.xy, r8.xyzw, t2.xyzw
    and r3.w, r8.y, l(255)
    ubfe r8.yz, l(0, 8, 8, 0), l(0, 8, 16, 0), r8.yyyy
    lod r4.w, r5.xyzx, t4.y, s0
    round_ne r4.w, r4.w
    exp r4.w, -r4.w
    mul r11.xyz, r4.wwww, r5.xyzx
    sample_l_indexable(texture3d)(float,float,float,float) r10.zw, r11.xyzx, t4.zwxy, s0, l(0.000000)
  endif 
  lt r4.w, l(0.000000), r1.w
  if_nz r4.w
    if_nz cb0[27].w
      mov r11.x, r1.w
      mov r4.w, l(0)
      loop 
        uge r5.w, r4.w, r8.z
        breakc_nz r5.w
        iadd r5.w, r4.w, r8.x
        ld_indexable(buffer)(uint,uint,uint,uint) r5.w, r5.wwww, t1.yzwx
        imul null, r5.w, r5.w, l(9)
        mul r11.yzw, r5.yyyy, cb9[r5.w + 1].xxyz
        mad r11.yzw, cb9[r5.w + 0].xxyz, r5.xxxx, r11.yyzw
        mad r11.yzw, cb9[r5.w + 2].xxyz, r5.zzzz, r11.yyzw
        add r11.yzw, r11.yyzw, cb9[r5.w + 3].xxyz
        add r12.xy, r11.yzyy, -cb9[r5.w + 6].xyxx
        lt r12.xy, cb9[r5.w + 6].zwzz, |r12.xyxx|
        or r6.w, r12.y, r12.x
        if_z r6.w
          mad r6.w, r11.w, cb9[r5.w + 8].y, cb9[r5.w + 8].z
          max r6.w, r6.w, cb9[r5.w + 8].x
          min r7.w, r11.w, l(0.999000)
          mad r12.xyzw, r10.wzzw, cb9[r5.w + 4].ywxz, cb9[r5.w + 5].ywxz
          mad r13.xy, r12.zwzz, l(0.200000, 0.200000, 0.000000, 0.000000), r11.yzyy
          sample_c_lz_indexable(texture2d)(float,float,float,float) r5.w, r13.xyxx, t3.xxxx, s7, r7.w
          mad r13.xy, -r12.zwzz, l(0.200000, 0.200000, 0.000000, 0.000000), r11.yzyy
          sample_c_lz_indexable(texture2d)(float,float,float,float) r8.w, r13.xyxx, t3.xxxx, s7, r7.w
          add r5.w, r5.w, r8.w
          mul r13.xy, r12.xyxx, l(-0.380423, -0.380423, 0.000000, 0.000000)
          mad r13.xy, r12.zwzz, l(-0.123607, -0.123607, 0.000000, 0.000000), r13.xyxx
          add r13.zw, r11.yyyz, r13.xxxy
          sample_c_lz_indexable(texture2d)(float,float,float,float) r8.w, r13.zwzz, t3.xxxx, s7, r7.w
          add r5.w, r5.w, r8.w
          add r13.xy, r11.yzyy, -r13.xyxx
          sample_c_lz_indexable(texture2d)(float,float,float,float) r8.w, r13.xyxx, t3.xxxx, s7, r7.w
          add r5.w, r5.w, r8.w
          mul r13.xy, r12.xyxx, l(0.352671, 0.352671, 0.000000, 0.000000)
          mad r13.xy, r12.zwzz, l(-0.485410, -0.485410, 0.000000, 0.000000), r13.xyxx
          add r13.zw, r11.yyyz, r13.xxxy
          sample_c_lz_indexable(texture2d)(float,float,float,float) r8.w, r13.zwzz, t3.xxxx, s7, r7.w
          add r5.w, r5.w, r8.w
          add r13.xy, r11.yzyy, -r13.xyxx
          sample_c_lz_indexable(texture2d)(float,float,float,float) r8.w, r13.xyxx, t3.xxxx, s7, r7.w
          add r5.w, r5.w, r8.w
          mul r13.xyzw, r12.xyzw, l(0.470228, 0.470228, 0.309017, 0.309017)
          mad r12.zw, r12.zzzw, l(0.000000, 0.000000, 0.647214, 0.647214), r13.xxxy
          add r13.xy, r11.yzyy, r12.zwzz
          sample_c_lz_indexable(texture2d)(float,float,float,float) r8.w, r13.xyxx, t3.xxxx, s7, r7.w
          add r5.w, r5.w, r8.w
          add r12.zw, r11.yyyz, -r12.zzzw
          sample_c_lz_indexable(texture2d)(float,float,float,float) r8.w, r12.zwzz, t3.xxxx, s7, r7.w
          add r5.w, r5.w, r8.w
          mad r12.xy, r12.xyxx, l(-0.951057, -0.951057, 0.000000, 0.000000), r13.zwzz
          add r12.zw, r11.yyyz, r12.xxxy
          sample_c_lz_indexable(texture2d)(float,float,float,float) r8.w, r12.zwzz, t3.xxxx, s7, r7.w
          add r5.w, r5.w, r8.w
          add r11.yz, r11.yyzy, -r12.xxyx
          sample_c_lz_indexable(texture2d)(float,float,float,float) r7.w, r11.yzyy, t3.xxxx, s7, r7.w
          add r5.w, r5.w, r7.w
          mul r5.w, r5.w, l(0.100000)
          mul r5.w, r5.w, r5.w
          max r5.w, r6.w, r5.w
          min r11.x, r5.w, r11.x
        endif 
        iadd r4.w, r4.w, l(1)
      endloop 
      min r1.w, r1.w, r11.x
    endif 
    mul r11.xyz, r1.wwww, cb0[37].xyzx
    mad r12.xyz, -v5.xyzx, r0.wwww, cb0[36].xyzx
    dp3 r0.w, r12.xyzx, r12.xyzx
    rsq r0.w, r0.w
    mul r12.xyz, r0.wwww, r12.xyzx
    dp3 r0.w, r9.xyzx, r12.xyzx
    mul r0.w, r0.w, r0.w
    min r0.w, r0.w, l(1.000000)
    add r0.w, -r0.w, l(1.000000)
    sqrt r0.w, r0.w
    log r0.w, r0.w
    mul r0.w, r0.w, r10.x
    exp r0.w, r0.w
    dp3 r1.w, r2.xyzx, r12.xyzx
    mul r1.w, r1.w, r1.w
    min r1.w, r1.w, l(1.000000)
    add r1.w, -r1.w, l(1.000000)
    sqrt r1.w, r1.w
    log r1.w, r1.w
    mul r1.w, r1.w, r10.y
    exp r1.w, r1.w
    mul r12.xyz, r1.wwww, r7.xyzx
    dp3 r1.w, r0.xyzx, cb0[36].xyzx
    mad_sat r13.xy, r1.wwww, l(0.500000, 1.750000, 0.000000, 0.000000), l(0.500000, 0.250000, 0.000000, 0.000000)
    dp3 r1.w, cb0[36].xyzx, r3.xyzx
    mov_sat r1.w, -r1.w
    mul r1.w, r1.w, r1.w
    mul r1.w, r1.w, r1.w
    mul r1.w, r1.w, r1.w
    mul r14.xyz, r4.xyzx, r1.wwww
    mul_sat r14.xyz, r14.xyzx, cb0[15].yyyy
    mad r12.xyz, r6.xyzx, r0.wwww, r12.xyzx
    mul r12.xyz, r13.yyyy, r12.xyzx
    mad r12.xyz, r4.xyzx, r13.xxxx, r12.xyzx
    add r12.xyz, r14.xyzx, r12.xyzx
    mul r11.xyz, r11.xyzx, r12.xyzx
  else 
    mov r11.xyz, l(0,0,0,0)
  endif 
  if_nz cb0[27].x
    iadd r0.w, r8.z, r8.x
    iadd r0.w, r8.y, r0.w
    if_nz cb0[27].z
      add r1.w, cb0[16].y, cb0[16].y
      mul r8.xy, cb0[16].yyyy, l(3.000000, 4.000000, 0.000000, 0.000000)
      mov r12.yz, l(0,-1.000000,1.000000,0)
      mov r13.y, l(-1.000000)
      mov r14.xyz, r11.xyzx
      mov r4.w, r0.w
      mov r5.w, l(0)
      loop 
        uge r6.w, r5.w, r3.w
        breakc_nz r6.w
        iadd r6.w, r4.w, l(1)
        ld_indexable(buffer)(uint,uint,uint,uint) r7.w, r4.wwww, t1.yzwx
        imul null, r8.z, r7.w, l(23)
        and r8.w, cb0[38].x, cb6[r8.z + 2].w
        if_nz r8.w
          add r15.xyz, -r5.xyzx, cb6[r8.z + 0].xyzx
          mul r16.xyz, r15.xyzx, cb6[r8.z + 0].wwww
          dp3 r8.w, r16.xyzx, r16.xyzx
          min r8.w, r8.w, l(1.000000)
          add r8.w, -r8.w, l(1.000000)
          log r8.w, r8.w
          mul r8.w, r8.w, cb6[r8.z + 1].w
          exp r8.w, r8.w
          lt r9.w, l(0.000000), cb6[r8.z + 3].x
          if_nz r9.w
            dp3 r11.w, r15.xyzx, r15.xyzx
            rsq r11.w, r11.w
            mul r16.xyz, r11.wwww, r15.xyzx
            dp3 r11.w, r16.xyzx, -cb6[r8.z + 2].xyzx
            add r11.w, r11.w, -cb6[r8.z + 3].x
            mul_sat r11.w, r11.w, cb6[r8.z + 3].y
            mul r11.w, r11.w, r11.w
            mul r8.w, r8.w, r11.w
          endif 
          lt r11.w, l(0.000010), r8.w
          if_nz r11.w
            ine r11.w, l(0), cb6[r8.z + 3].z
            ieq r11.w, r11.w, l(-1)
            if_nz r11.w
              if_nz r9.w
                mul r16.xyzw, r5.yyyy, cb6[r8.z + 6].xyzw
                mad r16.xyzw, cb6[r8.z + 5].xyzw, r5.xxxx, r16.xyzw
                mad r16.xyzw, cb6[r8.z + 7].xyzw, r5.zzzz, r16.xyzw
                add r16.xyzw, r16.zxyw, cb6[r8.z + 8].zxyw
                div r13.zw, r16.yyyz, r16.wwww
              else 
                max r9.w, |r15.z|, |r15.y|
                max r9.w, r9.w, |r15.x|
                lt r16.yzw, l(0.000000, 0.000000, 0.000000, 0.000000), -r15.xxyz
                lt r17.xyz, -r15.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
                iadd r11.w, r16.y, -r17.x
                itof r12.x, r11.w
                mul r18.xy, r12.xyxx, -r15.zyzz
                eq r19.xyz, -r15.xyzx, |r15.xyzx|
                eq r17.xw, |r15.xxxy|, r9.wwww
                iadd r16.yz, -r16.zzwz, r17.yyzy
                itof r12.w, r16.y
                mul r20.xy, r12.zwzz, -r15.xzxx
                itof r13.x, r16.z
                mul r21.xy, r13.xyxx, -r15.xyxx
                movc r16.yzw, r19.xxyz, l(0,0,2,4), l(0,1,3,5)
                mov r20.z, r16.z
                mov r21.z, r16.w
                movc r17.yzw, r17.wwww, r20.xxyz, r21.xxyz
                mov r18.z, r16.y
                movc r16.yzw, r17.xxxx, r18.xxyz, r17.yyzw
                div r12.xw, r16.yyyz, r9.wwww
                imad r7.w, r7.w, l(23), r16.w
                mad r13.zw, r12.xxxw, cb6[r7.w + 17].xxxy, cb6[r7.w + 17].zzzw
                mul r16.x, r9.w, cb6[r8.z + 0].w
              endif 
              mad r17.xyzw, r10.wzzw, cb6[r8.z + 13].ywxz, cb6[r8.z + 14].ywxz
              mad r12.xw, r17.zzzw, l(0.200000, 0.000000, 0.000000, 0.200000), r13.zzzw
              sample_c_lz_indexable(texture2d)(float,float,float,float) r7.w, r12.xwxx, t3.xxxx, s7, r16.x
              mad r12.xw, -r17.zzzw, l(0.200000, 0.000000, 0.000000, 0.200000), r13.zzzw
              sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r12.xwxx, t3.xxxx, s7, r16.x
              add r7.w, r7.w, r9.w
              mul r12.xw, r17.xxxy, l(-0.380423, 0.000000, 0.000000, -0.380423)
              mad r12.xw, r17.zzzw, l(-0.123607, 0.000000, 0.000000, -0.123607), r12.xxxw
              add r16.yz, r12.xxwx, r13.zzwz
              mad r9.w, -cb0[16].y, cb6[r8.z + 3].w, r16.x
              sample_c_lz_indexable(texture2d)(float,float,float,float) r11.w, r16.yzyy, t3.xxxx, s7, r9.w
              add r7.w, r7.w, r11.w
              add r12.xw, -r12.xxxw, r13.zzzw
              sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r12.xwxx, t3.xxxx, s7, r9.w
              add r7.w, r7.w, r9.w
              mul r12.xw, r17.xxxy, l(0.352671, 0.000000, 0.000000, 0.352671)
              mad r12.xw, r17.zzzw, l(-0.485410, 0.000000, 0.000000, -0.485410), r12.xxxw
              add r16.yz, r12.xxwx, r13.zzwz
              mad r9.w, -r1.w, cb6[r8.z + 3].w, r16.x
              sample_c_lz_indexable(texture2d)(float,float,float,float) r11.w, r16.yzyy, t3.xxxx, s7, r9.w
              add r7.w, r7.w, r11.w
              add r12.xw, -r12.xxxw, r13.zzzw
              sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r12.xwxx, t3.xxxx, s7, r9.w
              add r7.w, r7.w, r9.w
              mul r18.xyzw, r17.xyzw, l(0.470228, 0.470228, 0.309017, 0.309017)
              mad r12.xw, r17.zzzw, l(0.647214, 0.000000, 0.000000, 0.647214), r18.xxxy
              add r16.yz, r12.xxwx, r13.zzwz
              mad r16.xw, -r8.xxxy, cb6[r8.z + 3].wwww, r16.xxxx
              sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r16.yzyy, t3.xxxx, s7, r16.x
              add r7.w, r7.w, r9.w
              add r12.xw, -r12.xxxw, r13.zzzw
              sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r12.xwxx, t3.xxxx, s7, r16.x
              add r7.w, r7.w, r9.w
              mad r12.xw, r17.xxxy, l(-0.951057, 0.000000, 0.000000, -0.951057), r18.zzzw
              add r16.xy, r12.xwxx, r13.zwzz
              sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r16.xyxx, t3.xxxx, s7, r16.w
              add r7.w, r7.w, r9.w
              add r12.xw, -r12.xxxw, r13.zzzw
              sample_c_lz_indexable(texture2d)(float,float,float,float) r9.w, r12.xwxx, t3.xxxx, s7, r16.w
              add r7.w, r7.w, r9.w
              mul r7.w, r7.w, l(0.100000)
              mul r7.w, r7.w, r7.w
              mul r8.w, r7.w, r8.w
            else 
              mov r7.w, l(1.000000)
            endif 
            mul r13.xzw, r8.wwww, cb6[r8.z + 1].xxyz
            ne r8.w, l(0.000000), cb6[r8.z + 4].x
            if_nz r8.w
              mul r16.xyz, -r15.yyyy, cb6[r8.z + 10].xyzx
              mad r16.xyz, cb6[r8.z + 9].xyzx, -r15.xxxx, r16.xyzx
              mad r16.xyz, cb6[r8.z + 11].xyzx, -r15.zzzz, r16.xyzx
              div r12.xw, r16.xxxy, r16.zzzz
              mad r12.xw, r12.xxxw, cb6[r8.z + 4].xxxx, cb6[r8.z + 4].yyyz
              mov r12.xw, |r12.xxxw|
              mul_sat r8.z, r16.z, cb6[r8.z + 4].w
              sample_l_indexable(texture2d)(float,float,float,float) r16.xyz, r12.xwxx, t5.xyzw, s1, l(0.000000)
              add r17.xyz, -r16.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
              mad r16.xyz, r8.zzzz, r17.xyzx, r16.xyzx
              mul r13.xzw, r13.xxzw, r16.xxyz
            endif 
            dp3 r8.z, r15.xyzx, r15.xyzx
            rsq r8.z, r8.z
            mul r16.xyz, r8.zzzz, r15.xyzx
            mul r7.w, r7.w, cb0[15].y
            mad r15.xyz, r15.xyzx, r8.zzzz, r3.xyzx
            dp3 r8.z, r15.xyzx, r15.xyzx
            rsq r8.z, r8.z
            mul r15.xyz, r8.zzzz, r15.xyzx
            dp3 r8.z, r9.xyzx, r15.xyzx
            mul r8.z, r8.z, r8.z
            min r8.z, r8.z, l(1.000000)
            add r8.z, -r8.z, l(1.000000)
            sqrt r8.z, r8.z
            log r8.z, r8.z
            mul r8.z, r8.z, r10.x
            exp r8.z, r8.z
            dp3 r8.w, r2.xyzx, r15.xyzx
            mul r8.w, r8.w, r8.w
            min r8.w, r8.w, l(1.000000)
            add r8.w, -r8.w, l(1.000000)
            sqrt r8.w, r8.w
            log r8.w, r8.w
            mul r8.w, r8.w, r10.y
            exp r8.w, r8.w
            mul r15.xyz, r7.xyzx, r8.wwww
            dp3 r8.w, r0.xyzx, r16.xyzx
            mad_sat r12.xw, r8.wwww, l(0.500000, 0.000000, 0.000000, 1.750000), l(0.500000, 0.000000, 0.000000, 0.250000)
            dp3 r8.w, r16.xyzx, r3.xyzx
            mov_sat r8.w, -r8.w
            mul r8.w, r8.w, r8.w
            mul r8.w, r8.w, r8.w
            mul r8.w, r8.w, r8.w
            mul r16.xyz, r4.xyzx, r8.wwww
            mul_sat r16.xyz, r7.wwww, r16.xyzx
            mad r15.xyz, r6.xyzx, r8.zzzz, r15.xyzx
            mul r15.xyz, r12.wwww, r15.xyzx
            mad r15.xyz, r4.xyzx, r12.xxxx, r15.xyzx
            add r15.xyz, r16.xyzx, r15.xyzx
            mad r14.xyz, r15.xyzx, r13.xzwx, r14.xyzx
          endif 
        endif 
        iadd r5.w, r5.w, l(1)
        mov r4.w, r6.w
      endloop 
      mov r11.xyz, r14.xyzx
    endif 
  endif 
  add r1.xyz, r1.xyzx, r11.xyzx
endif 
mul r0.xyz, cb0[5].xyzx, cb2[13].xxxx
mad r0.xyz, r1.xyzx, cb2[13].xxxx, r0.xyzx
mad o0.xyz, r0.xyzx, v4.wwww, v4.xyzx
mov o0.w, r2.w
ret 
// Approximately 433 instruction slots used
