//
// 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
// PrevDepthTexture                  texture  float4          2d    1        1
// PrevSSAOTexture                   texture  float4          2d    2        1
// VFTexture                         texture  float4          2d    3        1
// DiffTexture                       texture  float4          2d    4        1
// NoiseTexture                      texture  float4          2d    5        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_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
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 
sample_l r1.xyzw, v1.xyxx, t3.xyzw, s0, l(0.000000)
mul r1.x, r1.x, l(0.500000)
mul r0.w, r1.y, cb0[15].z
mul r1.z, r0.w, l(0.500000)
add r1.yw, -r1.xxxz, v1.zzzw
mad r1.xz, -r1.xxzx, cb0[19].zzwz, v1.xxyx
mul r1.xz, r1.xxzx, cb0[16].xxyx
add r2.xy, r1.ywyy, l(-0.500000, -0.500000, 0.000000, 0.000000)
lt r2.xy, |r2.xyxx|, l(0.500000, 0.500000, 0.000000, 0.000000)
and r0.w, r2.y, r2.x
if_nz r0.w
  sample_l r2.xyzw, r1.xzxx, t1.xyzw, s0, l(0.000000)
  add r0.w, r0.z, -r2.x
  min r2.x, r0.z, r2.x
  div r0.w, |r0.w|, r2.x
  lt r0.w, r0.w, l(0.050000)
  if_nz r0.w
    mul r1.yw, r1.yyyw, cb0[17].zzzw
    sample_l r2.xyzw, r1.ywyy, t2.yxzw, s0, l(0.000000)
    min r0.w, r2.y, l(20.000000)
  else 
    mov r0.w, l(0)
    mov r2.x, l(0)
  endif 
else 
  mov r0.w, l(0)
  mov r2.x, l(0)
endif 
mul r1.yw, cb0[19].zzzz, l(0.000000, 0.500000, 0.000000, 0.100000)
mul r2.y, cb0[19].w, cb0[22].y
mad r3.x, -r1.y, cb0[22].x, v1.x
mad r2.z, r2.y, l(0.500000), -v1.y
mul r3.y, r2.z, cb0[15].x
mul r2.z, r1.y, cb0[15].y
sample_l r4.xyzw, v1.xyxx, t4.xyzw, s1, l(0.000000)
mad r4.xyz, r4.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r2.w, r4.xyzx, r4.xyzx
rsq r2.w, r2.w
mul r4.xyz, r2.wwww, r4.xyzx
mad r3.zw, v1.zzzw, cb0[18].zzzw, cb0[18].xxxy
sample_l r5.xyzw, r3.zwzz, t5.xyzw, s2, l(0.000000)
mad r3.zw, r5.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
dp2 r2.w, r3.zwzz, r3.zwzz
rsq r2.w, r2.w
mul r3.zw, r2.wwww, r3.zzzw
div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z
mul r3.xy, r0.zzzz, r3.xyxx
mul r0.xy, r2.wwww, r3.xyxx
mul r5.xyz, r0.zzzz, r4.xyzx
mad r0.xyz, r5.xyzx, l(0.00390625000, 0.00390625000, 0.00390625000, 0.000000), r0.xyzx
mul r2.z, r2.z, cb0[15].w
div r3.x, r2.z, r0.z
lt r2.z, r1.w, r3.x
if_nz r2.z
  mov r3.x, r1.w
endif 
div r1.w, r3.x, cb0[17].y
lt r1.w, r1.w, cb0[16].z
if_nz r1.w
  div r1.w, r3.x, cb0[16].z
  add r1.w, r1.w, l(0.500000)
  ftoi r1.w, r1.w
  imin r1.w, r1.w, l(32)
else 
  ftoi r2.z, cb0[17].y
  imin r1.w, r2.z, l(32)
endif 
itof r2.z, r1.w
div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.z
div r3.y, r3.x, cb0[15].x
mul r4.w, cb0[15].w, cb0[15].w
mov r5.xyzw, l(0,0,0,0)
mov r6.x, r0.w
mov r6.yz, l(0,0,0,0)
loop 
  ige r6.w, r6.y, r1.w
  breakc_nz r6.w
  and r6.w, r6.y, l(3)
  if_nz r6.w
    mov r5.xyzw, r5.yzwx
  else 
    ishr r6.w, r6.y, l(2)
    mov r5.xyzw, cb0[r6.w + 25].xyzw
  endif 
  dp4 r6.w, r5.xxyy, r3.zzww
  mad r7.xy, r3.zwzz, -r6.wwww, r5.xyxx
  dp2 r6.w, r7.xyxx, r7.xyxx
  sqrt r6.w, r6.w
  lt r6.w, l(1.000000), r6.w
  if_nz r6.w
    mul r7.xy, r7.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  endif 
  mul r7.zw, r3.xxxy, r7.xxxy
  mad r7.xy, r7.xyxx, r3.xyxx, v1.xyxx
  min r8.xy, r7.xyxx, cb0[20].xyxx
  sample_l r8.xyzw, r8.xyxx, t0.xyzw, s0, l(0.000000)
  mad r9.x, -r1.y, cb0[22].x, r7.x
  mad r6.w, r2.y, l(0.500000), -r7.y
  mul r9.y, r6.w, cb0[15].x
  mul r7.xy, r8.xxxx, r9.xyxx
  mul r9.xy, r2.wwww, r7.xyxx
  mov r9.z, r8.x
  add r8.yzw, -r0.xxyz, r9.xxyz
  dp3 r6.w, r8.yzwy, r8.yzwy
  lt r7.x, r6.w, r4.w
  if_nz r7.x
    dp3 r7.x, r4.xyzx, r8.yzwy
    lt r7.y, l(0.100000), r6.x
    if_nz r7.y
      mad r7.yz, r7.zzwz, cb0[16].xxyx, r1.xxzx
      min r7.yz, r7.yyzy, cb0[20].zzwz
      sample_l r9.xyzw, r7.yzyy, t1.xyzw, s0, l(0.000000)
      add r7.y, r8.x, -r9.x
      min r7.z, r8.x, r9.x
      div r7.y, |r7.y|, r7.z
      ge r7.y, r7.y, l(0.400000)
      if_nz r7.y
        mul r6.x, r2.z, r6.x
      endif 
    else 
      mov r6.x, l(0)
    endif 
    lt r7.y, l(0.000000), r7.x
    if_nz r7.y
      sqrt r6.w, r6.w
      div r7.x, r7.x, r6.w
      mad r6.w, -r6.w, cb0[16].w, l(1.000000)
      mul r6.w, r6.w, r7.x
    endif 
  else 
    mov r7.y, l(0)
  endif 
  if_z r7.y
    mov r6.w, l(0)
  endif 
  add r6.z, r6.w, r6.z
  iadd r6.y, r6.y, l(1)
endloop 
ilt r0.x, l(0), r1.w
if_nz r0.x
  mul r0.x, r6.z, cb0[17].x
  mad_sat r0.x, -r0.x, r2.z, l(1.000000)
  add r1.x, r6.x, l(1.000000)
  mad r0.x, r2.x, r6.x, r0.x
  div r1.y, r0.x, r1.x
else 
  mov r1.xy, l(1.000000,1.000000,0,0)
endif 
mov o0.xy, r1.xyxx
mov o0.zw, l(0,0,1.000000,1.000000)
ret 
// Approximately 156 instruction slots used
