//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//   using 3Dmigoto v1.2.67 on Mon Jan 01 13:11:46 2018
//
//
// Buffer Definitions: 
//
// cbuffer $Globals
// {
//
//   float4 lightCount;                 // Offset:    0 Size:    16 [unused]
//   float4 ambient;                    // Offset:   16 Size:    16 [unused]
//   float4 lightInfo[4];               // Offset:   32 Size:    64 [unused]
//   float4 g_vAmbientSettings;         // Offset:   96 Size:    16 [unused]
//      = 0x00000000 0x00000000 0x00000000 0x00000000 
//   float4 g_vScreenDepthRect;         // Offset:  112 Size:    16 [unused]
//   float4 g_vDitherSettings;          // Offset:  128 Size:    16 [unused]
//   float4 g_ColorK;                   // Offset:  144 Size:    16 [unused]
//      = 0x3e8a3d71 0x3f2b851f 0x3d75c28f 0x00000000 
//   float4 LevelMin;                   // Offset:  160 Size:    16 [unused]
//      = 0x3dcccccd 0x3dcccccd 0x3dcccccd 0x00000000 
//   float4 LevelMax;                   // Offset:  176 Size:    16 [unused]
//      = 0x3f4ccccd 0x3f4ccccd 0x3f4ccccd 0x00000000 
//   float4 MaxAdd;                     // Offset:  192 Size:    16 [unused]
//      = 0x3dcccccd 0x3dcccccd 0x3dcccccd 0x00000000 
//   float4 MinSub;                     // Offset:  208 Size:    16 [unused]
//      = 0x3ca3d70a 0x3ca3d70a 0x3ca3d70a 0x00000000 
//   float4 Color;                      // Offset:  224 Size:    16 [unused]
//   float4 Settings;                   // Offset:  240 Size:    16
//   float4 Settings2;                  // Offset:  256 Size:    16
//   float4 Settings3;                  // Offset:  272 Size:    16
//   float4 Settings4;                  // Offset:  288 Size:    16
//   float4 Transform;                  // Offset:  304 Size:    16
//   float4 g_vDepthCoordsClamp;        // Offset:  320 Size:    16
//   float4 CamPos;                     // Offset:  336 Size:    16 [unused]
//   float4 g_vCenterOffs;              // Offset:  352 Size:    16
//   float4 g_vHFrustrum;               // Offset:  368 Size:    16 [unused]
//   float4 g_vVFrustrum;               // Offset:  384 Size:    16 [unused]
//   float4 g_avNoise[8];               // Offset:  400 Size:   128
//   float4x4 g_mView;                  // Offset:  528 Size:    64 [unused]
//   float4 g_PixelsDir[8];             // Offset:  592 Size:   128 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// LinearSampler                     sampler      NA          NA    0        1
// DiffuseSamplerLerp                sampler      NA          NA    1        1
// NoiseSamplerNoLerp                sampler      NA          NA    2        1
// DepthTexture                      texture  float4          2d    0        1
// DiffTexture                       texture  float4          2d    1        1
// NoiseTexture                      texture  float4          2d    2        1
// $Globals                          cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float       
// TEXCOORD                 0   xy          1     NONE   float   xy  
// TEXCOORD                 1     zw        1     NONE   float     zw
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_4_0
dcl_constantbuffer cb0[33], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_input_ps linear v1.xy
dcl_input_ps linear v1.zw
dcl_output o0.xyzw
dcl_temps 10
sample_l r0.xyzw, v1.xyxx, t0.yzxw, s0, l(0.000000)
lt r0.w, l(150.000000), r0.z
if_nz r0.w
  discard_nz l(-1)
endif 
mul r1.xy, cb0[19].zzzz, l(0.500000, 0.100000, 0.000000, 0.000000)
mul r0.w, cb0[19].w, cb0[22].y
mad r2.x, -r1.x, cb0[22].x, v1.x
mad r1.z, r0.w, l(0.500000), -v1.y
mul r2.y, r1.z, cb0[15].x
mul r1.z, r1.x, cb0[15].y
sample_l r3.xyzw, v1.xyxx, t1.xyzw, s1, l(0.000000)
mad r3.xyz, r3.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r1.w, r3.xyzx, r3.xyzx
rsq r1.w, r1.w
mul r3.xyz, r1.wwww, r3.xyzx
mad r2.zw, v1.zzzw, cb0[18].zzzw, cb0[18].xxxy
sample_l r4.xyzw, r2.zwzz, t2.xyzw, s2, l(0.000000)
mad r4.xyzw, r4.xyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(-1.000000, -1.000000, -1.000000, -1.000000)
div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.z
mul r2.xy, r0.zzzz, r2.xyxx
mul r0.xy, r1.wwww, r2.xyxx
mul r2.xyz, r0.zzzz, r3.xyzx
mad r0.xyz, r2.xyzx, l(0.00390625000, 0.00390625000, 0.00390625000, 0.000000), r0.xyzx
mul r1.z, r1.z, cb0[15].w
div r2.x, r1.z, r0.z
lt r1.z, r1.y, r2.x
if_nz r1.z
  mov r2.x, r1.y
