//tower lights
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 camera_position;
//   float g_clip;
//   float g_hdr_on;
//   float3 g_light_colour;
//   float3 g_light_position;
//   float g_light_radius;
//   float4 g_screen_size;
//   float4 g_viewport_offset_scale;
//   float g_vpos_texel_offset;
//   sampler2D gbuffer_channel_1_sampler;
//   sampler2D gbuffer_channel_2_sampler;
//   sampler2D gbuffer_channel_3_sampler;
//   sampler2D gbuffer_channel_4_sampler;
//   float4x4 inv_view_projection;
//   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_hdr_on                  c11      1
//   g_light_position          c12      1
//   g_light_colour            c13      1
//   g_light_radius            c14      1
//   g_viewport_offset_scale   c15      1
//   g_clip                    c16      1
//   gbuffer_channel_1_sampler s0       1
//   gbuffer_channel_2_sampler s1       1
//   gbuffer_channel_3_sampler s2       1
//   gbuffer_channel_4_sampler s3       1
//

    ps_3_0
    def c17, 2, -1, -0, 0
    def c18, 2, -2, -1, 1
    def c19, 60, 1, 273, 0.00400000019
    def c20, -0.0187292993, 0.0742610022, -0.212114394, 1.57072878
    def c21, -2, 3.14159274, 0.99984771, 1.00015235
    def c22, 0.979900002, 0.0199999996, 0.5, -9.96578407
    def c23, 0.346573591, 4.54688501, 0.0174532924, -9.99999975e-005
    def c24, 1, 0.999000013, 4.95061684, 1.41421354
    def c25, -0.0174532924, 0.0174532924, 10000, 0.707106769
    def c26, 0.140012279, 1.27323949, 1, 1.44269502
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl_texcoord v0.xyz
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    abs r0.x, c16.x
    cmp r0.x, -r0.x, -c17.z, -c17.y




    mad r1, v0.xyzx, -c17.yyyz, -c17.wwwy
    dp4 r0.y, r1, c3
    dp4 r0.z, r1, c2
    rcp r0.y, r0.y
    add r1.xy, c10.x, vPos
    mul r1.zw, r1.xyxy, c9
    mov r2.zw, c9
    mad r1.xy, r1, r2.zwzw, -c15
    texldl r2, r1.zwww, s3
    mad r0.y, r0.z, -r0.y, r2.x
    mad r2.zw, r2.x, -c17.xyyz, -c17.xywy
    mul r0, r0.x, r0.y
    texkill r0
    rcp r0.x, c15.z
    rcp r0.y, c15.w
    mul r0.xy, r0, r1
    mad r2.xy, r0, c18, c18.zwzw
    dp4 r0.x, r2, c7
    rcp r0.x, r0.x
    dp4 r3.x, r2, c4
    dp4 r3.y, r2, c5
    dp4 r3.z, r2, c6
	
mov r20.xyz, r3.xyz
rcp r20, r0.x
mul r20, r20, r0.x

dp4 r21.x, r20, c0
dp4 r21.y, r20, c1
dp4 r21.z, r20, c2
dp4 r21.w, r20, c3

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

dp4 r20.x, r21, c4
dp4 r20.y, r21, c5
dp4 r20.z, r21, c6
dp4 r20.w, r21, c7

