//Floaty 2d ground textures??
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 camera_position;
//   float4 g_campaign_world_bounds;
//   float4 g_mid_distance_details;
//   float g_mid_distance_normal_strength;
//   float2 g_mid_distance_slope;
//   float4 g_screen_size;
//   float g_shroud_enabled;
//   float2 g_uv_offset;
//   float g_vpos_texel_offset;
//   float g_weather_type;
//   float4x4 inv_view_projection;
//   sampler2D s_albedo_map;
//   sampler2D s_depth_map;
//   sampler2D s_gloss_map;
//   sampler2D s_mid_distance_detail_map;
//   sampler2D s_normal_map;
//   sampler2D s_shroud;
//   float4x4 view_projection;
//
//
// Registers:
//
//   Name                           Reg   Size
//   ------------------------------ ----- ----
//   view_projection                c0       4
//   inv_view_projection            c4       4
//   camera_position                c8       1
//   g_screen_size                  c9       1
//   g_vpos_texel_offset            c10      1
//   g_shroud_enabled               c11      1
//   g_campaign_world_bounds        c12      1
//   g_uv_offset                    c13      1
//   g_weather_type                 c14      1
//   g_mid_distance_details         c15      1
//   g_mid_distance_normal_strength c16      1
//   g_mid_distance_slope           c17      1
//   s_shroud                       s0       1
//   s_normal_map                   s1       1
//   s_gloss_map                    s2       1
//   s_depth_map                    s3       1
//   s_mid_distance_detail_map      s4       1
//   s_albedo_map                   s5       1
//

    ps_3_0
    def c18, 0.200000003, 0.212599993, 0.715200007, 0.0722000003
    def c19, 0, 1, 0.00196078443, -2
    def c20, -2, 3, 0.00999999978, -1
    def c21, 100, -0.100000001, -0.5, 2.5
    def c22, 2, -2, -1, 1
    def c23, 0.349999994, 0.0250000004, 0.0500000007, 0.0399999991
    def c24, 0.720512807, 0.75, 1.25, 0
    def c25, 0, -0, 1, -1
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    add r0.xy, c10.x, vPos
    mul r0.xy, r0, c9.zwzw
    mov r0.zw, c19.x
    texldl r1, r0.xyww, s5
    texldl r2, r0.xyww, s1
    texldl r3, r0.xyww, s2
    texldl r4, r0, s3
    mad r0.xy, r0, c22, c22.zwzw
    mad r0.zw, r4.x, c19.xyyx, c19.xyxy
    dp4 r4.x, r0, c4
    dp4 r4.y, r0, c5
    dp4 r4.z, r0, c6
    dp4 r0.x, r0, c7
	
// mov r10.xyz, r4.xyz
// mov r10.w, r0.x

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

// dp4 r11.x, r10, c0
// dp4 r11.y, r10, c1
// dp4 r11.z, r10, c2
// dp4 r11.w, r10, c3

// 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, c4
// dp4 r10.y, r11, c5
// dp4 r10.z, r11, c6
// dp4 r10.w, r11, c7

