//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4x4 g_cameraToReflectionTexture;
//   float4 g_cubeLightGroundColor;
//   float4x4 g_cubeLightRotation;
//   float4 g_cubeLightSkyColor;
//   float4 g_debugColor;
//   float g_dissolveAlpha;
//   bool g_dissolveInverted;
//   float4 g_nearFarDepths;
//   float4 g_noiseTextureSize;
//   float4 g_pointLightFactors;
//   float4 g_precipParams;
//   float4x4 g_precipViewProj;
//   float4x4 g_previousProjection;
//   float4x4 g_previousView;
//   float4 g_reflectionPlane;
//   float g_reflectionPlaneAlpha;
//   float4 g_reflectionTextureSize;
//   float4 g_sceneTextureSize;
//   float4 g_sunColor;
//   float4 g_sunDirection;
//   float g_time;
//   float4x4 g_view;
//   float4x4 g_viewInverse;
//   sampler2D noiseSampler;
//   sampler2D normalSampler;
//   sampler2D precipHeightSampler;
//   sampler2D previousSceneSampler;
//   sampler3D rainSplashDiffuseSampler;
//   sampler3D rainSplashNormalSampler;
//   sampler2D reflectionSampler;
//   sampler2D sceneSampler0;
//   samplerCUBE specularCubeEndSampler;
//   samplerCUBE specularCubeStartSampler;
//   sampler2D specularSampler;
//
//
// Registers:
//
//   Name                        Reg   Size
//   --------------------------- ----- ----
//   g_previousProjection        c0       4
//   g_cameraToReflectionTexture c4       4
//   g_precipViewProj            c8       4
//   g_view                      c12      3
//   g_viewInverse               c15      3
//   g_cubeLightRotation         c18      3
//   g_previousView              c21      3
//   g_sceneTextureSize          c24      1
//   g_noiseTextureSize          c25      1
//   g_time                      c26      1
//   g_nearFarDepths             c27      1
//   g_reflectionPlane           c28      1
//   g_debugColor                c29      1
//   g_dissolveAlpha             c30      1
//   g_dissolveInverted          c31      1
//   g_sunDirection              c32      1
//   g_sunColor                  c33      1
//   g_cubeLightSkyColor         c34      1
//   g_cubeLightGroundColor      c35      1
//   g_pointLightFactors         c36      1
//   g_reflectionTextureSize     c37      1
//   g_reflectionPlaneAlpha      c38      1
//   g_precipParams              c39      1
//   normalSampler               s0       1
//   specularSampler             s1       1
//   noiseSampler                s2       1
//   sceneSampler0               s3       1
//   previousSceneSampler        s4       1
//   reflectionSampler           s5       1
//   specularCubeStartSampler    s6       1
//   specularCubeEndSampler      s7       1
//   precipHeightSampler         s8       1
//   rainSplashNormalSampler     s9       1
//   rainSplashDiffuseSampler    s10      1
//
//
// Default values:
//
//   g_previousProjection
//     c0   = { 0, 0, 0, 0 };
//     c1   = { 0, 0, 0, 0 };
//     c2   = { 0, 0, 0, 0 };
//     c3   = { 0, 0, 0, 0 };
//
//   g_cameraToReflectionTexture
//     c4   = { 0, 0, 0, 0 };
//     c5   = { 0, 0, 0, 0 };
//     c6   = { 0, 0, 0, 0 };
//     c7   = { 0, 0, 0, 0 };
//
//   g_precipViewProj
//     c8   = { 0, 0, 0, 0 };
//     c9   = { 0, 0, 0, 0 };
//     c10  = { 0, 0, 0, 0 };
//     c11  = { 0, 0, 0, 0 };
//
//   g_view
//     c12  = { 0, 0, 0, 0 };
//     c13  = { 0, 0, 0, 0 };
//     c14  = { 0, 0, 0, 0 };
//
//   g_viewInverse
//     c15  = { 0, 0, 0, 0 };
//     c16  = { 0, 0, 0, 0 };
//     c17  = { 0, 0, 0, 0 };
//
//   g_cubeLightRotation
//     c18  = { 0, 0, 0, 0 };
//     c19  = { 0, 0, 0, 0 };
//     c20  = { 0, 0, 0, 0 };
//
//   g_previousView
//     c21  = { 0, 0, 0, 0 };
//     c22  = { 0, 0, 0, 0 };
//     c23  = { 0, 0, 0, 0 };
//
//   g_sceneTextureSize
//     c24  = { 0, 0, 0, 0 };
//
//   g_noiseTextureSize
//     c25  = { 0, 0, 0, 0 };
//
//   g_time
//     c26  = { 0, 0, 0, 0 };
//
//   g_nearFarDepths
//     c27  = { 0, 0, 0, 0 };
//
//   g_reflectionPlane
//     c28  = { 0, 0, 0, 0 };
//
//   g_debugColor
//     c29  = { 0, 0, 0, 0 };
//
//   g_dissolveAlpha
//     c30  = { 0, 0, 0, 0 };
//
//   g_dissolveInverted
//     c31  = { 0, 0, 0, 0 };
//
//   g_sunDirection
//     c32  = { 0, 0, 0, 0 };
//
//   g_sunColor
//     c33  = { 0, 0, 0, 0 };
//
//   g_cubeLightSkyColor
//     c34  = { 0, 0, 0, 0 };
//
//   g_cubeLightGroundColor
//     c35  = { 0, 0, 0, 0 };
//
//   g_pointLightFactors
//     c36  = { 0, 0, 0, 0 };
//
//   g_reflectionTextureSize
//     c37  = { 0, 0, 0, 0 };
//
//   g_reflectionPlaneAlpha
//     c38  = { 0, 0, 0, 0 };
//
//   g_precipParams
//     c39  = { 0, 0, 0, 0 };
//

    ps_3_0
    def c40, -1.99999995e-005, -0.200000003, 1.25, 9.99999997e-007
    def c41, 0, 0.99000001, 0.5, -7.21347523
    def c42, 1, 2, -1, 3.33333325
    def c43, 50, 1, 0, 0.00999999978
    def c44, -2, 3, 0.699999988, 10000
    def c45, 1, -1, 4, 65
    def c46, 0.0250000004, 6, 1, 0.125
    def c47, 0.875, 6.75, 0, 0
    def c48, 0.5, -0.5, 1.5, 0.25