rcp r23.w, r0.x
mul r20, r20, r23.w
mov r3.xyz, r20.xyz	
	
    mad r0.yzw, r3.xxyz, r0.x, -c8.xxyz
    mad r2.xyz, r3, r0.x, -c12
    nrm r3.xyz, r0.yzww
    texldl r0, r1.zwww, s0
    mad r0.xyz, r0, c17.x, c17.y
    mul r0.w, r0.w, r0.w
    mad r0.w, r0.w, c22.x, c22.y
    mad r0.w, r0.w, c22.z, c22.z
    mad r0.w, r0.w, c17.x, c17.y
    mad r1.xy, r0.w, -r0.w, c24
    nrm r4.xyz, r0
    dp3 r0.x, r3, r4
    add r0.x, r0.x, r0.x
    mad r0.xyz, r4, -r0.x, r3
    dp3 r0.w, r2, r2
    rsq r0.w, r0.w
    mul r2.xyz, r0.w, r2
    rcp r0.w, r0.w
    dp3 r0.x, -r2, r0
    max r2.w, c17.y, r0.x
    min r0.x, r2.w, -c17.y
    mad r0.y, r0_abs.x, c20.x, c20.y
    mad r0.y, r0.y, r0_abs.x, c20.z
    mad r0.y, r0.y, r0_abs.x, c20.w
    add r0.z, -r0_abs.x, -c17.y
    cmp r0.x, r0.x, -c17.z, -c17.y
    rsq r0.z, r0.z
    rcp r0.z, r0.z
    mul r0.y, r0.z, r0.y
    mad r0.z, r0.y, c21.x, c21.y
    mad r0.x, r0.z, r0.x, r0.y
    add r0.xy, r0.x, c25
    log r0.z, r1.x
    cmp r0.z, r1.y, r0.z, c22.w
    mul r1.x, r0.z, c24.z
    mad r0.z, r0.z, c23.x, c23.y
    mad r1.x, r0.z, r0.z, -r1.x
    rsq r1.x, r1.x
    rcp r1.x, r1.x
    add r0.z, -r0.z, r1.x
    max r1.x, r0.z, c17.w
    rsq r0.z, r1.x
    rcp r0.z, r0.z
    mul r0.z, r0.z, c24.w
    rcp r0.z, r0.z
    mul r1.x, r0.z, c23.z
    mad r0.z, r0.z, c23.z, c23.w
    rcp r1.x, r1.x
    cmp r0.z, r0.z, r1.x, c25.z
    mul r0.xy, r0.z, r0
    cmp r0.z, r0.x, c17.z, c17.y
    mul r0.xy, r0, c25.w
    cmp r1.xy, -r0, -c17.z, -c17.y
    mul r0.xy, r0, r0
    add r0.z, r0.z, r1.x
    mad r5, r0.xxyy, c26.x, c26.yzyz
    rcp r1.x, r5.y
    mul r1.x, r1.x, r5.x
    mul r0.x, -r0.x, r1.x
    mul r0.x, r0.x, c26.w
    exp r0.x, r0.x
    add r0.x, -r0.x, -c17.y
    rsq r0.x, r0.x
    rcp r0.x, r0.x
    mad r0.x, r0.z, r0.x, -c17.y
    mul r0.x, r0.x, c22.z
    rcp r0.z, r5.w
    mul r0.z, r0.z, r5.z
    mul r0.y, r0.z, -r0.y
    mul r0.y, r0.y, c26.w
    exp r0.y, r0.y
    add r0.y, -r0.y, -c17.y
    rsq r0.y, r0.y
    rcp r0.y, r0.y
    mad r0.y, r1.y, r0.y, -c17.y
    mad r0.x, r0.y, c22.z, -r0.x
    dp3 r0.y, r4, -r2
    dp3 r0.z, -r2, r3
    add r1.x, r0.y, c21.z
    mul_sat r1.x, r1.x, c21.w
    mul r0.x, r0.x, r1.x
    add r1.x, -r0.z, -c23.w
    pow r1.y, r0.z, c19.x
    texldl r2, r1.zwww, s1
    texldl r3, r1.zwww, s2
    add r0.z, -r2.w, -c17.y
    mul r0.z, r0.z, r1.y
    cmp r0.z, r1.x, c17.w, r0.z
    add r0.z, r0.z, r2.w
    mul r0.x, r0.z, r0.x
    cmp r0.z, -r2.w, -c17.z, -c17.y
    mul r0.x, r0.z, r0.x
    max r1.x, r0.x, r2.w
    mul r1.yzw, r2.xxyz, r2.xxyz
    mul r1.yzw, r0.y, r1
    mul r1.yzw, r1, c13.xxyz
    cmp r1.yzw, r0.y, r1, c17.w
    add r0.y, -r1.x, -c17.y
    mul r1.xyz, r0.y, r1.yzww
    mov r2.yzw, c19
    cmp r0.yz, -c11.x, r2, r2.xwyw
    mul r1.xyz, r0.y, r1
    mul_sat r0.x, r0.z, r0.x
    mul r0.xyz, r3, r0.x
    mad r0.xyz, r0, c13, r1
    rcp r1.x, c14.x
    mul_sat r0.w, r0.w, r1.x
    add r0.w, -r0.w, -c17.y
    mul r0.w, r0.w, r0.w
    mul oC0.xyz, r0, r0.w
    mov oC0.w, -c17.y

// approximately 145 instruction slots used (8 texture, 137 arithmetic)
 