//Floaty 2d ground decals
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float4 g_campaign_world_bounds;
//   float g_force_snow_shader;
//   float4 g_screen_size;
//   float g_shroud_enabled;
//   float2 g_texture_ratio;
//   float2 g_uv_offset;
//   float4 g_viewport_offset_scale;
//   float g_vpos_texel_offset;
//   sampler2D gbuffer_channel_4_sampler;
//   float4x4 inv_view_projection;
//   sampler2D s_diffuse_map_clamp;
//   sampler2D s_diffuse_map_wrap;
//   sampler2D s_gbuffer_normal_wrap;
//   sampler2D s_normal;
//   sampler2D s_normal_wrap;
//   sampler2D s_shroud;
//
//
// Registers:
//
//   Name                      Reg   Size
//   ------------------------- ----- ----
//   inv_view_projection       c0       4
//   g_screen_size             c4       1
//   g_vpos_texel_offset       c5       1
//   g_shroud_enabled          c6       1
//   g_campaign_world_bounds   c7       1
//   g_uv_offset               c8       1
//   g_force_snow_shader       c9       1
//   g_viewport_offset_scale   c10      1
//   g_texture_ratio           c11      1
//   gbuffer_channel_4_sampler s0       1
//   s_shroud                  s1       1
//   s_diffuse_map_clamp       s2       1
//   s_diffuse_map_wrap        s3       1
//   s_normal                  s4       1
//   s_normal_wrap             s5       1
//   s_gbuffer_normal_wrap     s6       1
//

    ps_3_0
    def c12, 2, -2, -1, 1
    def c13, 0.158691406, 0.00196078443, 0.00999999978, -1
    def c14, 0.449999988, 0.579999983, 0.680000007, 100
    def c15, -2, 3, -0.100000001, -0.5
    def c16, 2.5, 0.200000003, 0, 0
    def c17, 1, 0, -0.5, 0.5
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl_texcoord v0
    dcl_texcoord1 v1
    dcl_texcoord2 v2
    dcl_texcoord3 v3.xyz
    dcl_texcoord4 v4.xy
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    dcl_2d s6

    add r0, c5.x, vPos.xyyy
    mul r1, r0, c4.zwww
    texldl r2, r1.xwww, s0
    mov r2.zw, c4
    mad r0.xy, r0.xwzw, r2.zwzw, -c10
    rcp r3.x, c10.z
    rcp r3.y, c10.w
    mul r0.xy, r0, r3
    mad r0.xy, r0, c12, c12.zwzw
    mad r0.zw, r2.x, c17.xyxy, c17.xyyx
    dp4 r2.x, r0, c0
    dp4 r2.y, r0, c1
    dp4 r2.z, r0, c2
    dp4 r0.x, r0, c3
	
mov r10.xyz, r2.xyz
mov r10.w, r0.x

rcp r12.w, r0.x
mul r10, r10, r12.w

dp4 r11.x, r10, c200
dp4 r11.y, r10, c201 
dp4 r11.z, r10, c202 
dp4 r11.w, r10, c203 

texldl r24, c220.z, s13
add r24.y, r11.w, -r24.y
mul r24.x, r24.x, r24.y
add r11.x, r11.x, -r24.x

dp4 r10.x, r11, c204 //c0
dp4 r10.y, r11, c205 //c1
dp4 r10.z, r11, c206 //c2
dp4 r10.w, r11, c207 //c3

