//campaign sea splashes
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 ambient_cube_tb[2];
//   float3 camera_position;
//   float3 g_camera_aligned_z_axis;
//   float g_fog_clear_distance;
//   float g_fog_colour_blend;
//   float g_fog_distance_scale;
//   float g_fog_distance_start;
//   float g_fog_distance_strength;
//   float g_fog_height_bottom;
//   float g_fog_height_strength;
//   float g_fog_height_top;
//   float g_hdr_on;
//   float4 g_viewport_offset_scale;
//   float3 g_volume_fog_colour;
//   sampler2D gbuffer_channel_4_sampler;
//   float4x4 inv_projection;
//   sampler2D s_diffuse1;
//   sampler2D s_diffuse2;
//   sampler2D s_diffuse3;
//   sampler2D s_diffuse4;
//   sampler2D s_diffuse5;
//   sampler2D s_diffuse6;
//   samplerCUBE s_sky;
//   float3 sun_colour;
//   float3 sun_direction;
//   float4x4 view;
//   float4x4 view_projection;
//
//
// Registers:
//
//   Name                      Reg   Size
//   ------------------------- ----- ----
//   view_projection           c0       4
//   inv_projection            c4       4
//   view                      c8       3
//   camera_position           c11      1
//   sun_direction             c12      1
//   sun_colour                c13      1
//   ambient_cube_tb           c14      1
//   g_hdr_on                  c15      1
//   g_volume_fog_colour       c16      1
//   g_fog_distance_start      c17      1
//   g_fog_distance_strength   c18      1
//   g_fog_distance_scale      c19      1
//   g_fog_height_bottom       c20      1
//   g_fog_height_top          c21      1
//   g_fog_height_strength     c22      1
//   g_fog_colour_blend        c23      1
//   g_fog_clear_distance      c24      1
//   g_camera_aligned_z_axis   c25      1
//   g_viewport_offset_scale   c26      1
//   s_sky                     s0       1
//   gbuffer_channel_4_sampler s1       1
//   s_diffuse1                s2       1
//   s_diffuse2                s3       1
//   s_diffuse3                s4       1
//   s_diffuse4                s5       1
//   s_diffuse5                s6       1
//   s_diffuse6                s7       1
//

    ps_3_0
    def c27, 0.100000001, 1, 0, 2
    def c28, -5, -4, -3, -2
    def c29, 1, 0.00400000019, 360, 1000
    def c30, 0.5, -0.5, 8, -4
    def c31, 1.44269502, -2, 3, 0.00100000005
    def c32, 0.0250000004, 1.5, 0.5, 0
    def c33, 2, -2, -1, 1
    def c34, 1, 0.25, 0.75, 0
    def c35, 2.5, 0.75, 0, 0.5
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl_color v0
    dcl_texcoord v1.xy
    dcl_texcoord1 v2.xyz
    dcl_texcoord2 v3.zw
    dcl_texcoord4 v4.xy
    dcl_texcoord7 v5.xyz
    dcl_cube s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    dcl_2d s6
    dcl_2d s7
    add r0.xy, c27.x, v4
    frc r0.zw, r0.xyxy
    add r0.xz, -r0.zyww, r0.xyyw
    add r1, r0.x, c28
    cmp r2, -r1_abs, c27.y, c27.z
    cmp r3.xyz, -r0_abs.x, c34, c34.w
    add r2.w, r2.w, r3.x
    cmp r2.w, -r2.w, c27.z, c27.y
    add r2.zw, r2.xyzy, r2.w
    cmp r2.zw, -r2, c27.z, c27.y
    add r2.zw, r2.xyyx, r2
    cmp r2.z, -r2.z, c27.z, c27.y
    add r2.x, r2.x, r2.z
    if_lt -r2.x, c27.z
      if_eq r0.y, r0.w
        texld r4, v1, s2
      else
        if_eq r0.z, c27.y
          texld r4, v1, s3
        else
          if_eq r0.z, c27.w
            texld r4, v1, s4
          else
            if_eq r0.z, -c28.z
              texld r4, v1, s5
            else
              if_eq r0.z, -c28.y
                texld r4, v1, s6
              else
                if_eq r0.z, -c28.x
                  texld r4, v1, s7
                else
                  mov r4, c27.z
                endif
              endif
            endif
          endif
        endif
      endif
      if_ne v5.x, -v5.x
        if_eq r0.y, r0.w
          texld r5, v5, s2
          lrp r6, v5.z, r5, r4
          mov r4, r6
        else
          if_eq r0.z, c27.y
            texld r5, v5, s3
            lrp r6, v5.z, r5, r4
            mov r4, r6
          else
            if_eq r0.z, c27.w
              texld r5, v5, s4
              lrp r6, v5.z, r5, r4
              mov r4, r6
            else
              if_eq r0.z, -c28.z
                texld r5, v5, s5
                lrp r6, v5.z, r5, r4
                mov r4, r6
              else
                if_eq r0.z, -c28.y
                  texld r5, v5, s6
                  lrp r6, v5.z, r5, r4
                  mov r4, r6
                else
                  if_eq r0.z, -c28.x
                    texld r5, v5, s7
                    lrp r6, v5.z, r5, r4
                    mov r4, r6
                  endif
                endif
              endif
            endif
          endif
        endif
      endif
      mul r4, r4, v0
      mul r4.xyz, r4, v0.w
    else
      mov r4, v0
    endif
    cmp r5, -r1_abs.wyxw, c34.yzyz, c34.w
    add r0.yz, r3, r5.xxww
    add r0.y, r5.y, r0.y
    add r0.y, r5.z, r0.y
    cmp r3.xy, -r1_abs.zxzw, c35, c35.z
    add r0.z, r0.z, r3.x
    add r0.z, r2.y, r0.z
    add r0.z, r3.y, r0.z
    nrm r3.xyz, -c12
    dp3 r0.w, r3, -c25
    add r1.w, r0.w, -c27.y
    cmp r0.w, r0.w, r1.w, -c27.y
    mul r0.y, r0.w, r0.y
    mad r0.y, v3.w, r0.y, c27.y
    mul r3.xyz, r0.z, r4
    mul r0.yzw, r0.y, r3.xxyz
    mul r0.yzw, r0, c13.xxyz
    mov r6.xyz, c29
    cmp r2.yz, -c15.x, r6.x, r6
    mul r5.yzw, r2.z, c14.xxyz
    mul r3.xyz, r3, r5.yzww
    mul r3.xyz, r2.y, r3
    mad r0.yzw, r0, r2.y, r3.xxyz
    mul r3.xyz, r0.yzww, v3.z
    mov r3.w, r4.w
    cmp r3, -r2.x, r4, r3
    if_lt -r2.x, c27.z
      cmp r0.x, -r0_abs.x, c35.w, c35.z
      add r0.x, r5.x, r0.x
      cmp r0.yzw, -r1_abs.xzyx, c32.xxyz, c32.w
      add r0.x, r0.y, r0.x
      add r0.x, r0.z, r0.x
      add r0.x, r0.w, r0.x
      mad r1, v2.xyzx, c27.yyyz, c27.zzzy
      dp4 r4.x, r1, c0
      dp4 r4.y, r1, c1
      dp4 r0.y, r1, c3
	  