endif 
div r1.y, r2.x, cb0[17].y
lt r1.y, r1.y, cb0[16].z
if_nz r1.y
  div r1.y, r2.x, cb0[16].z
  add r1.y, r1.y, l(0.500000)
  ftoi r1.y, r1.y
else 
  ftoi r1.z, cb0[17].y
  imin r1.y, r1.z, l(64)
endif 
div r2.y, r2.x, cb0[15].x
mul r1.z, cb0[15].w, cb0[15].w
mov r5.xyzw, l(0,0,0,0)
mov r2.zw, r4.xxxy
mov r6.xy, r4.zwzz
mov r6.zw, l(0,0,1.000000,0)
mov r3.w, l(0)
mov r7.x, l(0)
loop 
  ige r7.y, r3.w, r1.y
  breakc_nz r7.y
  and r7.yz, r3.wwww, l(0, 3, 31, 0)
  if_nz r7.y
    mov r5.xyzw, r5.yzwx
  else 
    ishr r7.y, r3.w, l(2)
    and r7.y, r7.y, l(7)
    mov r5.xyzw, cb0[r7.y + 25].xyzw
  endif 
  if_z r7.z
    dp2 r7.y, r2.zwzz, r2.zwzz
    rsq r7.y, r7.y
    mul r6.zw, r2.zzzw, r7.yyyy
    mov r7.y, r2.w
    mov r2.w, r6.x
    mov r6.x, r6.y
    mov r6.y, r2.z
    mov r2.z, r7.y
  endif 
  dp4 r7.y, r5.xxyy, r6.zzww
  mad r7.yz, r6.zzwz, -r7.yyyy, r5.xxyx
  dp2 r7.w, r7.yzyy, r7.yzyy
  sqrt r7.w, r7.w
  lt r7.w, l(1.000000), r7.w
  if_nz r7.w
    mul r7.yz, r7.yyzy, l(0.000000, 0.500000, 0.500000, 0.000000)
  endif 
  mad r7.yz, r7.yyzy, r2.xxyx, v1.xxyx
  min r8.xy, r7.yzyy, cb0[20].xyxx
  sample_l r8.xyzw, r8.xyxx, t0.yzxw, s0, l(0.000000)
  mad r9.x, -r1.x, cb0[22].x, r7.y
  mad r7.y, r0.w, l(0.500000), -r7.z
  mul r9.y, r7.y, cb0[15].x
  mul r7.yz, r8.zzzz, r9.xxyx
  mul r8.xy, r1.wwww, r7.yzyy
  add r7.yzw, -r0.xxyz, r8.xxyz
  dp3 r8.x, r7.yzwy, r7.yzwy
  lt r8.y, r8.x, r1.z
  if_nz r8.y
    dp3 r7.y, r3.xyzx, r7.yzwy
    lt r7.z, l(0.000000), r7.y
    if_nz r7.z
      sqrt r7.w, r8.x
      div r7.y, r7.y, r7.w
      mad r7.w, -r7.w, cb0[16].w, l(1.000000)
      mul r7.y, r7.w, r7.y
    endif 
  else 
    mov r7.z, l(0)
  endif 
  if_z r7.z
    mov r7.y, l(0)
  endif 
  add r7.x, r7.y, r7.x
  iadd r3.w, r3.w, l(1)
endloop 
ilt r0.x, l(0), r1.y
if_nz r0.x
  mul r0.x, r7.x, cb0[17].x
  itof r0.y, r1.y
  div r0.x, r0.x, r0.y
  add r0.x, -r0.x, l(1.000000)
  mov_sat o0.xyzw, r0.xxxx
else 
  mov o0.xyzw, l(1.000000,1.000000,1.000000,1.000000)
endif 
ret 
// Approximately 117 instruction slots used