// mul r10, r10, r0.x
// mov r4.xyz, r10.xyz 

    rcp r0.x, r0.x
    mul r5.xyz, r0.x, r4
    rcp r0.y, r1.w
    mul r1.xyz, r0.y, r1
    mul r2.xzw, r0.y, r2.xyyz
    mul r6.xyz, r0.y, r3
    mad r7.xyz, r4, r0.x, -c8
    dp3 r0.z, r7, r7
    rsq r0.z, r0.z
    rcp r0.z, r0.z
    rcp r0.w, c15.y
    mul r3.xy, r0.w, r5.xzzw
    texld r7, r3, s4
    add r3.xy, r7.wyzw, c19.z
    mad r3.xy, r3, -c19.w, -c19.y
    rcp r0.w, c15.x
    mul_sat r0.z, r0.w, r0.z
    mul r0.w, r0.z, c15.w
    mad r7.xyz, r1, r7.z, -r1
    mad r1.xyz, r0.w, r7, r1
    mul r7.xz, r3.xyyw, c16.x
    mov r8.xyw, c19
    add r0.w, r8.y, -c17.x
    mad r1.w, r2.y, r0.y, -c17.x
    rcp r0.w, r0.w
    mul_sat r0.w, r0.w, r1.w
    mad r1.w, r0.w, c20.x, c20.y
    mul r0.w, r0.w, r0.w
    mad r0.w, r1.w, -r0.w, c19.y
    mul r0.z, r0.w, r0.z
    mov r7.y, c19.x
    mad r2.xyz, r0.z, r7, r2.xzww
    if_lt -c11.x, r8.x
      mad r0.xz, r4, r0.x, -c12.xyyw
      add r3.xy, -c12, c12.zwzw
      rcp r4.x, r3.x
      rcp r4.y, r3.y
      mul r0.xz, r0, r4.xyyw
      mad r3.xy, c13, -r8_abs.w, r8_abs.y
      mad r4, r0.xzzz, r3.xyyy, c13.xyyy
      texldl r7, r4, s0
      add r4, r4.xxww, c20.zwzw
      mul_sat r4, r4, c21.x
      mad r9, r4, c20.x, c20.y
      mul r4, r4, r4
      mul r4, r4, r9
      mul r0.x, r7.w, r4.x
      mul r0.x, r0.x, r4.z
      mad r0.x, r4.y, -r0.x, r0.x
      mad r0.x, r4.w, -r0.x, r0.x
    else
      mov r0.x, c19.y
    endif
    add r0.xz, r0.x, c21.yyzw
    mul_sat r0.x, r0.x, c21.w
    mad r0.w, r0.x, c20.x, c20.y
    mul r0.x, r0.x, r0.x
    mul r0.x, r0.x, r0.w
    add_sat r0.z, r0.z, r0.z
    mad r0.w, r0.z, c20.x, c20.y
    mul r0.z, r0.z, r0.z
    mul r0.z, r0.z, r0.w
    mul r0.x, r0.x, c18.x
    mul_sat r4.xyz, r0.x, r1
    lrp r7.xyz, r0.z, r1, r4
    lrp r1.xyz, r0.z, r2, c19.xyxw
    dp3 r0.x, r7, c18.yzww
    add r0.z, -r0.x, c19.y
    mad r0.y, r3.z, -r0.y, r0.z
    mad r2.x, r3.w, r0.y, r6.z
    mov_sat r0.x, r0.x
    mad r0.x, r6.x, r0.x, -r6.x
    mad r2.y, r6.y, r0.x, r6.x
    mov r5.w, c19.y
    dp4 r0.x, r5, c2
    dp4 r0.y, r5, c3
    add r0.zw, -r8_abs.xyyw, c14.x
    add r2.zw, r2.xyxy, c23.xyxy
    cmp r2.xy, -r0_abs.z, r2.zwzw, r2
    add r2.zw, r2.xyxy, c23
    add r0.z, -r1.y, c24.x
    cmp r3.xy, r0.z, c25, c25.zwzw
    mad r0.z, r1.y, c23.z, r3.y
    mad r0.z, r0.z, c24.y, r3.x
    lrp r3.xyz, r0.z, c24.z, r7
    cmp r3.xyz, -r0_abs.w, r3, r7
    cmp r0.zw, -r0_abs.w, r2, r2.xyxy
    nrm r2.xyz, r1
    rcp r0.y, r0.y
    mul oC3.x, r0.y, r0.x
    max r0.x, r2_abs.y, r2_abs.z
    max r1.x, r2_abs.x, r0.x
    rcp r0.x, r1.x
    mul r1.xyz, r0.x, r2
    mad_sat oC0.xyz, r1, -c21.z, -c21.z
    mov_sat oC0.w, r0.z
    rsq r0.x, r3.x
    rsq r0.y, r3.y
    rsq r0.z, r3.z
    rcp_sat oC1.x, r0.x
    rcp_sat oC1.y, r0.y
    rcp_sat oC1.z, r0.z
    mov_sat oC1.w, r0.w
    mov oC2, c19.y
    mov oC3.yzw, c19.x

// approximately 127 instruction slots used (11 texture, 116 arithmetic)
 