//
// 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;
//   float4x4 g_previousProjection;
//   float4x4 g_previousView;
//   float4 g_reflectionPlane;
//   float g_reflectionPlaneAlpha;
//   float4 g_reflectionTextureSize;
//   float4 g_sceneTextureSize;
//   float4 g_sunColor;
//   float4 g_sunDirection;
//   float4x4 g_view;
//   float4x4 g_viewInverse;
//   sampler2D normalSampler;
//   sampler2D previousSceneSampler;
//   sampler2D reflectionSampler;
//   sampler2D sceneSampler0;
//   samplerCUBE specularCubeEndSampler;
//   samplerCUBE specularCubeStartSampler;
//   sampler2D specularSampler;
//
//
// Registers:
//
//   Name                        Reg   Size
//   --------------------------- ----- ----
//   g_previousProjection        c0       4
//   g_cameraToReflectionTexture c4       4
//   g_view                      c8       3
//   g_viewInverse               c11      3
//   g_cubeLightRotation         c14      3
//   g_previousView              c17      3
//   g_sceneTextureSize          c20      1
//   g_nearFarDepths             c21      1
//   g_reflectionPlane           c22      1
//   g_debugColor                c23      1
//   g_sunDirection              c24      1
//   g_sunColor                  c25      1
//   g_cubeLightSkyColor         c26      1
//   g_cubeLightGroundColor      c27      1
//   g_pointLightFactors         c28      1
//   g_reflectionTextureSize     c29      1
//   g_reflectionPlaneAlpha      c30      1
//   normalSampler               s0       1
//   specularSampler             s1       1
//   sceneSampler0               s2       1
//   previousSceneSampler        s3       1
//   reflectionSampler           s4       1
//   specularCubeStartSampler    s5       1
//   specularCubeEndSampler      s6       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_view
//     c8   = { 0, 0, 0, 0 };
//     c9   = { 0, 0, 0, 0 };
//     c10  = { 0, 0, 0, 0 };
//
//   g_viewInverse
//     c11  = { 0, 0, 0, 0 };
//     c12  = { 0, 0, 0, 0 };
//     c13  = { 0, 0, 0, 0 };
//
//   g_cubeLightRotation
//     c14  = { 0, 0, 0, 0 };
//     c15  = { 0, 0, 0, 0 };
//     c16  = { 0, 0, 0, 0 };
//
//   g_previousView
//     c17  = { 0, 0, 0, 0 };
//     c18  = { 0, 0, 0, 0 };
//     c19  = { 0, 0, 0, 0 };
//
//   g_sceneTextureSize
//     c20  = { 0, 0, 0, 0 };
//
//   g_nearFarDepths
//     c21  = { 0, 0, 0, 0 };
//
//   g_reflectionPlane
//     c22  = { 0, 0, 0, 0 };
//
//   g_debugColor
//     c23  = { 0, 0, 0, 0 };
//
//   g_sunDirection
//     c24  = { 0, 0, 0, 0 };
//
//   g_sunColor
//     c25  = { 0, 0, 0, 0 };
//
//   g_cubeLightSkyColor
//     c26  = { 0, 0, 0, 0 };
//
//   g_cubeLightGroundColor
//     c27  = { 0, 0, 0, 0 };
//
//   g_pointLightFactors
//     c28  = { 0, 0, 0, 0 };
//
//   g_reflectionTextureSize
//     c29  = { 0, 0, 0, 0 };
//
//   g_reflectionPlaneAlpha
//     c30  = { 0, 0, 0, 0 };
//

    ps_3_0
    def c31, 1, -1, 4, 9.99999997e-007
    def c32, 0.699999988, 10000, 65, 0.25
    def c33, 0.5, -0.5, 1.5, 0.0250000004
    def c34, 6, 1, 0.125, 1.25
    def c35, 2, -1, 3.33333325, 50
    def c36, 0.875, 6.75, -0.000500000024, 0
    def c37, 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
    dp3 r0.x, v2, v2
    rsq r0.x, r0.x
    mul r0.yzw, r0.x, v2.xxyz
    add r1.xy, c37.x, vPos
    mul r1.xy, r1, c20.zwzw
    mov r1.zw, c37.y
    texldl r1, r1, s2
    add r2.x, r1.w, v5.z
    max r1.w, r2.x, c37.y
    mul r2.x, r1.w, c37.z
    exp r2.x, r2.x
    add r2.x, -r2.x, c37.w
    texld r3, v1, s0
    texld r4, v4, s0
    add r2.yz, -r4.xwyw, c37.w
    mul r2.w, r3.z, r3.z
    mad r3.yz, r3.xwyw, c35.x, c35.y
    mul r3.w, r4.z, r4.z
    mad r2.yz, r2, c35.x, r3
    mul r3.x, r3.x, r4.x
    mul r3.y, r3.w, c37.x
    mad r2.w, r2.w, c37.x, r3.y
    lrp r3.y, c37.x, c37.w, r2.w
    add r2.yz, r2, -c37.w
    mul r4.xyz, r2.y, -v6
    mad r4.xyz, v3, c35.z, r4
    mad r4.xyz, r2.z, -v7, r4
    dp3 r2.w, r4, r4
    rsq r2.w, r2.w
    mul r5.xyz, r2.w, r4
    mul r2.x, r2.x, c35.w
    mad r2.xy, r2.x, r2.yzzw, vPos
    add r2.xy, r2, c37.x
    mul r6.xy, r2, c20.zwzw
    mov r6.zw, c37.y
    texldl r6, r6, s2
    add r6.w, r6.w, v5.z
    cmp r1, r6.w, r6, r1
    mul r1.w, r1.w, c37.z
    exp r1.w, r1.w
    add r1.w, -r1.w, c37.w
    texld r6, c37.x, s1
    lrp r2.x, c37.x, c37.w, r6.w
    dp3 r2.y, -r0.yzww, r5
    add r2.y, r2.y, r2.y
    mad r7.xyz, r5, -r2.y, -r0.yzww
    mad r2.y, r7.y, c37.x, c37.x
    mov r8, c26
    lrp r9.xyz, r2.y, r8, c27
    dp3 r10.x, r7, c14
    dp3 r10.y, r7, c15
    dp3 r10.z, r7, c16
    add r10.w, -r2.x, c37.w
    mul r10, r10, c31.xxyz
    texldl r11, r10, s5
    mul r8.xyz, r9, r11
    if_lt c31.w, r8.w
      texldl r10, r10, s6
      mad r9.xyz, r10, r9, -r8
      mad r8.xyz, c26.w, r9, r8
    endif
    mad r9, v5.xyzx, c37.wwwy, c37.yyyw
    dp4 r10.x, r9, c11
    dp4 r10.y, r9, c12
    dp4 r10.z, r9, c13
    mov r10.w, c37.w
    dp4 r11.x, r10, c17
    dp4 r11.y, r10, c18
    dp4 r11.z, r10, c19
    mad r2.yzw, r4.xxyz, -r2.w, c37.xywy
    mad r2.yzw, r2, c32.x, r5.xxyz
    nrm r4.xyz, r2.yzww
    dp3 r2.y, -r0.yzww, r4
    add r2.y, r2.y, r2.y
    mad r2.yzw, r4.xxyz, -r2.y, -r0
    dp3 r4.x, r2.yzww, c17
    dp3 r4.y, r2.yzww, c18
    dp3 r4.z, r2.yzww, c19
    add r2.y, r11.z, -v5.z
    add r2.z, r11.z, c32.y
    cmp r2.z, r2.z, c37.y, c37.w
    cmp r2.w, -r4.z, c37.y, c37.w
    add r2.z, r2.w, r2.z
    rcp r2.w, r4.z
    mul r4.xyz, r2.w, r4
    add r2.y, r2.y, c32.z
    mad r4.xyz, r4, -r2.y, r11
    mov r4.w, c37.w
    dp4 r10.y, r4, c0
    dp4 r10.z, r4, c1
    dp4 r2.y, r4, c3
    mul r3.zw, r10.xyyz, c33.xyxy
    rcp r2.y, r2.y
    mad r2.yw, r3.xzzw, r2.y, c37.x
    mov r4.x, c37.x
    mad r2.yw, c20.xzzw, r4.x, r2
    add r3.zw, r2.xywy, -c37.x
    add r3.zw, -r3_abs, c33.xyxz
    cmp r3.zw, r3, c37.y, c37.w
    add r3.z, r3.w, r3.z
    cmp r4.yz, -r3.z, r2.xyww, c37.y
    texld r10, r4.yzzw, s3
    mad r2.y, v5.z, c37.x, r10.w
    add r2.w, -r10.w, c32.y
    cmp r2.yw, r2, c37.y, c37.w
    add r2.y, r2.w, r2.y
    add r2.w, -r4.y, c37.x
    cmp r2.w, r2.w, c37.y, c37.w
    add r2.w, -r4.y, r2.w
    mad r4.x, r2.w, c32.w, r4.y
    texld r11, r4.xzzw, s3
    cmp r10, -r2.y, r10, r11
    add_sat r2.y, r10.w, -c21.y
    add r2.w, r4.z, -c37.x
    add_sat r2.w, r2_abs.w, r2_abs.w
    mul r2.w, r2.w, r2.w
    mul r2.w, r2.w, r2.w
    mad r10.w, r2.w, -r2.w, c37.w
    cmp r4, -r3.z, r10, c37.y
    cmp r4, -r2.z, r4, c37.y
    dp3 r2.w, v5, v5
    rsq r2.w, r2.w
    rcp r2.w, r2.w
    mul r2.w, r0.z, r2.w
    mul_sat r2.w, r2.w, c33.w
    mul r2.w, r2.w, r2.w
    mul r2.w, r2.w, r2.w
    mad r2.w, r2.w, -r2.w, c37.w
    mul r2.w, r2.w, r4.w
    lrp r10.xyz, r2.w, r4, r8
    lrp r3.w, r2.w, r2.y, c37.w
    cmp r2.y, -r3.z, r3.w, c37.w
    cmp r2.y, -r2.z, r2.y, c37.w
    dp3 r4.x, r7, c8
    dp3 r4.y, r7, c9
    dp3 r4.z, r7, c10
    dp3 r2.z, c22, r4
    add r2.w, r2.z, r2.z
    mul r7.xyz, r2.w, c22
    cmp r7.xyz, r2.z, -c37.y, -r7
    add r4.xyz, r4, r7
	
