//
// 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 [unused]
//   float4 Transform;                  // Offset:  304 Size:    16
//   float4 g_vDepthCoordsClamp;        // Offset:  320 Size:    16 [unused]
//   float4 CamPos;                     // Offset:  336 Size:    16 [unused]
//   float4 g_vCenterOffs;              // Offset:  352 Size:    16 [unused]
//   float4 g_vHFrustrum;               // Offset:  368 Size:    16 [unused]
//   float4 g_vVFrustrum;               // Offset:  384 Size:    16 [unused]
//   float4 g_avNoise[8];               // Offset:  400 Size:   128 [unused]
//   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
// ToneSamplerLerp                   sampler      NA          NA    2        1
// DepthTexture                      texture  float4          2d    0        1
// DiffTexture                       texture  float4          2d    1        1
// ToneTexture                       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[20], immediateIndexed
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
mul r0.xy, v1.zwzz, cb0[17].zwzz
mad r0.zw, v1.zzzw, cb0[17].zzzw, cb0[17].xxxy
sample_l r1.xyzw, r0.zwzz, t0.xyzw, s0, l(0.000000)
lt r1.y, l(0.100000), r1.y
if_nz r1.y
  add r1.yz, r0.zzwz, cb0[17].xxyx
  sample_l r2.xyzw, r1.yzyy, t0.xyzw, s0, l(0.000000)
  div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x
  sample_l r2.xyzw, r1.yzyy, t1.xyzw, s1, l(0.000000)
  mad r3.xyzw, cb0[17].xyxy, l(1.000000, -1.000000, -1.000000, 1.000000), r0.zwzw
  sample_l r4.xyzw, r3.xyxx, t0.xyzw, s0, l(0.000000)
  div r1.y, l(1.000000, 1.000000, 1.000000, 1.000000), r4.x
  sample_l r4.xyzw, r3.xyxx, t1.xyzw, s1, l(0.000000)
  mul r2.zw, r1.yyyy, r4.xxxy
  mad r2.xy, r2.xyxx, r1.wwww, r2.zwzz
  add r1.y, r1.y, r1.w
  sample_l r4.xyzw, r0.xyxx, t0.xyzw, s0, l(0.000000)
  div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r4.x
  sample_l r4.xyzw, r0.xyxx, t1.xyzw, s1, l(0.000000)
  mad r0.xy, r4.xyxx, r1.zzzz, r2.xyxx
  add r1.y, r1.z, r1.y
  sample_l r2.xyzw, r3.zwzz, t0.xyzw, s0, l(0.000000)
  div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x
  sample_l r2.xyzw, r3.zwzz, t1.xyzw, s1, l(0.000000)
  mad r0.xy, r2.xyxx, r1.zzzz, r0.xyxx
  add r1.y, r1.z, r1.y
  ne r1.w, r1.y, l(0.000000)
  if_nz r1.w
    div r1.y, l(1.000000, 1.000000, 1.000000, 1.000000), r1.y
  endif 
  mul r1.x, r1.y, l(4.000000)
  mul r2.xy, r0.xyxx, r1.yyyy
else 
  sample_l r2.xyzw, r0.zwzz, t1.xyzw, s1, l(0.000000)
endif 
sample_l r3.xyzw, v1.xyxx, t2.xyzw, s2, l(0.000000)
dp2 r0.x, r2.xyxx, r2.xyxx
sqrt r0.x, r0.x
lt r0.y, l(0.300000), r0.x
if_nz r0.y
  div r0.y, l(0.300000), r0.x
  mul r1.yz, r0.yyyy, r2.xxyx
else 
  mov r1.yz, r2.xxyx
endif 
div r0.y, cb0[15].y, cb0[15].w
mul r1.z, r0.y, r1.z
mul r4.xy, r1.yzyy, cb0[19].zwzz
mul r5.xy, r4.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
dp2 r0.y, r5.xyxx, r5.xyxx
sqrt r0.y, r0.y
div r0.y, r0.y, cb0[15].z
add r0.y, r0.y, l(0.500000)
round_z r0.y, r0.y
min r0.y, r0.y, cb0[15].x
min r0.y, r0.y, l(64.000000)
ftoi r1.y, r0.y
ilt r1.z, l(0), r1.y
if_nz r1.z
  add r1.z, r1.x, l(0.010000)
  mul r1.z, r1.z, l(0.010000)
  div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r1.z
  round_z r0.y, r0.y
  div r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.y
  div r5.z, r5.y, cb0[15].y
  mul r2.zw, r5.xxxz, cb0[17].zzzw
  div r2.zw, r2.zzzw, cb0[19].zzzw
  mov r4.z, r5.z
  mad r4.xy, -r4.xzxx, l(0.250000, 0.500000, 0.000000, 0.000000), v1.xyxx
  mad r0.zw, -r2.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), r0.zzzw
  add r4.zw, -cb0[19].xxxy, cb0[19].zzzw
  lt r3.w, l(0.000000), cb0[16].x
  mov r6.xyz, r3.xyzx
  mov r5.yw, r4.xxxy
  mov r7.xy, r0.zwzz
  mov r6.w, l(1.000000)
  mov r7.z, l(0)
  loop 
    ige r7.w, r7.z, r1.y
    breakc_nz r7.w
    mad r5.yw, r5.xxxz, r1.wwww, r5.yyyw
    mad r7.xy, r2.zwzz, r1.wwww, r7.xyxx
    lt r8.xy, r5.ywyy, r4.zwzz
    and r7.w, r8.y, r8.x
    if_nz r7.w
      sample_l r8.xyzw, r7.xyxx, t0.xyzw, s0, l(0.000000)
      add r7.w, r1.x, -r8.x
      mul r7.w, r1.z, r7.w
      mov_sat r8.x, r7.w
      mov_sat r7.w, -r7.w
      mul r7.w, r0.y, r7.w
      mul r8.y, r7.w, l(0.250000)
      if_nz r3.w
        sample_l r9.xyzw, r7.xyxx, t1.xyzw, s1, l(0.000000)
        add r8.zw, r2.xxxy, -r9.xxxy
        dp2 r8.z, r8.zwzz, r8.zwzz
        dp2 r8.w, r9.xyxx, r9.xyxx
        sqrt r8.zw, r8.zzzw
        max r8.w, r0.x, r8.w
        div r8.z, r8.z, r8.w
        add r8.z, r8.z, -cb0[16].x
        mul_sat r8.z, r8.z, cb0[16].y
        mul r8.x, r8.z, r8.x
        mad r8.y, r8.z, r8.y, l(1.000000)
      else 
        mad r8.y, r7.w, l(0.250000), l(1.000000)
      endif 
      lt r7.w, r8.x, l(0.990000)
      if_nz r7.w
        add r7.w, -r8.x, l(1.000000)
        mul r8.x, r7.w, r8.y
        sample_l r9.xyzw, r5.ywyy, t2.xyzw, s2, l(0.000000)
        mad r6.xyz, r9.xyzx, r8.xxxx, r6.xyzx
        mad r6.w, r8.y, r7.w, r6.w
      endif 
    endif 
    iadd r7.z, r7.z, l(1)
  endloop 
  mov r3.xyz, r6.xyzx
  iadd r0.y, r1.y, l(1)
  itof r0.y, r0.y
  div_sat r0.y, r6.w, r0.y
else 
  mov r0.y, l(1.000000)
  mov r6.w, l(1.000000)
endif 
mul r0.x, r0.x, r0.y
mul_sat o0.w, r0.x, cb0[16].z
div o0.xyz, r3.xyzx, r6.wwww
ret 
// Approximately 130 instruction slots used