mul r10, r10, r0.x
mov r2.xyz, r10.xyz  

    rcp r0.x, r0.x
    texldl r1, r1, s6
    mad r0.yzw, r1.xxyz, c12.x, c12.z
    nrm r1.xyz, r0.yzww
    mov r3.x, v0.w
    mov r3.y, v1.w
    mov r3.z, v2.w
    mad r0.yzw, r2.xxyz, r0.x, -r3.xxyz
    mul r3.xyz, r0.z, v1
    mad r3.xyz, r0.y, v0, r3
    mad r0.yzw, r0.w, v2.xxyz, r3.xxyz
    mul r3.xyz, v3, v3
    rcp r4.x, r3.x
    rcp r4.y, r3.y
    rcp r4.z, r3.z
    mad r3.xyz, r0.yzww, -r4, c17.z
    mad r5.xyz, r0.yzww, r4, c17.z
    cmp r5.xyz, r5, c17.y, c17.x
    cmp r3.xyz, r3, c17.y, r5
    mul r0.z, r3.y, r3.x
    mul r0.z, r3.z, r0.z
    cmp r3, -r0.z, c12.z, c12.w
    texkill r3
    mad r0.yz, r0.xyww, r4.xxzw, c17.w
    mov r3.y, v2.z
    mov r3.z, v0.z
    mov r3.x, v1.z
    mul r4.xyz, r1.zxyw, r3
    mad r3.xyz, r1.yzxw, r3.yzxw, -r4
    nrm r4.xyz, r3
    mov r3.z, v1.x
    mov r3.x, v2.x
    mov r3.y, v0.x
    mul r5.xyz, r1.yzxw, r3
    mad r3.xyz, r3.zxyw, r1.zxyw, -r5
    nrm r5.xyz, r3
    texld r3, r0.yzzw, s2
    mul r6.x, r3.w, v4.y
    mul r2.yw, r0.xyzz, v3.xxzz
    mul r2.yw, r2, c11.xxzy
    mul r2.yw, r2, c13.x
    texld r7, r2.ywzw, s3
    texld r8, r2.ywzw, s5
    add r2.yw, r8.xwzy, c13.y
    mad r8.yz, r2.xyww, c12.x, c12.z
    dp2add r0.w, r8.yzzw, -r8.yzzw, c12.w
    max r1.w, r0.w, c17.y
    rsq r0.w, r1.w
    rcp r0.w, r0.w
    mul r9.xyz, r5, r8.z
    mad r9.xyz, r8.y, r4, r9
    mad r9.xyz, r0.w, r1, r9
    nrm r10.xyz, r9
    texld r9, r0.yzzw, s4
    add r0.yz, r9.xwyw, c13.y
    mad r6.yz, r0, c12.x, c12.z
    dp2add r0.y, r6.yzzw, -r6.yzzw, c12.w
    max r1.w, r0.y, c17.y
    rsq r0.y, r1.w
    rcp r0.y, r0.y
    mul r5.xyz, r5, r6.z
    mad r4.xyz, r6.y, r4, r5
    mad r0.yzw, r0.y, r1.xxyz, r4.xxyz
    nrm r1.xyz, r0.yzww
    cmp r0.yzw, -v4.x, r1.xxyz, r10.xxyz
    cmp r1.xyz, -v4.x, r3, r7
    mov r8.x, r6.x
    cmp r3.xyw, -v4.x, r6.yzzx, r8.yzzx
    abs r1.w, c9.x
    dp2add r2.y, r3, r3, c17.y
    rsq r2.y, r2.y
    mul_sat r2.y, r2.y, r3.x
    lrp r3.xyz, r2.y, c14, r1
    cmp r1.xyz, -r1.w, r1, r3
    mov r2.y, c17.y
    if_lt -c6.x, r2.y
      mad r2.xy, r2.xzzw, r0.x, -c7
      add r2.zw, -c7.xyxy, c7
      rcp r3.x, r2.z
      rcp r3.y, r2.w
      mul r2.xy, r2, r3
      mov r4.xw, c12
      mad r2.zw, c8.xyxy, -r4.x, r4.w
      mad r2, r2.xyyy, r2.zwww, c8.xyyy
      texldl r4, r2, s1
      add r2, r2.xxww, c13.zwzw
      mul_sat r2, r2, c14.w
      mad r5, r2, c15.x, c15.y
      mul r2, r2, r2
      mul r2, r2, r5
      mul r0.x, r4.w, r2.x
      mul r0.x, r0.x, r2.z
      mad r0.x, r2.y, -r0.x, r0.x
      mad r0.x, r2.w, -r0.x, r0.x
    else
      mov r0.x, c12.w
    endif
    add r2.xy, r0.x, c15.zwzw
    mul_sat r0.x, r2.x, c16.x
    mad r1.w, r0.x, c15.x, c15.y
    mul r0.x, r0.x, r0.x
    mul r0.x, r0.x, r1.w
    add_sat r1.w, r2.y, r2.y
    mad r2.x, r1.w, c15.x, c15.y
    mul r1.w, r1.w, r1.w
    mul r1.w, r1.w, r2.x
    mul r0.x, r0.x, c16.y
    mul_sat r2.xyz, r0.x, r1
    lrp r3.xyz, r1.w, r1, r2
    rsq r0.x, r3.x
    rsq r1.x, r3.y
    rsq r1.y, r3.z
    rcp oC1.x, r0.x
    rcp oC1.y, r1.x
    rcp oC1.z, r1.y
    max r1.x, r0_abs.z, r0_abs.w
    max r2.x, r0_abs.y, r1.x
    rcp r0.x, r2.x
    mul r0.xyz, r0.x, r0.yzww
    mad oC0.xyz, r0, c17.w, c17.w
    mov oC0.w, r3.w
    mov oC1.w, r3.w

// approximately 154 instruction slots used (10 texture, 144 arithmetic)
 