//
// 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, 1, 0
    def c18, 2, -2, -1, 1
    def c19, 1, 273, 0.00400000019, -0.212114394
    def c20, -0.0187292993, 0.0742610022, 1.57072878, 0.5
    def c21, -2, 3.14159274, -9.99999975e-005, 0.995899975
    def c22, 0.346573591, 4.54688501, 1.41421354, 0.0174532924
    def c23, 0.0174532924, -9.99999975e-005, -0.0174532924, 10000
    def c24, 0.707106769, 0.140012279, 1.27323949, 1
    def c25, 1.44269502, 0.25, 0.5, 60
    def c26, 6.28318548, -3.14159274, 0, 0
    def c27, 1, 0.999000013, -9.96578407, 4.95061684
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
    add r0.xy, c10.x, vPos
    mul r0.zw, r0.xyxy, c9
    texldl r1, r0.zwww, s0
    texldl r2, r0.zwww, s1
    texldl r3, r0.zwww, s2
    texldl r4, r0.zwww, s3
    mul r2.xyz, r2, r2
    mad r1.xyz, r1, c17.x, c17.y
    nrm r5.xyz, r1
    mad r6, v0.xyzx, c17.zzzw, c17.wwwz
    dp4 r0.z, r6, c2
    dp4 r0.w, r6, c3
    abs r1.x, c16.x
    cmp r1.x, -r1.x, c17.w, c17.z
    rcp r0.w, r0.w
    mad r0.z, r0.z, -r0.w, r4.x
    mul r6, r1.x, r0.z
    texkill r6
    mov r0.zw, c9
    mad r0.xy, r0, r0.zwzw, -c15
    rcp r1.x, c15.z
    rcp r1.y, c15.w
    mul r0.xy, r0, r1
    mad r0.xy, r0, c18, c18.zwzw
    mad r0.zw, r4.x, c17, c17.xywz
    dp4 r1.x, r0, c4
    dp4 r1.y, r0, c5
    dp4 r1.z, r0, c6
    dp4 r0.x, r0, c7
    rcp r0.x, r0.x
	
