//
// 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;
//   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 noiseSampler;
//   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_noiseTextureSize          c21      1
//   g_nearFarDepths             c22      1
//   g_reflectionPlane           c23      1
//   g_debugColor                c24      1
//   g_dissolveAlpha             c25      1
//   g_dissolveInverted          c26      1
//   g_sunDirection              c27      1
//   g_sunColor                  c28      1
//   g_cubeLightSkyColor         c29      1
//   g_cubeLightGroundColor      c30      1
//   g_pointLightFactors         c31      1
//   g_reflectionTextureSize     c32      1
//   g_reflectionPlaneAlpha      c33      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
//
//
// 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_noiseTextureSize
//     c21  = { 0, 0, 0, 0 };
//
//   g_nearFarDepths
//     c22  = { 0, 0, 0, 0 };
//
//   g_reflectionPlane
//     c23  = { 0, 0, 0, 0 };
//
//   g_debugColor
//     c24  = { 0, 0, 0, 0 };
//
//   g_dissolveAlpha
//     c25  = { 0, 0, 0, 0 };
//
//   g_dissolveInverted
//     c26  = { 0, 0, 0, 0 };
//
//   g_sunDirection
//     c27  = { 0, 0, 0, 0 };
//
//   g_sunColor
//     c28  = { 0, 0, 0, 0 };
//
//   g_cubeLightSkyColor
//     c29  = { 0, 0, 0, 0 };
//
//   g_cubeLightGroundColor
//     c30  = { 0, 0, 0, 0 };
//
//   g_pointLightFactors
//     c31  = { 0, 0, 0, 0 };
//
//   g_reflectionTextureSize
//     c32  = { 0, 0, 0, 0 };
//
//   g_reflectionPlaneAlpha
//     c33  = { 0, 0, 0, 0 };
//

    ps_3_0
    def c34, 9.99999997e-007, 1, 0, 0.699999988
    def c35, 0, 0.99000001, 0.5, -7.21347523
    def c36, 10000, 65, 0.5, -0.5
    def c37, 0.5, 1.5, 0.25, 0.0250000004
    def c38, 6, 1, 0.125, 1.25
    def c39, 1, 2, -1, 3.33333325
    def c40, 0.875, 6.75, 0, 0
    def c41, 50, 1, -1, 4
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
    mul r0.xy, c21.zwzw, vPos
    mov r0.zw, c35.x
    texldl r0, r0, s2
    add r0.y, -r0.x, c35.y
    cmp r0.x, -c26.x, r0.x, r0.y
    add r0, -r0.x, c25.x
    texkill r0
    dp3 r0.x, v1, v1
    rsq r0.x, r0.x
    mul r0.yzw, r0.x, v1.xxyz
    add r1.xy, c35.z, vPos
    mul r1.xy, r1, c20.zwzw
    mov r1.zw, c35.x
    texldl r1, r1, s3
    add r2.x, r1.w, v4.z
    max r1.w, r2.x, c35.x
    mul r2.x, r1.w, c35.w
    exp r2.x, r2.x
    add r2.x, -r2.x, c39.x
    texld r3, v0, s0
    texld r4, v3, s0
    add r2.yz, -r4.xwyw, c39.x
    mul r2.w, r3.z, r3.z
    mad r3.yz, r3.xwyw, c39.y, c39.z
    mul r3.w, r4.z, r4.z
    mad r2.yz, r2, c39.y, r3
    mul r3.x, r3.x, r4.x
    mul r3.y, r3.w, c35.z
    mad r2.w, r2.w, c35.z, r3.y
    add r3.y, -r2.w, c39.x
    mad r2.w, r3.y, c35.z, r2.w
    add r2.yz, r2, c39.z
    mul r3.yzw, r2.y, -v5.xxyz
    mad r3.yzw, v2.xxyz, c39.w, r3
    mad r3.yzw, r2.z, -v6.xxyz, r3
    dp3 r4.x, r3.yzww, r3.yzww
    rsq r4.x, r4.x
    mul r4.yzw, r3, r4.x
    mul r2.x, r2.x, c41.x
    mad r2.xy, r2.x, r2.yzzw, vPos
    add r2.xy, r2, c35.z
    mul r5.xy, r2, c20.zwzw
    mov r5.zw, c35.x
    texldl r5, r5, s3
    add r5.w, r5.w, v4.z
    cmp r1, r5.w, r5, r1
    mul r1.w, r1.w, c35.w
    exp r1.w, r1.w
    add r1.w, -r1.w, c39.x
    texld r5, c35.z, s1
    add r2.x, -r5.w, c39.x
    mad r2.x, r2.x, c35.z, r5.w
    dp3 r2.y, -r0.yzww, r4.yzww
    add r2.y, r2.y, r2.y
    mad r6.xyz, r4.yzww, -r2.y, -r0.yzww
    mad r2.y, r6.y, c35.z, c35.z
    mov r7, c29
    lrp r8.xyz, r2.y, r7, c30
    dp3 r9.x, r6, c14
    dp3 r9.y, r6, c15
    dp3 r9.z, r6, c16
    add r9.w, -r2.x, c39.x
    mul r9, r9, c41.yyzw
    texldl r10, r9, s6
    mul r7.xyz, r8, r10
    if_lt c34.x, r7.w
      texldl r9, r9, s7
      mad r8.xyz, r9, r8, -r7
      mad r7.xyz, c29.w, r8, r7
    endif
    mad r8, v4.xyzx, c34.yyyz, c34.zzzy
    dp4 r9.x, r8, c11
    dp4 r9.y, r8, c12
    dp4 r9.z, r8, c13
    mov r9.w, c39.x
    dp4 r10.x, r9, c17
    dp4 r10.y, r9, c18
    dp4 r10.z, r9, c19
    mad r3.yzw, r3, -r4.x, c34.xzyz
    mad r3.yzw, r3, c34.w, r4
    nrm r9.xyz, r3.yzww
    dp3 r2.y, -r0.yzww, r9
    add r2.y, r2.y, r2.y
    mad r3.yzw, r9.xxyz, -r2.y, -r0
    dp3 r9.x, r3.yzww, c17
    dp3 r9.y, r3.yzww, c18
    dp3 r9.z, r3.yzww, c19
    add r2.y, r10.z, -v4.z
    add r2.z, r10.z, c36.x
    cmp r2.z, r2.z, c34.z, c34.y
    cmp r3.y, -r9.z, c34.z, c34.y
    add r2.z, r2.z, r3.y
    rcp r3.y, r9.z
    mul r3.yzw, r3.y, r9.xxyz
    add r2.y, r2.y, c36.y
    mad r9.xyz, r3.yzww, -r2.y, r10
    mov r9.w, c39.x
    dp4 r3.y, r9, c0
    dp4 r3.z, r9, c1
    dp4 r2.y, r9, c3
    mul r3.yz, r3, c36.xzww
    rcp r2.y, r2.y
    mad r3.yz, r3, r2.y, c35.z
    mov r9.z, c35.z
    mad r3.yz, c20.xzww, r9.z, r3
    add r9.xy, r3.zyzw, -c35.z
    add r9.xy, -r9_abs, c37
    cmp r9.xy, r9, c34.z, c34.y
    add r2.y, r9.y, r9.x
    cmp r9.yz, -r2.y, r3, c35.x
    texld r10, r9.yzzw, s4
    mad r3.y, v4.z, c35.z, r10.w
    add r3.z, -r10.w, c36.x
    cmp r3.yz, r3, c34.z, c34.y
    add r3.y, r3.z, r3.y
    add r3.z, -r9.y, c35.z
    cmp r3.z, r3.z, c34.z, c34.y
    add r3.z, -r9.y, r3.z
    mad r9.x, r3.z, c37.z, r9.y
    texld r11, r9.xzzw, s4
    cmp r10, -r3.y, r10, r11
    add_sat r3.y, r10.w, -c22.y
    add r3.z, r9.z, -c35.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 r10.w, r3.z, -r3.z, c39.x
    cmp r9, -r2.y, r10, c35.x
    cmp r9, -r2.z, r9, c35.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, c37.w
    mul r3.z, r3.z, r3.z
    mul r3.z, r3.z, r3.z
    mad r3.z, r3.z, -r3.z, c39.x
    mul r3.z, r3.z, r9.w
    lrp r10.xyz, r3.z, r9, r7
    add r3.y, r3.y, c39.z
    mad r3.y, r3.z, r3.y, c39.x
    cmp r2.y, -r2.y, r3.y, c39.x
    cmp r2.y, -r2.z, r2.y, c39.x
    dp3 r7.x, r6, c8
    dp3 r7.y, r6, c9
    dp3 r7.z, r6, c10
    dp3 r2.z, c23, r7
    add r3.y, r2.z, r2.z
    mul r3.yzw, r3.y, c23.xxyz
    cmp r3.yzw, r2.z, -c35.x, -r3
    add r3.yzw, r3, r7.xxyz
	
