//
// 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;
//   float4 g_nearFarDepths;
//   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 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_time                      c25      1
//   g_nearFarDepths             c26      1
//   g_reflectionPlane           c27      1
//   g_debugColor                c28      1
//   g_sunDirection              c29      1
//   g_sunColor                  c30      1
//   g_cubeLightSkyColor         c31      1
//   g_cubeLightGroundColor      c32      1
//   g_pointLightFactors         c33      1
//   g_reflectionTextureSize     c34      1
//   g_reflectionPlaneAlpha      c35      1
//   g_precipParams              c36      1
//   normalSampler               s0       1
//   specularSampler             s1       1
//   sceneSampler0               s2       1
//   previousSceneSampler        s3       1
//   reflectionSampler           s4       1
//   specularCubeStartSampler    s5       1
//   specularCubeEndSampler      s6       1
//   precipHeightSampler         s7       1
//   rainSplashNormalSampler     s8       1
//   rainSplashDiffuseSampler    s9       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_time
//     c25  = { 0, 0, 0, 0 };
//
//   g_nearFarDepths
//     c26  = { 0, 0, 0, 0 };
//
//   g_reflectionPlane
//     c27  = { 0, 0, 0, 0 };
//
//   g_debugColor
//     c28  = { 0, 0, 0, 0 };
//
//   g_sunDirection
//     c29  = { 0, 0, 0, 0 };
//
//   g_sunColor
//     c30  = { 0, 0, 0, 0 };
//
//   g_cubeLightSkyColor
//     c31  = { 0, 0, 0, 0 };
//
//   g_cubeLightGroundColor
//     c32  = { 0, 0, 0, 0 };
//
//   g_pointLightFactors
//     c33  = { 0, 0, 0, 0 };
//
//   g_reflectionTextureSize
//     c34  = { 0, 0, 0, 0 };
//
//   g_reflectionPlaneAlpha
//     c35  = { 0, 0, 0, 0 };
//
//   g_precipParams
//     c36  = { 0, 0, 0, 0 };
//

    ps_3_0
    def c37, -2, 3, 9.99999997e-007, 0.699999988
    def c38, 0.00999999978, -1.99999995e-005, -0.200000003, 1.25
    def c39, 65, 0.5, -0.5, 1.5
    def c40, 1, -1, 4, 10000
    def c41, 0.25, 0.0250000004, 6, 1
    def c42, 0.125, 0.875, 6.75, -0.000500000024
    def c43, 2, -1, 3.33333325, 50
    def c44, 0.5, 0, -7.21347523, 1
