// RESIDENT EVIL 6 - WATER REFLECTIONS
// 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 CBWaterFog__packed0;
//   float4 CBWaterFog__packed1;
//   float4 CBWater__packed0;
//   float4 CBWater__packed1;
//   float4 CBWater__packed2;
//   float4 CBWater__packed3;
//   sampler2D SSLinear__tWaterReflection;
//   sampler2D SSLinear__tWaterRefraction;
//   sampler2D SSPoint__tWaterDepthMap;
//   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
//   CBWater__packed0           c12      1
//   CBWater__packed1           c13      1
//   CBWater__packed2           c14      1
//   CBWater__packed3           c15      1
//   CBWaterFog__packed0        c16      1
//   CBWaterFog__packed1        c17      1
//   CBFog__packed0             c18      1
//   CBFog__packed1             c19      1
//   CBFog__packed2             c20      1
//   CBFog__packed4             c21      1
//   SSPoint__tWaterDepthMap    s0       1
//   SSLinear__tWaterReflection s1       1
//   SSLinear__tWaterRefraction s2       1
//

    ps_3_0
    def c0, 0.5, 1, 0.00392156886, 1.53787005e-005
    def c22, 0, 10, 0.0392800011, 0.0773993805
    def c23, 0.0549999997, 0.947867274, 2.4000001, 0.00313100009
    def c24, 12.9200001, 0.416666657, 1.05499995, -0.0549999997
    dcl_color v0.y
    dcl_texcoord v1.xyw
    dcl_texcoord1 v2.xyz
    dcl_texcoord2 v3.w
    dcl_texcoord3 v4.xyz
    dcl_texcoord4 v5.xyz
dcl_texcoord5 v6.xyw
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    add r0, -c11.yxyz, v4.yxyz
    dp3 r1.x, r0.yzww, r0.yzww
    rsq r1.x, r1.x
    mul r0, r0, r1.x
    nrm r1.xyz, v2
    dp3 r1.w, r0.yzww, r1
    add r1.w, r1.w, r1.w
    mad r2.xyz, r1, -r1.w, r0.yzww
    dp3 r1.x, r1, -r0.yzww
    add r1.x, -r1.x, c0.y
    pow r2.w, r1.x, c14.w
    mad_sat r1.x, r2.w, c15.x, c15.y
    mul r1.yz, r2.y, c6.xxyw
    mad r1.yz, r2.x, c5.xxyw, r1
    mad r1.yz, r2.z, c7.xxyw, r1
    mul r2.xy, -r0.x, c6
    mad r2.xy, r0.y, c5, r2
    mad r2.xy, r0.w, c7, r2
    add r1.yz, r1, -r2.xxyw
	
    rcp r0.x, v1.w
    mul r2.xy, r0.x, v1
    mul r0.x, r0.x, c15.z
    add r3.xy, -r2_abs, c0.y
    mul_sat r3.xy, r3, c22.y
    mul r1.yz, r1, r3.xxyw
    mul r1.yz, r0.x, r1
    mul r3.xy, -r1.yzzw, c12.y
    mul r1.yz, r1, c12.x
    mul r4, r2.y, c2
    mad r4, r2.x, c1, r4
    add r3.zw, c0.x, vPos.xyxy
    mul r3.zw, r3, c10
    texld r5, r3.zwzw, s0
    dp3 r0.x, r5, c0.yzww
    mad r4, r0.x, c3, r4
    add r4, r4, c4
    rcp r0.x, r4.w
    mad r4.xyz, r4, r0.x, -v4
    dp3 r0.x, r0.yzww, r4
    max r4.w, r0.x, c22.x
    mad_sat r0.x, c12.z, r4.w, c12.w
    mul r0.x, r0.x, v3.w
    mad r0.yz, r3.xxyw, r0.x, r3.xzww
    mov oC0.w, r0.x
    
