// RESIDENT EVIL 6 - WATER REFLECTIONS: SEWER in JAKE Chapter
// HELIXMOD FIX BY MIKE_AR69
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 CBFog__packed0;
//   float4 CBFog__packed1;
//   float4 CBFog__packed2;
//   float4 CBFog__packed4;
//   float4 CBHDRFactor__packed0;
//   float4 CBScreen__packed0;
//   float4 CBScreen__packed1;
//   float4 CBViewProjection__packed4;
//   float4 CBWaterDetail__packed0;
//   float4 CBWaterDetail__packed1;
//   float4 CBWater__packed0;
//   float4 CBWater__packed1;
//   float4 CBWater__packed2;
//   float4 CBWater__packed3;
//   sampler2D SSLinear__tWaterReflection;
//   sampler2D SSPoint__tWaterDepthMap;
//   sampler2D SSWrapLinear__tWaterDetail;
//   sampler2D SSWrapLinear__tWaterDetail2;
//   row_major float4x4 fView;
//   row_major float4x4 fViewProjI;
//
//
// Registers:
//
//   Name                        Reg   Size
//   --------------------------- ----- ----
//   fViewProjI                  c1       4
//   fView                       c5       3
//   CBHDRFactor__packed0        c8       1
//   CBScreen__packed0           c9       1
//   CBScreen__packed1           c10      1
//   CBViewProjection__packed4   c11      1
//   CBWaterDetail__packed0      c12      1
//   CBWaterDetail__packed1      c13      1
//   CBWater__packed0            c14      1
//   CBWater__packed1            c15      1
//   CBWater__packed2            c16      1
//   CBWater__packed3            c17      1
//   CBFog__packed0              c18      1
//   CBFog__packed1              c19      1
//   CBFog__packed2              c20      1
//   CBFog__packed4              c21      1
//   SSWrapLinear__tWaterDetail  s0       1
//   SSWrapLinear__tWaterDetail2 s1       1
//   SSPoint__tWaterDepthMap     s2       1
//   SSLinear__tWaterReflection  s3       1
//

    ps_3_0
    def c0, 0.5, 2, -1, 0
    def c22, 1, 0.00392156886, 1.53787005e-005, 10
    def c23, 0.00313100009, 12.9200001, 0.416666657, 0
    def c24, 1.05499995, -0.0549999997, 0, 0
def c200, 0, 0, 0.0625, 0
dcl_2d s13
    dcl_color v0.y
    dcl_texcoord v1.xyw
    dcl_texcoord1 v2.xyz
    dcl_texcoord2 v3
    dcl_texcoord3 v4.xyz
    dcl_texcoord4 v5.xyz
    dcl_texcoord5 v6.xy

dcl_texcoord6 v8.xyw			//shifted v1

    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    mad r0.xy, v6, c13.w, c13
    texld r0, r0, s1
    mad r0.xy, r0, c0.y, c0.z
    mul r0.xy, r0, c13.z
    mad r1.xy, v6, c12.w, c12
    texld r1, r1, s0
    mad r1.xy, r1, c0.y, c0.z
    add r2.z, r1.z, r1.z
    mul r2.xy, r1, c12.z
    mov r0.z, c0.z
    add r0.xyz, r0, r2
    nrm r1.xyz, r0
    nrm r0.xyz, v4
    mul r0.xyz, r1.y, r0
    nrm r2.xyz, v3
    mad r0.xyz, r2, r1.x, r0
    nrm r2.xyz, v2
    mad r0.xyz, r2, r1.z, r0
    nrm r1.xyz, r0
    add r0.xyz, -c11, v5
    nrm r2.xyz, r0
    dp3 r0.x, r2, r1
    add r0.y, r0.x, -c0.z
    add r0.x, r0.x, r0.x
    mad r0.xzw, r1.xyyz, -r0.x, r2.xyyz
    pow r1.x, r0.y, c16.w
    mad_sat r0.y, r1.x, c17.x, c17.y
    
	add r1.xy, c0.x, vPos
    mul r1.xy, r1, c10.zwzw
    texld r1, r1, s2			//Depth map, uses vPos
    dp3 r1.x, r1, c22
	
    rcp r1.y, v1.w 				//UNSHIFTED
    mul r3.xy, r1.y, v1
    mul r1.y, r1.y, c17.z
	mul r4, r3.y, c2	
    mad r4, r3.x, c1, r4
    mad r4, r1.x, c3, r4
    add r4, r4, c4				
    rcp r1.x, r4.w		
    mad r1.xzw, r4.xyyz, r1.x, -v5.xyyz
    dp3 r1.x, r2, r1.xzww
    mul r1.z, r1.x, c14.z
    cmp r1.x, r1.x, r1.z, c0.w
    add_sat r1.x, r1.x, c14.w
    mul r1.x, r1.x, v3.w

	mul oC0.w, r0.y, r1.x		//work out oC0.w using unshifted

