//NO FIXS
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 camera_position;
//   float4 g_border_colour_a;
//   float4 g_campaign_world_bounds;
//   float g_end_length;
//   float g_hdr_on;
//   float g_inv_gamma_output;
//   float g_length;
//   float g_shroud_enabled;
//   float g_start_length;
//   float2 g_uv_offset;
//   sampler2D s_border_diffuse;
//   sampler2D s_shroud;
//   float3 sun_colour;
//   float3 sun_direction;
//
//
// Registers:
//
//   Name                    Reg   Size
//   ----------------------- ----- ----
//   g_inv_gamma_output      c0       1
//   camera_position         c1       1
//   sun_direction           c2       1
//   sun_colour              c3       1
//   g_hdr_on                c4       1
//   g_shroud_enabled        c5       1
//   g_campaign_world_bounds c6       1
//   g_uv_offset             c7       1
//   g_border_colour_a       c8       1
//   g_length                c9       1
//   g_start_length          c10      1
//   g_end_length            c11      1
//   s_shroud                s0       1
//   s_border_diffuse        s1       1
//

    ps_3_0
    def c12, 100, -2, 3, -0.5
    def c13, 0.25, 0.0105263162, 1, 0.00400000019
    def c14, 4, 0, 0, 0
    def c15, 0, 1, 2, -0.00999999978
def c220, 0, 0, 0, 0.5
    dcl_texcoord v0.xz
    dcl_texcoord1 v1.xy
    dcl_2d s0
    dcl_2d s1
dcl vPos.xy
mov r11.xy, vPos.xy
rcp r11.z, c210.x
rcp r11.w, c210.y
mul r11.xy, r11.xy, r11.zw
mul r11.zw, r11.zw, c220.ww
add r21.xy, r11.xy, r11.zw

mov r21.xy, v1.xy

    mov r0.xyz, c15
    cmp r0.w, c2.y, r0.x, -c2.y
mul r1, c15.yyxx, r21.xyxx //v1.xyxx
    texldl r1, r1, s1
    mov_sat r2.xyz, c8
    mul_sat r1.xyz, r1, r2
    log r2.x, r1.x
    log r2.y, r1.y
    log r2.z, r1.z
    mul r1.xyz, r2, c0.x
    exp r2.x, r1.x
    exp r2.y, r1.y
    exp r2.z, r1.z
    if_lt -c5.x, r0.x
      add r1.xy, -c6, v0.xzzw
      add r3.xy, -c6, c6.zwzw
      rcp r4.x, r3.x
      rcp r4.y, r3.y
      mul r1.xy, r1, r4
      mad r3.xy, c7, -r0.z, r0.y
      mad r3, r1.xyyy, r3.xyyy, c7.xyyy
      texldl r4, r3, s0
      add r3, r3.xxww, -c15.wywy
      mul_sat r3, r3, c12.x
      mad r5, r3, c12.y, c12.z
      mul r3, r3, r3
      mul r3, r3, r5
      mul r1.x, r4.w, r3.x
      mul r1.x, r1.x, r3.z
      mad r1.x, r3.y, -r1.x, r1.x
      mad r1.x, r3.w, -r1.x, r1.x
      add_sat r1.x, r1.x, c12.w
      add r1.x, r1.x, r1.x
    else
      mov r1.x, c15.y
    endif
    add r1.y, -r1.x, c15.y
    mad r1.x, r1.y, c13.x, r1.x
    mul r1.x, r1.x, r1.w
mul r1.y, c9.x, r21.x //v1.x
    rcp r1.z, c10.x
    mul_sat r1.y, r1.z, r1.y
add r1.z, c15.y, -r21.x //-v1.x
    mul r1.z, r1.z, c9.x
    rcp r1.w, c11.x
    mul_sat r1.z, r1.w, r1.z
    mul r1.y, r1.z, r1.y
    mul r1.y, r1.y, r1.x
    cmp r1.x, -c9.x, r1.x, r1.y
    add r1.yz, -c1.xxzw, v0.xxzw
    dp2add r1.y, r1.yzzw, r1.yzzw, c15.x
    rsq r1.y, r1.y
    rcp r1.y, r1.y
    mul_sat r1.y, r1.y, c13.y
    add r1.y, -r1.y, c15.y
    mul r2.xyz, r0.w, r2
    mul r2.xyz, r2, c3
    mov r1.zw, c13
    cmp r0.w, -c4.x, r1.z, r1.w
    mul oC0.xyz, r0.w, r2
    if_lt -c5.x, r0.x
      add r0.xw, -c6.xyzy, v0.xyzz
      add r1.zw, -c6.xyxy, c6
      rcp r2.x, r1.z
      rcp r2.y, r1.w
      mul r0.xw, r0, r2.xyzy
      mad r0.yz, c7.xxyw, -r0.z, r0.y
      mad r0, r0.xwww, r0.yzzz, c7.xyyy
      texldl r2, r0, s0
      add r0, r0.xxww, -c15.wywy
      mul_sat r0, r0, c12.x
      mad r3, r0, c12.y, c12.z
      mul r0, r0, r0
      mul r0, r0, r3
      mul r0.x, r2.w, r0.x
      mul r0.x, r0.x, r0.z
      mad r0.x, r0.y, -r0.x, r0.x
      mad r0.x, r0.w, -r0.x, r0.x
    else
      mov r0.x, c15.y
    endif
    add r0.x, r0.x, -c13.x
    mul_sat r0.x, r0.x, c14.x
    mul r0.x, r0.x, r1.x
    mul r0.x, r0.x, c8.w
    mul oC0.w, r1.y, r0.x

// approximately 94 instruction slots used (6 texture, 88 arithmetic)
 