//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// Modified for NaturalVision by Razed
//
// Buffer Definitions: 
//
// cbuffer rage_matrices
// {
//
//   row_major float4x4 gWorld;         // Offset:    0 Size:    64 [unused]
//   row_major float4x4 gWorldView;     // Offset:   64 Size:    64 [unused]
//   row_major float4x4 gWorldViewProj; // Offset:  128 Size:    64 [unused]
//   row_major float4x4 gViewInverse;   // Offset:  192 Size:    64
//
// }
//
// cbuffer misc_globals
// {
//
//   float4 globalFade;                 // Offset:    0 Size:    16 [unused]
//   float globalHeightScale;           // Offset:   16 Size:     4 [unused]
//   float globalShaderQuality;         // Offset:   20 Size:     4 [unused]
//   float globalReuseMe00001;          // Offset:   24 Size:     4 [unused]
//   float globalReuseMe00002;          // Offset:   28 Size:     4 [unused]
//   float4 POMFlags;                   // Offset:   32 Size:    16 [unused]
//   float4 g_Rage_Tessellation_CameraPosition;// Offset:   48 Size:    16 [unused]
//   float4 g_Rage_Tessellation_CameraZAxis;// Offset:   64 Size:    16 [unused]
//   float4 g_Rage_Tessellation_ScreenSpaceErrorParams;// Offset:   80 Size:    16 [unused]
//   float4 g_Rage_Tessellation_LinearScale;// Offset:   96 Size:    16 [unused]
//   float4 g_Rage_Tessellation_Frustum[4];// Offset:  112 Size:    64 [unused]
//   float4 g_Rage_Tessellation_Epsilons;// Offset:  176 Size:    16 [unused]
//   float4 globalScalars;              // Offset:  192 Size:    16 [unused]
//   float4 globalScalars2;             // Offset:  208 Size:    16 [unused]
//   float4 globalScalars3;             // Offset:  224 Size:    16
//   float4 globalScreenSize;           // Offset:  240 Size:    16
//   uint4 gTargetAAParams;             // Offset:  256 Size:    16 [unused]
//   float4 colorize;                   // Offset:  272 Size:    16 [unused]
//   float4 gGlobalParticleShadowBias;  // Offset:  288 Size:    16 [unused]
//   float gGlobalParticleDofAlphaScale;// Offset:  304 Size:     4 [unused]
//   float gGlobalFogIntensity;         // Offset:  308 Size:     4 [unused]
//   float4 gPlayerLFootPos;            // Offset:  320 Size:    16 [unused]
//   float4 gPlayerRFootPos;            // Offset:  336 Size:    16 [unused]
//
// }
//
// cbuffer lighting_locals
// {
//
//   float4 deferredLightParams[14];    // Offset:    0 Size:   224
//   float4 deferredLightVolumeParams[2];// Offset:  224 Size:    32 [unused]
//   float4 deferredLightScreenSize;    // Offset:  256 Size:    16 [unused]
//   float4 deferredProjectionParams;   // Offset:  272 Size:    16
//   float3 deferredPerspectiveShearParams0;// Offset:  288 Size:    12 [unused]
//   float3 deferredPerspectiveShearParams1;// Offset:  304 Size:    12 [unused]
//   float3 deferredPerspectiveShearParams2;// Offset:  320 Size:    12 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// GBufferTextureSampler0Global      sampler      NA          NA    7        1
// GBufferTextureSampler1Global      sampler      NA          NA    8        1
// GBufferTextureSampler2Global      sampler      NA          NA    9        1
// GBufferTextureSamplerDepthGlobal    sampler      NA          NA   12        1
// GBufferTextureSampler0Global      texture  float4          2d    7        1
// GBufferTextureSampler1Global      texture  float4          2d    8        1
// GBufferTextureSampler2Global      texture  float4          2d    9        1
// gbufferStencilTextureGlobal       texture   uint2          2d   11        1
// GBufferTextureSamplerDepthGlobal    texture  float4          2d   12        1
// rage_matrices                     cbuffer      NA          NA    1        1
// misc_globals                      cbuffer      NA          NA    2        1
// lighting_locals                   cbuffer      NA          NA   12        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float       
// TEXCOORD                 0   xyzw        1     NONE   float   xy w
// TEXCOORD                 1   xyzw        2     NONE   float   xyzw
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_4_0
dcl_constantbuffer cb1[16], immediateIndexed
dcl_constantbuffer cb2[16], immediateIndexed
dcl_constantbuffer cb12[18], immediateIndexed
dcl_sampler s7, mode_default
dcl_sampler s8, mode_default
dcl_sampler s9, mode_default
dcl_sampler s12, mode_default
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_resource_texture2d (float,float,float,float) t9
dcl_resource_texture2d (uint,uint,uint,uint) t11
dcl_resource_texture2d (float,float,float,float) t12
dcl_input_ps linear v1.xyw
dcl_input_ps linear v2.xyzw
dcl_output o0.xyzw
dcl_temps 8
div r0.xy, v1.xyxx, v1.wwww
sample r1.xyzw, r0.xyxx, t12.xyzw, s12
add r0.z, -r1.x, cb12[17].w
add r0.z, r0.z, l(1.000000e+000)
div r0.z, cb12[17].z, r0.z
div r1.xyz, v2.xyzx, v2.wwww
mad r2.xyz, r1.xyzx, r0.zzzz, cb1[15].xyzx
add r3.xyz, -r2.xyzx, cb12[0].xyzx
dp3 r0.z, r3.xyzx, r3.xyzx
rsq r0.w, r0.z
mul r4.xyz, r0.wwww, r3.xyzx
mad_sat r0.z, -r0.z, cb12[4].z, l(1.000000e+000)
add r1.w, -cb12[7].x, l(1.000000e+000)
mad r1.w, r1.w, r0.z, cb12[7].x
div r0.z, r0.z, r1.w
dp3 r1.w, r4.xyzx, -cb12[1].xyzx
mad_sat r1.w, r1.w, cb12[5].w, cb12[5].z
mul r0.z, r0.z, r1.w
mov r2.w, l(1.000000)
dp4 r1.w, r2.xyzw, cb12[6].xyzw
ge r1.w, r1.w, l(0.000000e+000)
and r1.w, r1.w, l(0x3f800000)
mul r0.z, r0.z, r1.w
lt r1.w, r0.z, l(1.000000e-006)
discard_nz r1.w
mul r2.xy, r0.xyxx, cb2[15].xyxx
ftoi r2.xy, r2.xyxx
mov r2.zw, l(0,0,0,0)
ld r2.xyzw, r2.xyzw, t11.xyzw
and r1.w, r2.y, l(8)
utof r1.w, r1.w
ge r1.w, r1.w, l(7.900000e+000)
sample r2.xyzw, r0.xyxx, t7.xyzw, s7
mul r2.xyz, r2.xyzx, r2.xyzx
sample r5.xyzw, r0.xyxx, t9.xyzw, s9
mul r5.xy, r5.xyxx, r5.xyxx
sample r6.xyzw, r0.xyxx, t8.xyzw, s8
mul r7.xyz, r6.wwww, l(9.980469e-001, 7.984375e+000, 6.387500e+001, 0.000000e+000)
frc r7.xyz, r7.xyzx
mad r7.xy, -r7.yzyy, l(1.250000e-001, 1.250000e-001, 0.000000e+000, 0.000000e+000), r7.xyxx
mad r6.xyz, r6.xyzx, l(2.560000e+002, 2.560000e+002, 2.560000e+002, 0.000000e+000), r7.xyzx
add r6.xyz, r6.xyzx, l(-1.280000e+002, -1.280000e+002, -1.280000e+002, 0.000000e+000)
dp3 r0.x, r6.xyzx, r6.xyzx
rsq r0.x, r0.x
mul r6.xyz, r0.xxxx, r6.xyzx
mov_sat r5.x, r5.x
mad r0.x, r5.y, l(5.120000e+002), l(-5.000000e+002)
max r0.x, r0.x, l(0.000000e+000)
mad r0.y, r5.y, l(5.120000e+002), -r0.x
mul r0.x, r0.x, l(5.580000e+002)
mad r0.x, r0.y, l(3.000000e+000), r0.x
dp3 r0.y, r1.xyzx, r1.xyzx
rsq r0.y, r0.y
mul r1.xyz, r0.yyyy, r1.xyzx
mad r3.xyz, r3.xyzx, r0.wwww, -r1.xyzx
dp3 r0.y, r3.xyzx, r3.xyzx
rsq r0.y, r0.y
mul r3.xyz, r0.yyyy, r3.xyzx
movc r0.y, r1.w, l(0), l(0.500000)
mul r0.y, r0.y, r0.z
mul r7.xyz, cb12[3].wwww, cb12[3].yxxz
//mul r7.xyz, cb12[3].wwww, cb12[3].xyzx // Yellow
dp3_sat r0.z, r6.xyzx, r4.xyzx
dp3_sat r1.x, -r1.xyzx, r6.xyzx
dp3_sat r1.y, r3.xyzx, r4.xyzx
add r1.xy, -r1.xyxx, l(1.000000e+000, 1.000000e+000, 0.000000e+000, 0.000000e+000)
mul r1.zw, r1.xxxy, r1.xxxy
mul r1.zw, r1.zzzw, r1.zzzw
mul r1.xy, r1.xyxx, r1.zwzz
add r0.w, -r5.z, l(1.000000e+000)
mad r1.xy, r5.zzzz, r1.xyxx, r0.wwww
add r0.xw, r0.xxxx, l(2.000000e+000, 0.000000e+000, 0.000000e+000, 1.000000e-008)
mul r0.x, r0.x, l(1.250000e-001)
mad r1.x, -r5.x, r1.x, l(1.000000e+000)
dp3 r1.z, r6.xyzx, r3.xyzx
add_sat r1.z, r1.z, l(1.000000e-008)
log r1.z, r1.z
mul r0.w, r0.w, r1.z
exp r0.w, r0.w
mul r0.w, r1.y, r0.w
mul r0.x, r0.x, r0.w
mul r0.x, r5.x, r0.x
mul r0.x, r0.z, r0.x
mul r0.z, r0.z, r1.x
mul r0.x, r0.x, cb12[8].z
mad r0.xzw, r2.xxyz, r0.zzzz, r0.xxxx
mul r0.xzw, r7.xxyz, r0.xxzw
mul r0.xyz, r0.yyyy, r0.xzwx
mul o0.xyz, r0.xyzx, cb2[14].zzzz
mov o0.w, l(1.000000)
ret 
// Approximately 90 instruction slots used
