//
// Generated by Microsoft (R) D3DX9 Shader Compiler 9.12.589.0000
//
// Parameters:
//
//   samplerCUBE g_ambient_cube;
//   float3 g_camera_position;
//   float4 g_depth_buffer_uvs;
//   sampler2D g_depth_sampler;
//   sampler2D g_dissolve_noise_sampler;
//   float g_dissolve_value;
//   samplerCUBE g_environment_sampler;
//   sampler2D g_foam_normal_sampler;
//   sampler2D g_foam_sampler;
//   float g_fog_depth;
//   float g_luminance_shift_id;
//   float g_reflectivity;
//   float g_refraction_bias;
//   sampler2D g_refraction_sampler;
//   float g_refraction_scale;
//   sampler2D g_scene_sampler;
//   float g_specular_level;
//   float g_specular_power;
//   sampler2D g_water_normal_sampler;
//   sampler2D g_water_surface_sampler;
//   float4 g_water_tint;
//
//
// Registers:
//
//   Name                     Reg   Size
//   ------------------------ ----- ----
//   g_camera_position        c0       1
//   g_reflectivity           c1       1
//   g_refraction_scale       c2       1
//   g_fog_depth              c3       1
//   g_water_tint             c4       1
//   g_specular_level         c5       1
//   g_specular_power         c6       1
//   g_refraction_bias        c7       1
//   g_depth_buffer_uvs       c8       1
//   g_dissolve_value         c9       1
//   g_luminance_shift_id     c10      1
//   g_ambient_cube           s0       1
//   g_depth_sampler          s1       1
//   g_scene_sampler          s2       1
//   g_water_surface_sampler  s3       1
//   g_water_normal_sampler   s4       1
//   g_foam_sampler           s5       1
//   g_foam_normal_sampler    s6       1
//   g_refraction_sampler     s7       1
//   g_environment_sampler    s8       1
//   g_dissolve_noise_sampler s9       1
//
//
// Default values:
//
//   g_camera_position
//     c0   = { 0, 0, 0, 0 };
//
//   g_reflectivity
//     c1   = { 0.8, 0, 0, 0 };
//
//   g_refraction_scale
//     c2   = { 0.01, 0, 0, 0 };
//
//   g_fog_depth
//     c3   = { 0.0001, 0, 0, 0 };
//
//   g_water_tint
//     c4   = { 0.1, 0.2, 0.1, 1 };
//
//   g_specular_level
//     c5   = { 0.7, 0, 0, 0 };
//
//   g_specular_power
//     c6   = { 200, 0, 0, 0 };
//
//   g_refraction_bias
//     c7   = { 0.2, 0, 0, 0 };
//
//   g_depth_buffer_uvs
//     c8   = { 0, 0, 0, 0 };
//
//   g_dissolve_value
//     c9   = { 0, 0, 0, 0 };
//
//   g_luminance_shift_id
//     c10  = { 0, 0, 0, 0 };
//

    //ps_2_x
	ps_3_0
    def c11, 1.5, 0.300000012, 0.800000012, -0
    def c12, 2, -1, 1, 0.5
	def c23, 0.5, 0, 0, 0
    //dcl v0.x
    //dcl t0
    //dcl t1
    //dcl t2
    //dcl_pp t3
    //dcl_pp t5.xyz
    //dcl_pp t6.xyz
    //dcl_pp t7.xyz
	dcl_color v0
	dcl_texcoord0 v1
    dcl_texcoord1 v2
	dcl_texcoord2 v3
	dcl_texcoord3_pp v4
	dcl_texcoord5_pp v5.xyz
	dcl_texcoord6_pp v6.xyz
	dcl_texcoord7_pp v7.xyz
	dcl vPos.xy
    dcl_cube s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    dcl_2d s6
    dcl_2d s7
    dcl_cube s8
    dcl_2d s9
    mov r1.xy, v2.zwzw
    texld_pp r0, v1, s9
    texld_pp r1, r1, s7
    mul_pp r1.x, r1.w, r1.x
    add r0, -r0.z, c9.x
    mad_pp r3.xy, c12.x, r1, c12.y
    texld_pp r1, v1, s4
    texld_pp r2, v2, s6
    mul_pp r2.x, r2.w, r2.x
    mov_pp r2.z, r2.y
    mad_pp r2.xz, c12.x, r2, c12.y
    mul_pp r1.x, r1.w, r1.x
    mov_pp r1.z, r1.y
    dp2add_sat r1.w, r2.xzzw, -r2.xzzw, c12.z
    mad_pp r1.xz, c12.x, r1, c12.y
    rsq r1.y, r1.w
    dp2add_sat r1.w, r1.xzzw, -r1.xzzw, c12.z
    rcp_pp r2.y, r1.y
    rsq r1.w, r1.w
    mul r2.xyz, r2, c12.wxww
    rcp_pp r1.y, r1.w
    rcp_pp r1.w, v4.w
    mad r1.xyz, r1, c12.wxww, r2
    mul_pp r2.xy, r1.w, v4
    dp3 r1.w, r1, r1
    mad_sat r8.xy, r2, c8, c8.zwzw
	
	mov r11.xy, vPos.xy
	rcp r11.z, c210.x
	rcp r11.w, c210.y
	mul r11.xy, r11.xy, r11.zw
	mul r11.zw, r11.zw, c23.xx
    add	r8.xy, r11.xy, r11.zw
	
    rsq r2.w, r1.w
    mad r9.xy, r3, c2.x, r8
    mul r2.xyz, r1, r2.w
    add r3.xyz, -v3, c0
    mul_pp r1.xyz, r2.z, v7.xzyw
    nrm_pp r7.xyz, r3
    mad_pp r1.xyz, r2.x, v6.xzyw, r1
    dp3 r1.w, -r7.xzyw, r2
    mad_pp r5.xyz, r2.y, v5.xzyw, r1
    add r1.z, r1.w, r1.w
    dp3_pp r1.w, r5, r5
    mad r6.xyz, r2, -r1.z, -r7.xzyw
    rsq_pp r4.w, r1.w
    mul_pp r4.xyz, r5, r4.w
    mov r3.xy, v1.zwzw
    texld r2, r9, s1
    texld r1, r9, s2
    texkill r0
    texld r0, r3, s5
    mov r2.yzw, r1.xxyz
    add r0.w, -r2.x, v4.z
    texld r3, r8, s2
    texld r1, r8, s1
    mov r1.yzw, r3.xxyz
    cmp r1, r0.w, r1, r2
    add r1.x, r1.x, -v4.z
    pow r0.w, r1.x, c11.x
    mul_sat r0.w, r0.w, c3.x
    lrp r3.xyz, r0.w, c4, r1.yzww
    texld r2, v1, s3
    texld_pp r1, r6, s8
    dp3 r0.w, r4.xzyw, r7
    add_sat r0.w, r0.w, c7.x
    max r1.w, r0.w, c11.y
    lrp r6.xyz, c1.x, r1, r2
    min r0.w, r1.w, c11.z
    mad r5.w, r5.x, r4.w, c12.z
    lrp r1.xyz, r0.w, r3, r6
    lrp_pp r3.xyz, v0.x, r1, r0
    mov_pp r3.w, c5.x
    max_sat_pp r1, r3, c11.w
    mov_pp r0.xyz, r4
    texld_pp r2, r0, s0
    mul_pp r2.xyz, r3, r2
    mov_pp r2.w, c10.x
    mov_pp oC1, r1
    max_sat_pp r1, r2, c11.w
    cmp_pp r0.y, r0.y, r5.w, -r5.w
    mov_pp r0.x, v3.w
    mov_pp r0.w, c6.x
    mov_pp oC2, r1
    mov_pp oC0, r0

// approximately 84 instruction slots used (12 texture, 72 arithmetic)
 