//-
rcp r0.x, v6.w
mul r2.xy, r0.x, v6
mul r0.x, r0.x, c15.z
add r3.xy, -r2_abs, c0.y
mul_sat r3.xy, r3, c22.y
mul r1.yz, r1, r3.xxyw
mul r1.yz, r0.x, r1
mul r3.xy, -r1.yzzw, c12.y
mul r1.yz, r1, c12.x
mul r4, r2.y, c2
mad r4, r2.x, c1, r4
add r3.zw, c0.x, vPos.xyxy
mul r3.zw, r3, c10
texld r5, r3.zwzw, s0
dp3 r0.x, r5, c0.yzww
mad r4, r0.x, c3, r4
add r4, r4, c4
rcp r0.x, r4.w
mad r4.xyz, r4, r0.x, -v4
dp3 r0.x, r0.yzww, r4
max r4.w, r0.x, c22.x
mad_sat r0.x, c12.z, r4.w, c12.w
mul r0.x, r0.x, v3.w
mad r0.yz, r3.xxyw, r0.x, r3.xzww
//-
	
	texld r3, r3.zwzw, s2
    max r5.xy, r0.yzzw, c13
    min r0.xy, c13.zwzw, r5
    rcp r5.x, c9.z
    rcp r5.y, c9.w
    mad r0.zw, r0.xyxy, r5.xyxy, -c9.xyxy
    mul r5, r0.w, c2
    mad r5, r0.z, c1, r5
    texld r6, r0, s0
    texld r0, r0, s2
    dp3 r1.w, r6, c0.yzww
    mad r5, r1.w, c3, r5
    add r5, r5, c4
    rcp r1.w, r5.w
    mad r5.xyz, r5, -r1.w, v4
    dp3 r1.w, r5, r5
    rsq r1.w, r1.w
    rcp r5.w, r1.w
    add r6.xyz, r3, c23.x
    mul r6.xyz, r6, c23.y
    pow r1.w, r6.x, c23.z
    add r7.xyz, -r3, c22.z
    mul r3.xyz, r3, c22.w
    cmp r8.x, r7.x, r3.x, r1.w
    pow r1.w, r6.y, c23.z
    pow r2.w, r6.z, c23.z
    cmp r8.z, r7.z, r3.z, r2.w
    cmp r8.y, r7.y, r3.y, r1.w
    mul r4.xyz, r8, c8.y
    add r3.xyz, r0, c23.x
    mul r3.xyz, r3, c23.y
    pow r1.w, r3.x, c23.z
    add r6.xyz, -r0, c22.z
    mul r0.xyz, r0, c22.w
    cmp r7.x, r6.x, r0.x, r1.w
    pow r0.x, r3.y, c23.z
    pow r1.w, r3.z, c23.z
    cmp r7.z, r6.z, r0.z, r1.w
    cmp r7.y, r6.y, r0.y, r0.x
    mul r5.xyz, r7, c8.y
    cmp r0, -r0.w, r5, r4
    add r0.w, r0.w, -c17.x
    mul r0.w, r0.w, c17.y
    max r1.w, r0.w, c22.x
    min r0.w, c16.w, r1.w
    lrp r3.xyz, r0.w, c16, r0
    mov r2.z, -r2.y
    add r0.xy, r2.xzzw, c9
    mad r0.xy, r0, c9.zwzw, r1.yzzw
    max r1.yz, r0.xxyw, c13.xxyw
    min r0.xy, c13.zwzw, r1.yzzw
    texld r0, r0, s1
    mad r0.xyz, r0, c14, -r3
    mad r0.xyz, r1.x, r0, r3
    mul r0.xyz, r0, v5
    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.y, c0.y
    mad r0.w, r0.w, -c21.y, r1.y
    mul r1.xzw, r1.x, c18.xyyz
    add r2.x, -c19.x, v4.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.y, r2.x, -c21.z, r1.y
    mul r0.w, r0.w, r1.y
    min r1.y, r0.w, c0.y
    lrp r3.xyz, r2.y, c20, r1.xzww
    mad r0.xyz, r0, r1.y, r3
    mov r0.w, c23.w
    mad r1.xyz, r0, -c8.x, r0.w
    mul r0.xyz, r0, c8.x
    pow r1.w, r0.x, c24.y
    mad r0.w, r1.w, c24.z, c24.w
    mul r2.xyz, r0, c24.x
    cmp oC0.x, r1.x, r2.x, r0.w
    pow r1.x, r0.y, c24.y
    pow r1.w, r0.z, c24.y
    mad r0.x, r1.w, c24.z, c24.w
    cmp oC0.z, r1.z, r2.z, r0.x
    mad r0.x, r1.x, c24.z, c24.w
    cmp oC0.y, r1.y, r2.y, r0.x

// approximately 150 instruction slots used (5 texture, 145 arithmetic)
 