texldl r24, c220.z, s15
add r24.y, -r9.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c190.x
mul r24.x, r24.x, r25.x 
add r9.x, r9.x, r24.x

    dp4 r2.z, r9, c4
    dp4 r2.w, r9, c5
    dp4 r3.z, r9, c7
    rcp r3.z, r3.z
    mul r7.x, r2.z, r3.z
    mad r7.z, r2.w, r3.z, -c29.w
    texld r7, r7.xzzw, s4
    add r2.z, r7.w, v5.z
    rcp r2.w, -v5.z
    dp2add_sat r2.z, r2.z, r2.w, c37.y
    rsq r2.w, -v5.z
    rcp r2.w, r2.w
    mul r2.z, r2.z, r2.w
    mad r4.xyz, r2.z, r4, v5
    mov r4.w, c37.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 r2.z, r4, c4
    dp4 r2.w, r4, c5
    dp4 r3.z, r4, c7
    rcp r3.z, r3.z
    mul r4.x, r2.z, r3.z
    mad r4.z, r2.w, r3.z, -c29.w
    texld r4, r4.xzzw, s4
    add_sat r2.z, r4.w, -c21.y
    dp4 r2.w, c22, r9
    add r2.w, -r2_abs.w, c37.w
    mul r3.z, r2.w, c30.x
    cmp r2.w, r2.w, r3.z, c37.y
    lrp r7.xyz, r2.w, r4, r10
    lrp r3.z, r2.w, r2.z, r2.y
    mul r2.x, r2.x, c28.y
    mul r2.x, r2.x, -c37.z
    exp r2.x, r2.x
    mul r2.y, r2.x, c34.x
    dp3_sat r2.z, r5, c24
    mad r4.xyz, v2, r0.x, c24
    nrm r8.xyz, r4
    dp3_sat r0.x, r5, r8
    pow r3.w, r0.x, r2.y
    dp3 r0.x, r5, r0.yzww
    max r4.x, r2.z, r0.x
    dp3 r0.y, r8, c24
    mad r0.y, r4.x, r0.y, c31.w
    rcp r0.y, r0.y
    mad r0.z, r2.x, c34.x, c34.y
    mul r0.z, r3.w, r0.z
    mul r0.y, r0.y, r0.z
    mul r0.y, r2.z, r0.y
    mul r0.y, r0.y, c34.z
    mul r0.yzw, r0.y, c25.xxyz
    mul r0.yzw, r3.z, r0
    mad r0.yzw, r0, c28.x, r7.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, c37.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, r6
    mul r2.yzw, r2.y, r4.xxyz
    lrp r3.yzw, r2, r0, r1.xxyz
    mov_sat r0.x, c24.y
    pow r1.x, r0.x, c33.z
    mul r0.x, r1.x, c34.w
    abs r0.y, c14.y
    abs r0.z, c15.y
    max r1.x, r0.y, r0.z
    abs r0.w, c16.y
    max r2.y, r1.x, r0.w
    add r0.y, r0.y, -r2.y
    mov r1.x, c36.x
    mul r1.y, r1.x, c14.y
    cmp r4.x, -r0_abs.y, c14.y, r1.y
    add r0.y, r0.z, -r2.y
    mul r0.z, r1.x, c15.y
    cmp r4.y, -r0_abs.y, c15.y, r0.z
    add r0.y, r0.w, -r2.y
    mul r0.z, r1.x, c16.y
    cmp r4.z, -r0_abs.y, c16.y, r0.z
    mov r4.w, c31.z
    mul r4, r4, c31.xxyx
    texldl r5, r4, s5
    mul r0.yzw, r5.xxyz, c26.xxyz
    if_lt c31.w, r8.w
      texldl r4, r4, s6
      mad r1.xyz, r4, c26, -r0.yzww
      mad r0.yzw, c26.w, r1.xxyz, r0
    endif
    mad r0.xyz, r0.x, c25, r0.yzww
    add r0.w, -r1.w, c37.w
    mul r0.w, r0.w, r2.x
    mul r0.w, r3.x, r0.w
    mul r0.w, r0.w, c36.y
    lrp r1.xyz, r0.w, r0, r3.yzww
    add r0.xyz, -r1, c23
    mad oC0.xyz, c23.w, r0, r1
    add r0, c36.z, v0.w
    texkill r0
    mov oC0.w, v0.w

// approximately 259 instruction slots used (19 texture, 240 arithmetic)
 