texldl r24, c220.z, s13		
add r24.y, r0.y, -r24.y
mul r24.x, r24.x, r24.y
add r4.x, r4.x, r24.x

      rcp r0.y, r0.y
      mul r0.yz, r0.y, r4.xxyw
      mad r0.yz, r0, c30.xxyw, c30.x
      mad r4.xy, r0.yzzw, c26.zwzw, c26
      mov r4.zw, c27.z
      texldl r5, r4, s1
      mad r4.xy, r4, c33, c33.zwzw
      mad r4.zw, r5.x, c27.xyyz, c27.xyzy
      dp4 r0.y, r4, c6
      dp4 r0.z, r4, c7
      rcp r0.z, r0.z
      dp4 r0.w, r1, c10
      mad r0.y, r0.y, r0.z, -r0.w
      rcp r0.x, r0.x
      mul_sat r0.x, r0.x, r0.y
      mul r3, r0.x, r3
    endif
    add r0.xyz, -c11, v2
    dp3 r1.x, r0, r0
    rsq r1.x, r1.x
    rcp r1.x, r1.x
    mov r1.yz, c27
    add r1.w, r1.y, -c17.x
    mad r1.w, r1.w, c30.z, c30.w
    add r1.y, r1.y, -c18.x
    mul r1.y, r1.y, c29.w
    rcp r1.y, r1.y
    mad r1.y, r1.x, r1.y, r1.w
    mul r1.y, r1.y, c31.x
    exp r1.y, r1.y
    rcp r1.y, r1.y
    mad_sat r1.y, c19.x, -r1.y, c19.x
    add r1.w, c21.x, -v2.y
    mov r2.x, c21.x
    add r2.x, r2.x, -c20.x
    add r1.w, r1.w, -c20.x
    rcp r2.x, r2.x
    mul_sat r1.w, r1.w, r2.x
    mad r2.x, r1.w, c31.y, c31.z
    mul r1.w, r1.w, r1.w
    mul r1.w, r1.w, r2.x
    mov r4.w, c31.w
    add r2.x, r4.w, -c24.x
    rcp r2.z, c24.x
    cmp r2.x, r2.x, c29.w, r2.z
    mul_sat r1.x, r1.x, r2.x
    mad r2.x, r1.x, c31.y, c31.z
    mul r1.x, r1.x, r1.x
    mul r1.x, r1.x, r2.x
    mov r4.xyz, c13
    mul r4.xyz, r4, c16
    mul r4.xyz, r4, c32.y
    abs r2.x, c12.y
    mul r4.xyz, r2.x, r4
    mul r5.xyz, r2.y, r4
    max r0.w, r0.y, c27.z
    texld r0, r0.xwzw, s0
    dp2add_sat r0.w, r1.y, c23.x, r1.z
    mad r0.xyz, r4, -r2.y, r0
    mad r0.xyz, r0.w, r0, r5
    mad r0.w, c22.x, r1.w, r1.y
    mul_sat r0.w, r0.w, r1.x
    mad r0.xyz, r0, r3.w, -r3
    mad r0.xyz, r0.w, r0, r3
    cmp r3.xyz, -r2.w, r3, r0
    mov oC0, r3

// approximately 218 instruction slots used (15 texture, 203 arithmetic)
 