texldl r24, c220.z, s15
add r24.y, -r8.z, -r24.y
mul r24.x, r24.x, r24.y
rcp r25.x, c190.x
mul r24.x, r24.x, r25.x 
add r8.x, r8.x, r24.x

    dp4 r2.z, r8, c4
    dp4 r4.x, r8, c5
    dp4 r5.w, r8, c7
    rcp r5.w, r5.w
    mul r6.x, r2.z, r5.w
    mad r6.z, r4.x, r5.w, -c32.w
    texld r6, r6.xzzw, s5
    add r2.z, r6.w, v4.z
    rcp r4.x, -v4.z
    dp2add_sat r2.z, r2.z, r4.x, c35.x
    rsq r4.x, -v4.z
    rcp r4.x, r4.x
    mul r2.z, r2.z, r4.x
    mad r6.xyz, r2.z, r3.yzww, v4
    mov r6.w, c39.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, -c32.w
    texld r6, r6.xzzw, s5
    add_sat r2.z, r6.w, -c22.y
    dp4 r3.y, c23, r8
    add r3.y, -r3_abs.y, c39.x
    mul r3.z, r3.y, c33.x
    cmp r3.y, r3.y, r3.z, c35.x
    lrp r7.xyz, r3.y, r6, r10
    lrp r4.x, r3.y, r2.z, r2.y
    mul r2.x, r2.x, c31.y
    mul r2.x, r2.x, -c35.w
    exp r2.x, r2.x
    mul r2.y, r2.x, c38.x
    dp3_sat r2.z, r4.yzww, c27
    mad r3.yzw, v1.xxyz, r0.x, c27.xxyz
    nrm r6.xyz, r3.yzww
    dp3_sat r0.x, r4.yzww, r6
    pow r3.y, r0.x, r2.y
    dp3 r0.x, r4.yzww, r0.yzww
    max r3.z, r2.z, r0.x
    dp3 r0.y, r6, c27
    mad r0.y, r3.z, r0.y, c34.x
    rcp r0.y, r0.y
    mad r0.z, r2.x, c38.x, c38.y
    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, c38.z
    mul r0.yzw, r0.y, c28.xxyz
    mul r0.yzw, r4.x, r0
    mad r0.yzw, r0, c31.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, c39.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, r5.xxyz
    mul r2.yzw, r2.y, r3
    lrp r3.yzw, r2, r0, r1.xxyz
    mov_sat r0.x, c27.y
    pow r1.x, r0.x, c37.y
    mul r0.x, r1.x, c38.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.y, c14.y
    mul r1.x, r1.y, c40.x
    cmp r4.x, -r0_abs.y, c14.y, r1.x
    add r0.y, r0.z, -r2.y
    mov r1.y, c15.y
    mul r0.z, r1.y, c40.x
    cmp r4.y, -r0_abs.y, c15.y, r0.z
    add r0.y, r0.w, -r2.y
    mov r1.y, c16.y
    mul r0.z, r1.y, c40.x
    cmp r4.z, -r0_abs.y, c16.y, r0.z
    mov r4.w, c41.w
    mul r4, r4, c39.xxzx
    texldl r5, r4, s6
    mul r0.yzw, r5.xxyz, c29.xxyz
    if_lt c34.x, r7.w
      texldl r4, r4, s7
      mad r1.xyz, r4, c29, -r0.yzww
      mad r0.yzw, c29.w, r1.xxyz, r0
    endif
    mad r0.xyz, r0.x, c28, r0.yzww
    add r0.w, -r1.w, c39.x
    mul r0.w, r0.w, r2.x
    mul r0.w, r3.x, r0.w
    mul r0.w, r0.w, c40.y
    lrp r1.xyz, r0.w, r0, r3.yzww
    add r0.xyz, -r1, c24
    mad oC0.xyz, c24.w, r0, r1
    mov oC0.w, -v4.z

// approximately 270 instruction slots used (21 texture, 249 arithmetic)
 