// 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 CBHDRFactor__packed0;
//   float4 CBScreen__packed0;
//   float4 CBScreen__packed1;
//   float4 CBViewProjection__packed4;
//   float4 CBWaterBubble__packed0;
//   float4 CBWaterBubble__packed1;
//   float4 CBWaterDetail__packed0;
//   float4 CBWaterDetail__packed1;
//   float4 CBWaterFog__packed0;
//   float4 CBWater__packed0;
//   float4 CBWater__packed1;
//   float4 CBWater__packed2;
//   float4 CBWater__packed3;
//   sampler2D SSLinear__tWaterReflection;
//   sampler2D SSPoint__tWaterDepthMap;
//   sampler2D SSWrapLinear__tWaterBubble;
//   sampler2D SSWrapLinear__tWaterBubble2;
//   sampler2D SSWrapLinear__tWaterDetail;
//   sampler2D SSWrapLinear__tWaterDetail2;
//   float4 fLSFactor0;
//   float4 fLSFactor1;
//   float4 fLSFactor2;
//   float3 fLSSunDir;
//   row_major float4x4 fView;
//   row_major float4x4 fViewProjI;
//   float2 fWaterBubbleMaskThreshold;
//   float4 fWaterBubbleOffset;
//
//
// Registers:
//
//   Name                        Reg   Size
//   --------------------------- ----- ----
//   fViewProjI                  c1       4
//   fView                       c5       3
//   CBHDRFactor__packed0        c8       1
//   CBScreen__packed0           c9       1
//   CBScreen__packed1           c10      1
//   CBWaterBubble__packed0      c11      1
//   CBWaterBubble__packed1      c12      1
//   fWaterBubbleMaskThreshold   c13      1
//   fWaterBubbleOffset          c14      1
//   CBViewProjection__packed4   c15      1
//   CBWaterDetail__packed0      c16      1
//   CBWaterDetail__packed1      c17      1
//   CBWater__packed0            c18      1
//   CBWater__packed1            c19      1
//   CBWater__packed2            c20      1
//   CBWater__packed3            c21      1
//   CBWaterFog__packed0         c22      1
//   fLSFactor0                  c23      1
//   fLSFactor1                  c24      1
//   fLSFactor2                  c25      1
//   fLSSunDir                   c26      1
//   CBFog__packed0              c27      1
//   CBFog__packed1              c28      1
//   CBFog__packed2              c29      1
//   SSPoint__tWaterDepthMap     s0       1
//   SSWrapLinear__tWaterDetail  s1       1
//   SSWrapLinear__tWaterDetail2 s2       1
//   SSWrapLinear__tWaterBubble  s3       1
//   SSWrapLinear__tWaterBubble2 s4       1
//   SSLinear__tWaterReflection  s5       1
//

    ps_3_0
    def c0, 0.5, 2, -1, 0
    def c30, 1, 0.00392156886, 1.53787005e-005, 10
    def c31, 1.44269502, -1.5, 0.00313100009, 12.9200001
    def c32, 0.416666657, 1.05499995, -0.0549999997, 0
    dcl_texcoord v0.xyw
    dcl_texcoord1 v1
    dcl_texcoord2 v2
    dcl_texcoord3 v3
    dcl_texcoord4 v4.xyz
    dcl_texcoord5 v5.xyz
    dcl_texcoord6 v6.xy
dcl_texcoord7 v7.xyw
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    add r0.xy, c0.x, vPos
    mul r0.xy, r0, c10.zwzw
    texld r0, r0, s0
    dp3 r0.x, r0, c30
	
    rcp r0.y, v0.w
    mul r1.xy, r0.y, v0
    mul r0.y, r0.y, c21.z
    mul r2, r1.y, c2
    mad r2, r1.x, c1, r2
    mad r2, r0.x, c3, r2
    add r2, r2, c4
    rcp r0.x, r2.w
    mad r0.xzw, r2.xyyz, r0.x, -v4.xyyz
    add r2.xyz, -c15, v4
    dp3 r1.w, r2, r2
    rsq r1.w, r1.w
    mul r2.xyz, r1.w, r2
    rcp r1.w, r1.w
    mul r3.xyz, r1.w, c23
    mul r3.xyz, r3, c31.x
    dp3 r0.x, r2, r0.xzww
    mul r0.z, r0.x, c18.z
    cmp r0.x, r0.x, r0.z, c0.w
    add_sat r0.x, r0.x, c18.w
    mul oC0.w, r0.x, v2.w
	