def c220, 1, 0.5, 0.0625, 0.5
dcl_2d s15
    dcl_color v0.w
    dcl_texcoord v1.xy
    dcl_texcoord1 v2.xyz
    dcl_texcoord2 v3.xyz
    dcl_texcoord3 v4.xy
    dcl_texcoord4 v5.xyz
    dcl_texcoord5 v6.xyz
    dcl_texcoord6 v7.xyz
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_cube s5
    dcl_cube s6
    dcl_2d s7
    dcl_volume s8
    dcl_volume s9
    dp3 r0.x, v2, v2
    rsq r0.x, r0.x
    mul r0.yzw, r0.x, v2.xxyz
    add r1.xy, c44.x, vPos
    mul r1.xy, r1, c24.zwzw
    mov r1.zw, c44.y
    texldl r1, r1, s2
    add r2.x, r1.w, v5.z
    max r1.w, r2.x, c44.y
    mul r2.x, r1.w, c44.z
    exp r2.x, r2.x
    add r2.x, -r2.x, c44.w
    texld r3, v1, s0
    texld r4, v4, s0
    add r2.yz, -r4.xwyw, c44.w
    mul r2.w, r3.z, r3.z
    mad r3.yz, r3.xwyw, c43.x, c43.y
    mul r3.w, r4.z, r4.z
    mad r2.yz, r2, c43.x, r3
    mul r3.x, r3.x, r4.x
    mul r3.y, r3.w, c44.x
    mad r2.w, r2.w, c44.x, r3.y
    lrp r3.y, c44.x, c44.w, r2.w
    add r2.yz, r2, -c44.w
    mul r4.xyz, r2.y, -v6
    mad r4.xyz, v3, c43.z, r4
    mad r4.xyz, r2.z, -v7, r4
    nrm r5.xyz, r4
    mul r2.x, r2.x, c43.w
    mad r2.xy, r2.x, r2.yzzw, vPos
    add r2.xy, r2, c44.x
    mul r2.xy, r2, c24.zwzw
    mov r2.zw, c44.y
    texldl r2, r2, s2
    add r2.w, r2.w, v5.z
    cmp r1, r2.w, r2, r1
    mul r1.w, r1.w, c44.z
    exp r1.w, r1.w
    add r1.w, -r1.w, c44.w
    mad r2, v5.xyzx, c44.wwwy, c44.yyyw
    dp4 r4.x, r2, c15
    dp4 r6.y, r2, c16
    dp4 r4.z, r2, c17
    add r4.y, r6.y, c38.x
    mov r4.w, c44.w
    dp4 r7.x, r4, c8
    dp4 r7.y, r4, c9
    dp4 r7.z, r4, c10
    dp4 r3.z, r4, c11
    rcp r3.z, r3.z
    mul r8.xyz, r3.z, r7.zxyw
    mov_sat r8.x, r8.x
    add r9.z, r8.x, c38.y
    mul r9.xyw, r8.yzzy, c44.wwzy
    texldl r8, r9, s7
    add r3.zw, r7.xyxy, -c44.x
    mad r3.zw, r3_abs, -c43_abs.x, c43_abs.y
    max r7.xy, r3.zwzw, c44.y
    min r3.z, r7.y, r7.x
    rsq r3.z, r3.z
    rcp r3.z, r3.z
    mul r3.z, r3.z, r8.x
    mov_sat r3.w, r5.y
    add r3.w, r3.w, c38.z
    mul r3.w, r3.w, c38.w
    max r4.y, r3.w, c44.y
    mad r3.w, r4.y, c37.x, c37.y
    mul r4.y, r4.y, r4.y
    mul r3.w, r3.w, r4.y
    mul r3.z, r3.w, r3.z
    mul r3.z, r3.z, c36.z
    mul r7.xy, r4.xzzw, c44.x
    mov r7.z, c25.x
    texld r8, r7, s8
    add r8.xyz, r8, -c44.x
    mad r5.xyz, r8, r3.z, r5
    dp3 r3.w, r5, r5
    rsq r3.w, r3.w
    mul r8.xyz, r3.w, r5
    texld r7, r7, s9
    mul r7.xyz, r3.z, r7
    texld r9, c44.x, s1
    lrp r3.z, c44.x, c44.w, r9.w
    dp3 r4.y, -r0.yzww, r8
    add r4.y, r4.y, r4.y
    mad r10.xyz, r8, -r4.y, -r0.yzww
    mad r4.y, r10.y, c44.x, c44.x
    mov r11, c31
    lrp r12.xyz, r4.y, r11, c32
    dp3 r13.x, r10, c18
    dp3 r13.y, r10, c19
    dp3 r13.z, r10, c20
    add r13.w, -r3.z, c44.w
    mul r13, r13, c40.xxyz
    texldl r14, r13, s5
    mul r11.xyz, r12, r14
    if_lt c37.z, r11.w
      texldl r13, r13, s6
      mad r12.xyz, r13, r12, -r11
      mad r11.xyz, c31.w, r12, r11
    endif
    mov r6.xzw, r4
    dp4 r4.x, r6, c21
    dp4 r4.y, r6, c22
    dp4 r4.z, r6, c23
    mad r5.xyz, r5, -r3.w, c44.ywyw
    mad r5.xyz, r5, c37.w, r8
    nrm r6.xyz, r5
    dp3 r3.w, -r0.yzww, r6
    add r3.w, r3.w, r3.w
    mad r5.xyz, r6, -r3.w, -r0.yzww
    dp3 r6.x, r5, c21
    dp3 r6.y, r5, c22
    dp3 r6.z, r5, c23
    add r3.w, r4.z, -v5.z
    add r4.w, r4.z, c40.w
    cmp r4.w, r4.w, c44.y, c44.w
    cmp r5.x, -r6.z, c44.y, c44.w
    add r4.w, r4.w, r5.x
    rcp r5.x, r6.z
    mul r5.xyz, r5.x, r6
    add r3.w, r3.w, c39.x
    mad r5.xyz, r5, -r3.w, r4
    mov r5.w, c44.w
    dp4 r4.y, r5, c0
    dp4 r4.z, r5, c1
    dp4 r3.w, r5, c3
    mul r4.xy, r4.yzzw, c39.yzzw
    rcp r3.w, r3.w
    mad r4.xy, r4, r3.w, c44.x
    mov r5.x, c44.x
    mad r4.xy, c24.zwzw, r5.x, r4
    add r5.xy, r4.yxzw, -c44.x
    add r5.xy, -r5_abs, c39.ywzw
    cmp r5.xy, r5, c44.y, c44.w
    add r3.w, r5.y, r5.x
    cmp r4.yz, -r3.w, r4.xxyw, c44.y
    texld r5, r4.yzzw, s3
    mad r6.x, v5.z, c44.x, r5.w
    add r6.y, -r5.w, c40.w
    cmp r6.xy, r6, c44.y, c44.w
    add r6.x, r6.y, r6.x
    add r6.y, -r4.y, c44.x
    cmp r6.y, r6.y, c44.y, c44.w
    add r6.y, -r4.y, r6.y
    mad r4.x, r6.y, c41.x, r4.y
    texld r12, r4.xzzw, s3
    cmp r5, -r6.x, r5, r12
    add_sat r4.x, r5.w, -c26.y
    add r4.y, r4.z, -c44.x
    add_sat r4.y, r4_abs.y, r4_abs.y
    mul r4.y, r4.y, r4.y
    mul r4.y, r4.y, r4.y
    mad r5.w, r4.y, -r4.y, c44.w
    cmp r5, -r3.w, r5, c44.y
    cmp r5, -r4.w, r5, c44.y
    dp3 r4.y, v5, v5
    rsq r4.y, r4.y
    rcp r4.y, r4.y
    mul r4.y, r0.z, r4.y
    mul_sat r4.y, r4.y, c41.y
    mul r4.y, r4.y, r4.y
    mul r4.y, r4.y, r4.y
    mad r4.y, r4.y, -r4.y, c44.w
    mul r4.y, r4.y, r5.w
    lrp r6.xyz, r4.y, r5, r11
    lrp r5.x, r4.y, r4.x, c44.w
    cmp r3.w, -r3.w, r5.x, c44.w
    cmp r3.w, -r4.w, r3.w, c44.w
    dp3 r4.x, r10, c12
    dp3 r4.y, r10, c13
    dp3 r4.z, r10, c14
    dp3 r4.w, c27, r4
    add r5.x, r4.w, r4.w
    mul r5.xyz, r5.x, c27
    cmp r5.xyz, r4.w, -c44.y, -r5
    add r4.xyz, r4, r5
	
