//
// 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
//   float4 g_vHFrustrum;               // Offset:  368 Size:    16
//   float4 g_vVFrustrum;               // Offset:  384 Size:    16
//   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
// DiffuseSampler2                   sampler      NA          NA    2        1
// DepthTexture                      texture  float4          2d    0        1
// DiffTexture                       texture  float4          2d    1        1
// DiffTexture2                      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[25], 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
sample_l r0.xyzw, v1.zwzz, t2.xyzw, s2, l(0.000000)
sample_l r1.xyzw, v1.xyxx, t1.xyzw, s1, l(0.000000)
lt r2.x, r1.w, l(0.520000)
if_nz r2.x
  mov o0.xyzw, r0.xyzw
  ret 
endif 
sample_l r2.xyzw, v1.xyxx, t0.xyzw, s0, l(0.000000)
lt r2.y, l(150.000000), r2.x
if_nz r2.y
  mov o0.xyzw, r0.xyzw
  ret 
endif 
mul r2.y, cb0[19].z, l(0.500000)
mul r2.z, cb0[19].w, cb0[22].y
mul r2.w, r2.z, l(0.500000)
mad r3.x, -r2.y, cb0[22].x, v1.x
mad r2.z, r2.z, l(0.500000), -v1.y
div r3.y, r2.z, cb0[15].x
mul r3.z, r2.y, cb0[15].y
mad r1.xyz, r1.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
dp3 r2.z, r1.xyzx, r1.xyzx
rsq r2.z, r2.z
mul r1.xyz, r1.xyzx, r2.zzzz
div r2.z, l(1.000000, 1.000000, 1.000000, 1.000000), r3.z
mul r4.xy, r2.xxxx, r3.xyxx
mul r4.xy, r2.zzzz, r4.xyxx
mul r5.xyz, r2.xxxx, r1.xyzx
mov r4.z, r2.x
mad r4.xyz, r5.xyzx, l(0.00195312500, 0.00195312500, 0.00195312500, 0.000000), r4.xyzx
dp3 r2.z, r3.xyzx, r1.xyzx
add r2.z, r2.z, r2.z
mad r1.xyz, r1.xyzx, -r2.zzzz, r3.xyzx
dp3 r2.z, r1.xyzx, r1.xyzx
rsq r2.z, r2.z
mul r1.xyz, r1.xyzx, r2.zzzz
mad r3.xyw, r1.xyxz, cb0[15].wwww, r4.xyxz
dp2 r2.z, cb0[23].xyxx, r3.xwxx
lt r2.z, l(0.000000), r2.z
if_nz r2.z
  dp2 r4.w, cb0[23].xyxx, r4.xzxx
  dp2 r5.x, cb0[23].xyxx, r1.xzxx
  div r4.w, -r4.w, r5.x
  mov r5.x, l(-1)
endif 
if_z r2.z
  mov r5.x, l(0)
endif 
if_nz r5.x
  mad r3.xyw, r1.xyxz, r4.wwww, r4.xyxz
else 
  dp2 r2.z, cb0[23].zwzz, r3.xwxx
  lt r2.z, l(0.000000), r2.z
  if_nz r2.z
    dp2 r5.x, cb0[23].zwzz, r4.xzxx
    dp2 r5.y, cb0[23].zwzz, r1.xzxx
    div r4.w, -r5.x, r5.y
    mov r5.x, l(-1)
  endif 
  if_z r2.z
    mov r5.x, l(0)
  endif 
  if_nz r5.x
    mad r3.xyw, r1.xyxz, r4.wwww, r4.xyxz
  else 
    mov r4.w, cb0[15].w
  endif 
endif 
dp2 r2.z, cb0[24].yxyy, r3.ywyy
lt r2.z, l(0.000000), r2.z
if_nz r2.z
  dp2 r5.x, cb0[24].yxyy, r4.yzyy
  dp2 r5.y, cb0[24].yxyy, r1.yzyy
  div r5.x, -r5.x, r5.y
  mov r5.y, l(-1)
endif 
if_z r2.z
  mov r5.y, l(0)
endif 
if_nz r5.y
  mad r3.xyw, r1.xyxz, r5.xxxx, r4.xyxz
  mov r4.w, r5.x
else 
  dp2 r2.z, cb0[24].wzww, r3.ywyy
  lt r2.z, l(0.000000), r2.z
  if_nz r2.z
    dp2 r5.x, cb0[24].wzww, r4.yzyy
    dp2 r5.y, cb0[24].wzww, r1.yzyy
    div r5.x, -r5.x, r5.y
    mov r5.y, l(-1)
  endif 
  if_z r2.z
    mov r5.y, l(0)
  endif 
  if_nz r5.y
    mad r3.xyw, r1.xyxz, r5.xxxx, r4.xyxz
    mov r4.w, r5.x
  endif 
endif 
lt r2.z, r3.w, l(0.200000)
if_nz r2.z
  add r2.z, r4.z, l(-0.200000)
  div r4.w, r2.z, -r1.z
  mad r3.xyw, r1.xyxz, r4.wwww, r4.xyxz
