//
// 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
// ------------------------------ ---------- ------- ----------- ---- --------
// gDeferredLightSampler             sampler      NA          NA    2        1
// GBufferTextureSampler0Global      sampler      NA          NA    7        1
// GBufferTextureSampler1Global      sampler      NA          NA    8        1
// GBufferTextureSampler2Global      sampler      NA          NA    9        1
// GBufferTextureSamplerDepthGlobal    sampler      NA          NA   12        1
// gDeferredLightSampler             texture  float4          2d    2        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 s2, mode_default
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) t2
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 6
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 r3.xyz, r0.wwww, r3.xyzx
mad_sat r0.z, -r0.z, cb12[4].z, l(1.000000e+000)
add r0.w, -cb12[7].x, l(1.000000e+000)
mad r0.w, r0.w, r0.z, cb12[7].x
div r0.z, r0.z, r0.w
dp3 r0.w, r3.xyzx, -cb12[1].xyzx
mad_sat r0.w, r0.w, cb12[5].w, cb12[5].z
mul r0.z, r0.w, r0.z
mov r2.w, l(1.000000)
dp4 r0.w, r2.xyzw, cb12[6].xyzw
ge r0.w, r0.w, l(0.000000e+000)
and r0.w, r0.w, l(0x3f800000)
mul r0.z, r0.w, r0.z
lt r0.w, r0.z, l(1.000000e-006)
discard_nz r0.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 r0.w, r2.y, l(8)
utof r0.w, r0.w
ge r0.w, r0.w, l(7.900000e+000)
sample r2.xyzw, r0.xyxx, t7.xyzw, s7
mul r2.xyz, r2.xyzx, r2.xyzx
sample r4.xyzw, r0.xyxx, t9.xyzw, s9
mul_sat r1.w, r4.x, r4.x
sample r5.xyzw, r0.xyxx, t8.xyzw, s8
mul r4.xyw, r5.wwww, l(9.980469e-001, 7.984375e+000, 0.000000e+000, 6.387500e+001)
frc r4.xyw, r4.xyxw
mad r4.xy, -r4.ywyy, l(1.250000e-001, 1.250000e-001, 0.000000e+000, 0.000000e+000), r4.xyxx
mad r4.xyw, r5.xyxz, l(2.560000e+002, 2.560000e+002, 0.000000e+000, 2.560000e+002), r4.xyxw
add r4.xyw, r4.xyxw, l(-1.280000e+002, -1.280000e+002, 0.000000e+000, -1.280000e+002)
dp3 r0.x, r4.xywx, r4.xywx
rsq r0.x, r0.x
mul r4.xyw, r0.xxxx, r4.xyxw
dp3 r0.x, r1.xyzx, r1.xyzx
rsq r0.x, r0.x
mul r1.xyz, r0.xxxx, r1.xyzx
movc r0.x, r0.w, l(0), l(2.000000)
mul r0.x, r0.x, r0.z
mul r0.yzw, -cb12[1].zzxy, cb12[2].yyzx
mad r0.yzw, -cb12[1].yyzx, cb12[2].zzxy, -r0.yyzw
dp3 r5.x, r0.yzwy, -r3.xyzx
dp3 r5.y, cb12[2].xyzx, -r3.xyzx
dp3 r0.y, -cb12[1].xyzx, -r3.xyzx
mad r0.z, -cb12[5].x, cb12[5].x, l(1.000000e+000)
sqrt r0.z, r0.z
div r0.z, cb12[5].x, r0.z
mul r0.z, r0.z, l(5.000000e-001)
div r0.y, r0.z, r0.y
mad_sat r5.xy, r5.xyxx, r0.yyyy, l(5.000000e-001, 5.000000e-001, 0.000000e+000, 0.000000e+000)
eq r0.y, cb12[11].x, l(1.000000e+000)
add r0.z, -r5.y, l(1.000000e+000)
movc r5.z, r0.y, r0.z, r5.y
sample_l r5.xyzw, r5.xzxx, t2.xyzw, s2, l(0.000000e+000)
mad r0.yzw, r5.xxyz, r5.xxyz, l(0.000000e+000, -1.000000e+000, -1.000000e+000, -1.000000e+000)
mad r0.yzw, cb12[11].yyyy, r0.yyzw, l(0.000000e+000, 1.000000e+000, 1.000000e+000, 1.000000e+000)
mul r0.yzw, r0.yyzw, cb12[3].xxyz
mul r0.yzw, r0.yyzw, cb12[3].wwww
dp3_sat r2.w, r4.xywx, r3.xyzx
dp3_sat r1.x, -r1.xyzx, r4.xywx
add r1.x, -r1.x, l(1.000000e+000)
mul r1.y, r1.x, r1.x
mul r1.y, r1.y, r1.y
mul r1.x, r1.x, r1.y
add r1.y, -r4.z, l(1.000000e+000)
mad r1.x, r4.z, r1.x, r1.y
mad r1.x, -r1.w, r1.x, l(1.000000e+000)
mul r1.x, r1.x, r2.w
mul r1.xyz, r1.xxxx, r2.xyzx
mul r0.yzw, r0.yyzw, r1.xxyz
//mul r0.yzw, r0.yyzw, r1.xxyz //Yellow r0
mul r0.xyz, r0.xxxx, r0.yzwy
mul o0.xyz, r0.xyzx, cb2[14].zzzz
mov o0.w, l(1.000000)
ret 
// Approximately 85 instruction slots used