def c220, 1, 0.5, 0.0625, 0.5
dcl_2d s15
    dcl_texcoord v0.xy
    dcl_texcoord1 v1.xyz
    dcl_texcoord2 v2.xyz
    dcl_texcoord3 v3.xy
    dcl_texcoord4 v4.xyz
    dcl_texcoord5 v5.xyz
    dcl_texcoord6 v6.xyz
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    dcl_cube s6
    dcl_cube s7
    dcl_2d s8
    dcl_volume s9
    dcl_volume s10
    mul r0.xy, c25.zwzw, vPos
    mov r0.zw, c41.x
    texldl r0, r0, s2
    add r0.y, -r0.x, c41.y
    cmp r0.x, -c31.x, r0.x, r0.y
    add r0, -r0.x, c30.x
    texkill r0
    dp3 r0.x, v1, v1
    rsq r0.x, r0.x
    mul r0.yzw, r0.x, v1.xxyz
    add r1.xy, c41.z, vPos
    mul r1.xy, r1, c24.zwzw
    mov r1.zw, c41.x
    texldl r1, r1, s3
    add r2.x, r1.w, v4.z
    max r1.w, r2.x, c41.x
    mul r2.x, r1.w, c41.w
    exp r2.x, r2.x
    add r2.x, -r2.x, c42.x
    texld r3, v0, s0
    texld r4, v3, s0
    add r2.yz, -r4.xwyw, c42.x
    mul r2.w, r3.z, r3.z
    mad r3.yz, r3.xwyw, c42.y, c42.z
    mul r3.w, r4.z, r4.z
    mad r2.yz, r2, c42.y, r3
    mul r3.x, r3.x, r4.x
    mul r3.y, r3.w, c41.z
    mad r2.w, r2.w, c41.z, r3.y
    add r3.y, -r2.w, c42.x
    mad r2.w, r3.y, c41.z, r2.w
    add r2.yz, r2, c42.z
    mul r3.yzw, r2.y, -v5.xxyz
    mad r3.yzw, v2.xxyz, c42.w, r3
    mad r3.yzw, r2.z, -v6.xxyz, r3
    nrm r4.xyz, r3.yzww
    mul r2.x, r2.x, c43.x
    mad r2.xy, r2.x, r2.yzzw, vPos
    add r2.xy, r2, c41.z
    mul r5.xy, r2, c24.zwzw
    mov r5.zw, c41.x
    texldl r5, r5, s3
    add r5.w, r5.w, v4.z
    cmp r1, r5.w, r5, r1
    mul r1.w, r1.w, c41.w
    exp r1.w, r1.w
    add r1.w, -r1.w, c42.x
    mad r5, v4.xyzx, c43.yyyz, c43.zzzy
    dp4 r6.x, r5, c15
    dp4 r7.y, r5, c16
    dp4 r6.z, r5, c17
    add r6.y, r7.y, c43.w
    mov r6.w, c42.x
    dp4 r2.x, r6, c8
    dp4 r2.y, r6, c9
    dp4 r2.z, r6, c10
    dp4 r3.y, r6, c11
    rcp r3.y, r3.y
    mul r3.yzw, r2.xzxy, r3.y
    mov_sat r3.y, r3.y
    add r8.z, r3.y, c40.x
    mul r8.xyw, r3.zwzz, c43.yyzz
    texldl r8, r8, s8
    add r2.xy, r2, -c41.z
    mad r2.xy, r2_abs, -c42.y, c42.x
    max r3.yz, r2.xxyw, c41.x
    min r2.x, r3.z, r3.y
    rsq r2.x, r2.x
    rcp r2.x, r2.x
    mul r2.x, r2.x, r8.x
    mov_sat r2.y, r4.y
    add r2.y, r2.y, c40.y
    mul r2.y, r2.y, c40.z
    max r3.y, r2.y, c41.x
    mad r2.y, r3.y, c44.x, c44.y
    mul r2.z, r3.y, r3.y
    mul r2.y, r2.z, r2.y
    mul r2.x, r2.y, r2.x
    mul r2.x, r2.x, c39.z
    mul r8.xy, r6.xzzw, c41.z
    mov r8.z, c26.x
    texld r9, r8, s9
    add r3.yzw, r9.xxyz, -c41.z
    mad r3.yzw, r3, r2.x, r4.xxyz
    dp3 r2.y, r3.yzww, r3.yzww
    rsq r2.y, r2.y
    mul r4.xyz, r2.y, r3.yzww
    texld r8, r8, s10
    mul r8.xyz, r2.x, r8
    texld r9, c41.z, s1
    add r2.x, -r9.w, c42.x
    mad r2.x, r2.x, c41.z, r9.w
    dp3 r2.z, -r0.yzww, r4
    add r2.z, r2.z, r2.z
    mad r10.xyz, r4, -r2.z, -r0.yzww
    mad r2.z, r10.y, c41.z, c41.z
    mov r11, c34
    lrp r12.xyz, r2.z, r11, c35
    dp3 r13.x, r10, c18
    dp3 r13.y, r10, c19
    dp3 r13.z, r10, c20
    add r13.w, -r2.x, c42.x
    mul r13, r13, c45.xxyz
    texldl r14, r13, s6
    mul r11.xyz, r12, r14
    if_lt c40.w, r11.w
      texldl r13, r13, s7
      mad r12.xyz, r13, r12, -r11
      mad r11.xyz, c34.w, r12, r11
    endif
    mov r7.xzw, r6
    dp4 r6.x, r7, c21
    dp4 r6.y, r7, c22
    dp4 r6.z, r7, c23
    mad r3.yzw, r3, -r2.y, c43.xzyz
    mad r3.yzw, r3, c44.z, r4.xxyz
    nrm r7.xyz, r3.yzww
    dp3 r2.y, -r0.yzww, r7
    add r2.y, r2.y, r2.y
    mad r3.yzw, r7.xxyz, -r2.y, -r0
    dp3 r7.x, r3.yzww, c21
    dp3 r7.y, r3.yzww, c22
    dp3 r7.z, r3.yzww, c23
    add r2.y, r6.z, -v4.z
    add r2.z, r6.z, c44.w
    cmp r2.z, r2.z, c43.z, c43.y
    cmp r3.y, -r7.z, c43.z, c43.y
    add r2.z, r2.z, r3.y
    rcp r3.y, r7.z
    mul r3.yzw, r3.y, r7.xxyz
    add r2.y, r2.y, c45.w
    mad r6.xyz, r3.yzww, -r2.y, r6
    mov r6.w, c42.x
    dp4 r3.y, r6, c0
    dp4 r3.z, r6, c1
    dp4 r2.y, r6, c3
    mul r3.yz, r3, c48.xxyw
    rcp r2.y, r2.y
    mad r3.yz, r3, r2.y, c41.z
    mov r6.z, c41.z
    mad r3.yz, c24.xzww, r6.z, r3
    add r6.xy, r3.zyzw, -c41.z
    add r6.xy, -r6_abs, c48.xzzw
    cmp r6.xy, r6, c43.z, c43.y
    add r2.y, r6.y, r6.x
    cmp r6.yz, -r2.y, r3, c41.x
    texld r7, r6.yzzw, s4
    mad r3.y, v4.z, c41.z, r7.w
    add r3.z, -r7.w, c44.w
    cmp r3.yz, r3, c43.z, c43.y
    add r3.y, r3.z, r3.y
    add r3.z, -r6.y, c41.z
    cmp r3.z, r3.z, c43.z, c43.y
    add r3.z, -r6.y, r3.z
    mad r6.x, r3.z, c48.w, r6.y
    texld r12, r6.xzzw, s4
    cmp r7, -r3.y, r7, r12
    add_sat r3.y, r7.w, -c27.y
    add r3.z, r6.z, -c41.z
    add_sat r3.z, r3_abs.z, r3_abs.z
    mul r3.z, r3.z, r3.z
    mul r3.z, r3.z, r3.z
    mad r7.w, r3.z, -r3.z, c42.x
    cmp r6, -r2.y, r7, c41.x
    cmp r6, -r2.z, r6, c41.x
    dp3 r3.z, v4, v4
    rsq r3.z, r3.z
    rcp r3.z, r3.z
    mul r3.z, r0.z, r3.z
    mul_sat r3.z, r3.z, c46.x
    mul r3.z, r3.z, r3.z
    mul r3.z, r3.z, r3.z
    mad r3.z, r3.z, -r3.z, c42.x
    mul r3.z, r3.z, r6.w
    lrp r7.xyz, r3.z, r6, r11
    add r3.y, r3.y, c42.z
    mad r3.y, r3.z, r3.y, c42.x
    cmp r2.y, -r2.y, r3.y, c42.x
    cmp r2.y, -r2.z, r2.y, c42.x
    dp3 r6.x, r10, c12
    dp3 r6.y, r10, c13
    dp3 r6.z, r10, c14
    dp3 r2.z, c28, r6
    add r3.y, r2.z, r2.z
    mul r3.yzw, r3.y, c28.xxyz
    cmp r3.yzw, r2.z, -c41.x, -r3
    add r3.yzw, r3, r6.xxyz
	