//---
    rcp r1.y, v8.w //v1.w		//SHIFTED	
    mul r3.xy, r1.y, v8 //v1
    mul r1.y, r1.y, c17.z
	mul r4, r3.y, c2			//SHIFTED
    mad r4, r3.x, c1, r4
    mad r4, r1.x, c3, r4
    add r4, r4, c4				
    rcp r1.x, r4.w				//SHIFTED
    mad r1.xzw, r4.xyyz, r1.x, -v5.xyyz
    dp3 r1.x, r2, r1.xzww
    mul r1.z, r1.x, c14.z
    cmp r1.x, r1.x, r1.z, c0.w
    add_sat r1.x, r1.x, c14.w
    mul r1.x, r1.x, v3.w
//---
	

	
	
	
    mul r1.xz, -r2.y, c6.xyyw			//View Transform
    mad r1.xz, r2.x, c5.xyyw, r1
    mad r1.xz, r2.z, c7.xyyw, r1
	
    mul r0.yz, r0.z, c6.xxyw			//View Transform
    mad r0.xy, r0.x, c5, r0.yzzw
    mad r0.xy, r0.w, c7, r0
    
	add r0.xy, -r1.xzzw, r0
    add r0.zw, -r3_abs.xyxy, -c0.z
    mul_sat r0.zw, r0, c22.w
    mul r0.xy, r0.zwzw, r0
    mul r0.xy, r1.y, r0
    mul r0.xy, r0, c14.x
    mov r3.z, -r3.y
    add r0.zw, r3.xyxz, c9.xyxy
    mad r0.xy, r0.zwzw, c9.zwzw, r0
    max r1.xy, r0, c15
    min r0.xy, c15.zwzw, r1

    texld r0, r0, s3				//reflection map, uses r0
    mul r0.xyz, r0, c16
    add r0.w, -c19.z, v0.y
    mul_sat r0.w, r0.w, c19.w
    mul r0.w, r0.w, c18.w
    mul r1.x, r0.w, c21.y
    mov r1.z, c0.z
    mad r0.w, r0.w, -c21.y, -r1.z
    mul r1.xyw, r1.x, c18.xyzz
    add r2.x, -c19.x, v5.y
    mul_sat r2.x, r2.x, c19.y
    mul r2.x, r2.x, c20.w
    mul r2.y, r2.x, c21.z
    mad r1.z, r2.x, -c21.z, -r1.z
    mul r0.w, r0.w, r1.z
    min r1.z, r0.w, -c0.z
    lrp r3.xyz, r2.y, c20, r1.xyww
    mad r0.xyz, r0, r1.z, r3
    mov r1.x, c23.x
    mad r1.xyz, r0, -c8.x, r1.x
    mul r0.xyz, r0, c8.x
    pow r1.w, r0.x, c23.z
    mad r0.w, r1.w, c24.x, c24.y
    mul r2.xyz, r0, c23.y
    cmp oC0.x, r1.x, r2.x, r0.w
    pow r1.x, r0.y, c23.z
    pow r1.w, r0.z, c23.z
    mad r0.x, r1.w, c24.x, c24.y
    cmp oC0.z, r1.z, r2.z, r0.x
    mad r0.x, r1.x, c24.x, c24.y
    cmp oC0.y, r1.y, r2.y, r0.x

// approximately 114 instruction slots used (4 texture, 110 arithmetic)
 