mov r20.xyz, r1.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 r1.xyz, r20.xyz	

    mad r0.yzw, r1.xxyz, r0.x, -c12.xxyz
    dp3 r3.w, r0.yzww, r0.yzww
    rsq r3.w, r3.w
    mul r0.yzw, r0, r3.w
    rcp r3.w, r3.w
    rcp r4.x, c14.x
    mul_sat r3.w, r3.w, r4.x
    add r3.w, -r3.w, c17.z
    mul r3.w, r3.w, r3.w
    mov r4.xyz, c19
    cmp r4.xy, -c11.x, r4, r4.zxzw
    dp3 r4.z, r5, -r0.yzww
    max r5.w, r4.z, c17.w
    if_ge -r4.z, c17.w
      mov r6.xyz, c17.w
    else
      mad r1.xyz, r1, r0.x, -c8
      nrm r7.xyz, r1
      add r0.x, -r1.w, c17.z
      dp3 r1.x, r7, r5
      add r1.x, r1.x, r1.x
      mad r1.xyz, r5, -r1.x, r7
      dp3 r1.x, -r0.yzww, r1
      max r4.z, c17.y, r1.x
      min r1.x, r4.z, c17.z
      add r1.y, -r1_abs.x, c17.z
      rsq r1.y, r1.y
      rcp r1.y, r1.y
      mad r1.z, r1_abs.x, c20.x, c20.y
      mad r1.z, r1.z, r1_abs.x, c19.w
      mad r1.z, r1.z, r1_abs.x, c20.z
      mul r1.y, r1.y, r1.z
      mad r1.z, r1.y, c21.x, c21.y
      cmp r1.x, r1.x, c17.w, c17.z
      mad r1.x, r1.z, r1.x, r1.y
      mul r1.y, r1.w, r1.w
      mov r1.zw, c21
      cmp r1.z, -c11.x, r1.z, r1.w
      mad r1.y, r1.y, r1.z, r4.x
      mad r1.y, r1.y, c20.w, c20.w
      mad r1.y, r1.y, c17.x, c17.y
      mad r1.zw, r1.y, -r1.y, c27.xyxy
      log r1.z, r1.z
      cmp r1.z, r1.w, r1.z, c27.z
      mul r1.w, r1.z, c27.w
      mad r1.z, r1.z, c22.x, c22.y
      cmp r4.z, -r1.y, c17.w, c17.z
      cmp r1.y, r1.y, -c17.w, -c17.z
      add r1.y, r1.y, r4.z
      mad r1.w, r1.z, r1.z, -r1.w
      rsq r1.w, r1.w
      rcp r1.w, r1.w
      add r1.z, -r1.z, r1.w
      max r4.z, r1.z, c17.w
      rsq r1.z, r4.z
      rcp r1.z, r1.z
      mul r1.y, r1.z, r1.y
      mul r1.y, r1.y, c22.z
      rcp r1.y, r1.y
      mul r1.z, r1.y, c22.w
      mad r1.y, r1.y, c23.x, c23.y
      add r1.xw, r1.x, c23.zyzx
      rcp r1.z, r1.z
      cmp r1.y, r1.y, r1.z, c23.w
      mul r1.xy, r1.y, r1.xwzw
      mul r1.yz, r1.xxyw, c24.x
      mul r4.zw, r1.xyyz, r1.xyyz
      mad r8, r4.zzww, c24.y, c24.zwzw
      rcp r1.w, r8.y
      mul r1.w, r1.w, r8.x
      mul r1.w, r1.w, -r4.z
      cmp r1.yz, -r1, c17.w, c17.z
      cmp r1.x, r1.x, -c17.w, -c17.z
      add r1.x, r1.x, r1.y
      mul r1.y, r1.w, c25.x
      exp r1.y, r1.y
      add r1.y, -r1.y, c17.z
      rsq r1.y, r1.y
      rcp r1.y, r1.y
      mad r1.x, r1.x, r1.y, c17.z
      mul r1.x, r1.x, c20.w
      rcp r1.y, r8.w
      mul r1.y, r1.y, r8.z
      mul r1.y, r1.y, -r4.w
      mul r1.y, r1.y, c25.x
      exp r1.y, r1.y
      add r1.y, -r1.y, c17.z
      rsq r1.y, r1.y
      rcp r1.y, r1.y
      mad r1.y, r1.z, r1.y, c17.z
      mad r1.x, r1.y, c20.w, -r1.x
      mov_sat r1.y, r5.w
      mad r0.x, r0.x, c25.y, c25.z
      frc r0.x, r0.x
      mad r0.x, r0.x, c26.x, c26.y
      sincos r8.xy, r0.x
      add r0.x, r1.y, c17.y
      mad r0.x, r8.y, r0.x, c17.z
      dp3 r0.y, -r0.yzww, r7
      max r1.y, r0.y, c17.w
      pow r0.y, r1.y, c25.w
      mul r0.y, r8.x, r0.y
      lrp r1.y, r0.y, c17.z, r2.w
      mul r0.x, r0.x, r1.x
      mul r6.xyz, r1.y, r0.x
    endif
    mul_sat r0.xyz, r4.y, r6
    mul r0.xyz, r3, r0
    max r1.xyz, r6, r2.w
    add r1.xyz, -r1, c17.z
    mul r2.xyz, r2, r5.w
    mul r2.xyz, r2, c13
    mul r1.xyz, r1, r2
    mul r1.xyz, r4.x, r1
    mad r0.xyz, r0, c13, r1
    mul oC0.xyz, r0, r3.w
    mov oC0.w, c17.z

// approximately 166 instruction slots used (8 texture, 158 arithmetic)
 