texldl r24, c220.z, s15
add r24.y, -r5.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c190.x
mul r24.x, r24.x, r25.x 
add r5.x, r5.x, r24.x

    dp4 r2.z, r5, c4
    dp4 r4.w, r5, c5
    dp4 r6.x, r5, c7
    rcp r6.x, r6.x
    mul r10.x, r2.z, r6.x
    mad r10.z, r4.w, r6.x, -c37.w
    texld r6, r10.xzzw, s5
    add r2.z, r6.w, v4.z
    rcp r4.w, -v4.z
    dp2add_sat r2.z, r2.z, r4.w, c41.x
    rsq r4.w, -v4.z
    rcp r4.w, r4.w
    mul r2.z, r2.z, r4.w
    mad r6.xyz, r2.z, r3.yzww, v4
    mov r6.w, c42.x
	
texldl r24, c220.z, s15
add r24.y, -r6.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c190.x
mul r24.x, r24.x, r25.x 
add r6.x, r6.x, r24.x

    dp4 r2.z, r6, c4
    dp4 r3.y, r6, c5
    dp4 r3.z, r6, c7
    rcp r3.z, r3.z
    mul r6.x, r2.z, r3.z
    mad r6.z, r3.y, r3.z, -c37.w
    texld r6, r6.xzzw, s5
    add_sat r2.z, r6.w, -c27.y
    dp4 r3.y, c28, r5
    add r3.y, -r3_abs.y, c42.x
    mul r3.z, r3.y, c38.x
    cmp r3.y, r3.y, r3.z, c41.x
    lrp r5.xyz, r3.y, r6, r7
    lrp r4.w, r3.y, r2.z, r2.y
    mul r2.x, r2.x, c36.y
    mul r2.x, r2.x, -c41.w
    exp r2.x, r2.x
    mul r2.y, r2.x, c46.y
    dp3_sat r2.z, r4, c32
    mad r3.yzw, v1.xxyz, r0.x, c32.xxyz
    nrm r6.xyz, r3.yzww
    dp3_sat r0.x, r4, r6
    pow r3.y, r0.x, r2.y
    dp3 r0.x, r4, r0.yzww
    max r3.z, r2.z, r0.x
    dp3 r0.y, r6, c32
    mad r0.y, r3.z, r0.y, c40.w
    rcp r0.y, r0.y
    mad r0.z, r2.x, c46.y, c46.z
    mul r0.z, r3.y, r0.z
    mul r0.y, r0.y, r0.z
    mul r0.y, r2.z, r0.y
    mul r0.y, r0.y, c46.w
    mul r0.yzw, r0.y, c33.xxyz
    mul r0.yzw, r4.w, r0
    mad r0.yzw, r0, c36.x, r5.xxyz
    mul r2.x, r1.w, r1.w
    mul r2.y, r2.x, r2.x
    mov_sat r0.x, r0.x
    add r0.x, -r0.x, c42.x
    mul r2.z, r0.x, r0.x
    mul r2.yz, r2, r2
    mul r0.x, r0.x, r2.z
    lrp r3.yzw, r0.x, r2.w, r9.xxyz
    mul r2.yzw, r2.y, r3
    lrp r3.yzw, r2, r0, r1.xxyz
    mov_sat r0.x, c32.y
    pow r1.x, r0.x, c48.z
    mul r0.x, r1.x, c40.z
    abs r0.y, c18.y
    abs r0.z, c19.y
    max r1.x, r0.y, r0.z
    abs r0.w, c20.y
    max r2.y, r1.x, r0.w
    add r0.y, r0.y, -r2.y
    mov r1.y, c18.y
    mul r1.x, r1.y, c47.x
    cmp r4.x, -r0_abs.y, c18.y, r1.x
    add r0.y, r0.z, -r2.y
    mov r1.y, c19.y
    mul r0.z, r1.y, c47.x
    cmp r4.y, -r0_abs.y, c19.y, r0.z
    add r0.y, r0.w, -r2.y
    mov r1.y, c20.y
    mul r0.z, r1.y, c47.x
    cmp r4.z, -r0_abs.y, c20.y, r0.z
    mov r4.w, c45.z
    mul r4, r4, c42.xxzx
    texldl r5, r4, s6
    mul r0.yzw, r5.xxyz, c34.xxyz
    if_lt c40.w, r11.w
      texldl r4, r4, s7
      mad r1.xyz, r4, c34, -r0.yzww
      mad r0.yzw, c34.w, r1.xxyz, r0
    endif
    mad r0.xyz, r0.x, c33, r0.yzww
    add r0.w, -r1.w, c42.x
    mul r0.w, r0.w, r2.x
    mul r0.w, r3.x, r0.w
    mul r0.w, r0.w, c47.y
    lrp r1.xyz, r0.w, r0, r3.yzww
    mad r0.xyz, r8, r0, r1
    add r1.xyz, -r0, c29
    mad oC0.xyz, c29.w, r1, r0
    mov oC0.w, -v4.z

// approximately 310 instruction slots used (25 texture, 285 arithmetic)
 