texldl r24, c220.z, s15
add r24.y, -r2.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c190.x
mul r24.x, r24.x, r25.x 
add r2.x, r2.x, r24.x

    dp4 r4.w, r2, c4
    dp4 r5.x, r2, c5
    dp4 r5.y, r2, c7
    rcp r5.y, r5.y
    mul r10.x, r4.w, r5.y
    mad r10.z, r5.x, r5.y, -c34.w
    texld r5, r10.xzzw, s4
    add r4.w, r5.w, v5.z
    rcp r5.x, -v5.z
    dp2add_sat r4.w, r4.w, r5.x, c44.y
    rsq r5.x, -v5.z
    rcp r5.x, r5.x
    mul r4.w, r4.w, r5.x
    mad r4.xyz, r4.w, r4, v5
    mov r4.w, c44.w
	
texldl r24, c220.z, s15
add r24.y, -r4.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c190.x
mul r24.x, r24.x, r25.x 
add r4.x, r4.x, r24.x

    dp4 r5.x, r4, c4
    dp4 r5.y, r4, c5
    dp4 r4.x, r4, c7
    rcp r4.x, r4.x
    mul r5.x, r4.x, r5.x
    mad r5.z, r5.y, r4.x, -c34.w
    texld r4, r5.xzzw, s4
    add_sat r4.w, r4.w, -c26.y
    dp4 r2.x, c27, r2
    add r2.x, -r2_abs.x, c44.w
    mul r2.y, r2.x, c35.x
    cmp r2.x, r2.x, r2.y, c44.y
    lrp r5.xyz, r2.x, r4, r6
    lrp r5.w, r2.x, r4.w, r3.w
    mul r2.x, r3.z, c33.y
    mul r2.x, r2.x, -c44.z
    exp r2.x, r2.x
    mul r2.y, r2.x, c41.z
    dp3_sat r2.z, r8, c29
    mad r4.xyz, v2, r0.x, c29
    nrm r6.xyz, r4
    dp3_sat r0.x, r8, r6
    pow r3.z, r0.x, r2.y
    dp3 r0.x, r8, r0.yzww
    max r3.w, r2.z, r0.x
    dp3 r0.y, r6, c29
    mad r0.y, r3.w, r0.y, c37.z
    rcp r0.y, r0.y
    mad r0.z, r2.x, c41.z, c41.w
    mul r0.z, r3.z, r0.z
    mul r0.y, r0.y, r0.z
    mul r0.y, r2.z, r0.y
    mul r0.y, r0.y, c42.x
    mul r0.yzw, r0.y, c30.xxyz
    mul r0.yzw, r5.w, r0
    mad r0.yzw, r0, c33.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, c44.w
    mul r2.z, r0.x, r0.x
    mul r2.yz, r2, r2
    mul r0.x, r0.x, r2.z
    lrp r4.xyz, r0.x, r3.y, r9
    mul r2.yzw, r2.y, r4.xxyz
    lrp r3.yzw, r2, r0, r1.xxyz
    mov_sat r0.x, c29.y
    pow r1.x, r0.x, c39.w
    mul r0.x, r1.x, c38.w
    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, c42.y
    mul r1.x, r1.y, c18.y
    cmp r4.x, -r0_abs.y, c18.y, r1.x
    add r0.y, r0.z, -r2.y
    mul r0.z, r1.y, c19.y
    cmp r4.y, -r0_abs.y, c19.y, r0.z
    add r0.y, r0.w, -r2.y
    mul r0.z, r1.y, c20.y
    cmp r4.z, -r0_abs.y, c20.y, r0.z
    mov r4.w, c40.z
    mul r4, r4, c40.xxyx
    texldl r5, r4, s5
    mul r0.yzw, r5.xxyz, c31.xxyz
    if_lt c37.z, r11.w
      texldl r4, r4, s6
      mad r1.xyz, r4, c31, -r0.yzww
      mad r0.yzw, c31.w, r1.xxyz, r0
    endif
    mad r0.xyz, r0.x, c30, r0.yzww
    add r0.w, -r1.w, c44.w
    mul r0.w, r0.w, r2.x
    mul r0.w, r3.x, r0.w
    mul r0.w, r0.w, c42.z
    lrp r1.xyz, r0.w, r0, r3.yzww
    mad r0.xyz, r7, r0, r1
    add r1.xyz, -r0, c28
    mad oC0.xyz, c28.w, r1, r0
    add r0, c42.w, v0.w
    texkill r0
    mov oC0.w, v0.w

// approximately 299 instruction slots used (23 texture, 276 arithmetic)
 