//-
rcp r0.y, v7.w
mul r1.xy, r0.y, v7
mul r0.y, r0.y, c21.z
mul r2, r1.y, c2
mad r2, r1.x, c1, r2
mad r2, r0.x, c3, r2
add r2, r2, c4
rcp r0.x, r2.w
mad r0.xzw, r2.xyyz, r0.x, -v4.xyyz
add r2.xyz, -c15, v4
dp3 r1.w, r2, r2
rsq r1.w, r1.w
mul r2.xyz, r1.w, r2
rcp r1.w, r1.w
mul r3.xyz, r1.w, c23
mul r3.xyz, r3, c31.x
dp3 r0.x, r2, r0.xzww
mul r0.z, r0.x, c18.z
cmp r0.x, r0.x, r0.z, c0.w
add_sat r0.x, r0.x, c18.w
mul oC0.w, r0.x, v2.w
//-

    mad r0.xz, v6.xyyw, c17.w, c17.xyyw
    texld r4, r0.xzzw, s2
    mad r0.xz, r4.xyyw, c0.y, c0.z
    mul r4.xy, r0.xzzw, c17.z
    mad r0.xz, v6.xyyw, c16.w, c16.xyyw
    texld r5, r0.xzzw, s1
    mad r0.xz, r5.xyyw, c0.y, c0.z
    add r5.z, r5.z, r5.z
    mul r5.xy, r0.xzzw, c16.z
    mov r4.z, c0.z
    add r0.xzw, r4.xyyz, r5.xyyz
    nrm r4.xyz, r0.xzww
    nrm r5.xyz, v3
    mul r0.xzw, r4.y, r5.xyyz
    nrm r5.xyz, v2
    mad r0.xzw, r5.xyyz, r4.x, r0
    nrm r5.xyz, v1
    mad r0.xzw, r5.xyyz, r4.z, r0
    nrm r4.xyz, r0.xzww
    dp3 r0.x, r2, r4
    add r0.x, r0.x, r0.x
    mad r0.xzw, r4.xyyz, -r0.x, r2.xyyz
    dp3 r1.w, r4, -r2
    add r1.w, -r1.w, -c0.z
    pow r2.w, r1.w, c20.w
    mad_sat r1.w, r2.w, c21.x, c21.y
    mul r4.xy, r0.z, c6
    mad r0.xz, r0.x, c5.xyyw, r4.xyyw
    mad r0.xz, r0.w, c7.xyyw, r0
    mul r4.xy, -r2.y, c6
    mad r4.xy, r2.x, c5, r4
    mad r4.xy, r2.z, c7, r4
    dp3 r0.w, r2, c26
    add r0.xz, r0, -r4.xyyw
    add r2.xy, -r1_abs, -c0.z
    mul_sat r2.xy, r2, c30.w
    mul r0.xz, r0, r2.xyyw
    mul r0.xy, r0.y, r0.xzzw
    mul r0.xy, r0, c18.x
    mov r1.z, -r1.y
    add r1.xy, r1.xzzw, c9
    mad r0.xy, r1, c9.zwzw, r0
    max r1.xy, r0, c19
    min r0.xy, c19.zwzw, r1
    texld r2, r0, s5
    mov r0.xyz, c22
    mad r0.xyz, r2, c20, -r0
    mad r0.xyz, r1.w, r0, c22
    mul r1.xyz, r0, v5
    mul r2, c11.zzww, v4.y
    mad r2, v6.xyxy, c11.xxyy, r2
    add r2, r2, c14
    texld r4, r2, s3
    texld r2, r2.zwzw, s4
    mad r0.xyz, r0, -v5, r4
    mad_sat r1.w, v1.w, c12.x, c12.y
    mul r1.w, r4.w, r1.w
    mad r0.xyz, r1.w, r0, r1
    mad_sat r1.x, v3.w, c13.y, c13.x
    mul r1.x, r1.x, r2.w
    lrp r4.xyz, r1.x, r2, r0
    exp r0.x, r3.x
    exp r0.y, r3.y
    exp r0.z, r3.z
    add r0.xyz, r0, c0.z
    mov r1.z, c0.z
    mad r0.xyz, c27.w, r0, -r1.z
    add r1.x, -c28.x, v4.y
    mul_sat r1.x, r1.x, c28.y
    mad r1.y, r1.x, -c29.w, -r1.z
    mul r1.x, r1.x, c29.w
    mul r1.yzw, r0.xxyz, r1.y
    add r0.xyz, -r0, -c0.z
    mov r2.w, c23.w
    mad r2.x, r2.w, r0.w, c24.w
    mad r0.w, r0.w, r0.w, -c0.z
    pow r3.x, r2.x, c31.y
    mul r2.xyz, r3.x, c25
    mad r2.xyz, r0.w, c24, r2
    mul r0.xyz, r0, r2
    lrp r2.xyz, r1.x, c29, r0
    mad r0.xyz, r4, r1.yzww, r2
    mov r1.z, c31.z
    mad r1.xyz, r0, -c8.x, r1.z
    mul r0.xyz, r0, c8.x
    pow r1.w, r0.x, c32.x
    mad r0.w, r1.w, c32.y, c32.z
    mul r2.xyz, r0, c31.w
    cmp oC0.x, r1.x, r2.x, r0.w
    pow r1.x, r0.y, c32.x
    pow r1.w, r0.z, c32.x
    mad r0.x, r1.w, c32.y, c32.z
    cmp oC0.z, r1.z, r2.z, r0.x
    mad r0.x, r1.x, c32.y, c32.z
    cmp oC0.y, r1.y, r2.y, r0.x

// approximately 140 instruction slots used (6 texture, 134 arithmetic)
 