// Pixel shader something something god rays mask thing
// This one seems to control how far the rays extend.//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Parameters:
//
//   float4 AspectRatioAndInvAspectRatio;
//   float4 BloomTintAndThreshold;
//   float4 LightShaftParameters;
//   float4 MinZ_MaxZRatio;
//   float4 SampleOffsets[2];
//   sampler2D SceneColorTexture;
//   float2 TextureSpaceBlurOrigin;
//   float4 UVMinMax;
//
//
// Registers:
//
//   Name                         Reg   Size
//   ---------------------------- ----- ----
//   TextureSpaceBlurOrigin       c0       1
//   MinZ_MaxZRatio               c2       1
//   SampleOffsets                c8       2
//   UVMinMax                     c10      1
//   AspectRatioAndInvAspectRatio c11      1
//   LightShaftParameters         c12      1
//   BloomTintAndThreshold        c13      1
//   SceneColorTexture            s0       1
//

    ps_3_0
    def c1, 1, 0, 8, 0.25
    def c3, 0.300000012, 0.589999974, 0.109999999, 6.10351999e-005
    def c4, 0.5, 5, 0, 0
def c220, 0, 1, 0.0625, 0.5	
    dcl_texcoord v0.xy
    dcl_2d s0
dcl_2d s13	
    add r0.xy, -c10, v0
    rcp r1.x, c10.z
    rcp r1.y, c10.w
    mul r0.zw, r0.xyxy, r1.xyxy
    mad r0.xy, r0, -r1, c1.x
    mul r0.x, r0.x, r0.z
    mul r0.x, r0.w, r0.x
    mul r0.x, r0.y, r0.x
    mad r0.x, r0.x, -c1.z, c1.x
    mul r0.x, r0.x, r0.x
    mul r0.y, r0.x, r0.x
    mad r0.x, r0.x, -r0.x, c1.x
    mul r1, c1.xxyy, v0.xyxx
    texldl r1, r1, s0
    mov r1.x, c1.x
    add r0.z, r1.x, -c2.y
    add r0.w, -r0.z, r1.w
    rcp r0.w, r0.w
    mul r1.x, r0.w, -c2.x
    mov r2.zw, c1.y
    add r2.xy, -c8.zwzw, v0
    texldl r3, r2, s0
    texld_pp r2, r2, s0
    add r0.w, -r0.z, r3.w
    rcp r0.w, r0.w
    mul r1.y, r0.w, -c2.x
    add r3, -c9, v0.xyxy
    mul r4, r3.xyxx, c1.xxyy
    texldl r4, r4, s0
    add r0.w, -r0.z, r4.w
    rcp r0.w, r0.w
    mul r4, r3.zwxx, c1.xxyy
    texldl r4, r4, s0
    add r0.z, -r0.z, r4.w
    rcp r0.z, r0.z
    mul r1.zw, r0.xywz, -c2.x
    mul_sat r4, r1, c12.x
    dp4 r0.z, r4, c1.w
    max oC0.w, r0.z, r0.y
    texld_pp r4, v0, s0
    add r0.yzw, r2.xxyz, r4.xxyz
    texld_pp r2, r3, s0
    texld_pp r3, r3.zwzw, s0
    add r0.yzw, r0, r2.xxyz
    add r0.yzw, r3.xxyz, r0
    mul_pp r0.yzw, r0, c1.w
    mul r2.xyz, r0.yzww, c12.y
    dp3_pp r0.y, r0.yzww, c3
    max_pp r2.w, r0.y, c3.w
    rcp r0.y, r2.w
    add_pp r0.z, r2.w, -c13.w
    mul r2.xyz, r0.y, r2
    mul r2.xyz, r0.z, r2
    add r2.xyz, r2, r2
    rcp r0.y, c12.x
    mad r1, r0.y, -c4.x, r1
    mul_sat r1, r1, c12.x
    dp4 r0.y, r1, c1.w
    mul r1.xyz, r0.y, r2
    cmp r0.yzw, r0.z, r1.xxyz, c1.y
    mul r0.xyz, r0.x, r0.yzww
    mov r1.zw, c11
// Adjust blur origin to match adjusted light shafts
//    mad r1.xy, v0, -r1.zwzw, c0
mov r4, c0
texldl r5, c220.z, s13
mul r5.x, r5.x, c220.w	// Adjust each eye by half the separation
add r4.x, r4.x, r5.x
mad r1.xy, v0, -r1.zwzw, r4	
    dp2add r0.w, r1, r1, c1.y
    rsq r0.w, r0.w
    rcp r0.w, r0.w
    mul_sat r0.w, r0.w, c4.y
    add r0.w, -r0.w, c1.x
    mul r0.w, r0.w, r0.w
    mul r0.xyz, r0, r0.w
    mul oC0.xyz, r0, c1.w

// approximately 76 instruction slots used (12 texture, 64 arithmetic)
 