endif 
div r2.z, r3.z, r3.w
mul r3.xy, r2.zzzz, r3.xyxx
mad r4.x, r2.y, cb0[22].x, r3.x
mad r4.y, -r3.y, cb0[15].x, r2.w
add r2.yz, r4.xxyx, -v1.xxyx
dp2 r2.w, r2.yzyy, r2.yzyy
sqrt r2.w, r2.w
mad r2.w, r2.w, cb0[17].z, l(0.500000)
ftoi r2.w, r2.w
ftoi r3.x, cb0[17].x
imin r2.w, r2.w, r3.x
ilt r3.x, l(0), r2.w
if_nz r3.x
  itof r3.x, r2.w
  div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x
  mul r4.xy, r2.yzyy, r3.xxxx
  div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r4.z
  div r5.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w
  add r5.x, -r3.y, r5.x
  mov r5.yz, v1.xxyx
  mov r6.xy, v1.xyxx
  mov r5.w, r2.x
  mov r6.z, l(0)
  mov r6.w, r2.x
  mov r7.x, l(1.000000)
  mov r7.yz, r2.xxxx
  mov r7.w, r3.y
  loop 
    ilt r8.x, r6.z, r2.w
    lt r8.y, l(0.000000), r7.x
    and r8.x, r8.y, r8.x
    breakc_z r8.x
    mad r8.xy, r2.yzyy, r3.xxxx, r5.yzyy
    mad r7.w, r5.x, r3.x, r7.w
    div r8.z, l(1.000000, 1.000000, 1.000000, 1.000000), r7.w
    sample_l r9.xyzw, r8.xyxx, t0.xyzw, s0, l(0.000000)
    add r7.x, -r8.z, r9.x
    iadd r6.z, r6.z, l(1)
    mov r6.xyw, r5.yzyw
    mov r7.y, r7.z
    mov r7.z, r9.x
    mov r5.yzw, r8.xxyz
  endloop 
  lt r2.x, r7.x, l(0.000000)
  lt r2.y, -r4.w, r7.x
  and r2.x, r2.y, r2.x
  if_nz r2.x
    sample_l r8.xyzw, r5.yzyy, t1.xyzw, s1, l(0.000000)
    mad r2.xyz, r8.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
    dp3 r1.x, r2.xyzx, r1.xyzx
    lt r1.x, r1.x, l(-0.100000)
    if_nz r1.x
      dp2 r1.x, r4.xyxx, r4.xyxx
      sqrt r1.x, r1.x
      mov r1.yz, r5.yyzy
      mov r2.xy, r6.xyxx
      mov r3.xy, r5.yzyy
      mov r2.z, r5.w
      mov r4.x, l(0)
      mov r4.y, r6.w
      mov r4.w, r7.y
      mov r5.x, r7.z
      mov r6.z, r5.w
      mov r7.x, r1.x
      loop 
        ilt r7.w, r4.x, r2.w
        lt r8.x, cb0[15].z, r7.x
        and r7.w, r7.w, r8.x
        breakc_z r7.w
        add r7.w, r2.z, r4.y
        mul r6.z, r7.w, l(0.500000)
        add r8.xy, r1.yzyy, r2.xyxx
        mul r3.xy, r8.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
        sample_l r8.xyzw, r3.xyxx, t0.xyzw, s0, l(0.000000)
        lt r7.w, r6.z, r8.x
        if_nz r7.w
          mov r2.xy, r3.xyxx
          mov r4.y, r6.z
          mov r4.w, r8.x
        else 
          mov r1.yz, r3.xxyx
          mov r2.z, r6.z
          mov r5.x, r8.x
        endif 
        add r8.xy, r1.yzyy, -r2.xyxx
        dp2 r7.w, r8.xyxx, r8.xyxx
        sqrt r7.x, r7.w
        iadd r4.x, r4.x, l(1)
      endloop 
      add r1.x, -r4.w, r5.x
      mul r1.x, r3.z, |r1.x|
      add r1.y, r4.w, r5.x
      mul r1.y, r1.y, l(0.500000)
      div r1.x, r1.x, r1.y
      div r1.x, r1.x, r7.x
      lt r1.x, r1.x, cb0[17].y
      if_nz r1.x
        add r1.xy, r3.xyxx, -cb0[19].xyxx
        div r1.xy, r1.xyxx, cb0[19].zwzz
        mad r1.xy, r1.xyxx, cb0[16].zwzz, cb0[16].xyxx
        sample_l r2.xyzw, r1.xyxx, t2.xyzw, s2, l(0.000000)
        add r1.x, -r4.z, r6.z
        add r1.y, -r4.z, r3.w
        div r1.x, r1.x, r1.y
        mad r1.y, -r1.w, l(2.000000), l(2.000000)
        mad r1.y, -r1.y, r1.y, l(1.000000)
        mad r1.x, -r1.x, r1.x, l(1.000000)
        mul r1.x, r1.y, r1.x
        add r1.yzw, -r0.xxyz, r2.xxyz
        mad r0.xyz, r1.xxxx, r1.yzwy, r0.xyzx
      endif 
    endif 
  endif 
endif 
mov o0.xyzw, r0.xyzw
ret 
// Approximately 221 instruction slots used
