//
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
//   using 3Dmigoto v1.2.67 on Mon Jan 01 13:11:45 2018
//
//
// Buffer Definitions: 
//
// cbuffer $Globals
// {
//
//   struct
//   {
//       
//       float4 vPlane;                 // Offset:    0
//       float4 vSettings;              // Offset:   16
//
//   } g_ClipPlane;                     // Offset:    0 Size:    32 [unused]
//   float4x4 g_mCloudsShadowsSpace;    // Offset:   32 Size:    64 [unused]
//   float4 g_vCloudsShadowDesc;        // Offset:   96 Size:    16 [unused]
//   float4 g_vKSettings;               // Offset:  112 Size:    16
//   float4x4 g_mPrevObjViewProj;       // Offset:  128 Size:    64
//   float4 specColor;                  // Offset:  192 Size:    16 [unused]
//   float4 ControlData;                // Offset:  208 Size:    16
//   float4 difColor;                   // Offset:  224 Size:    16 [unused]
//   float4 ambient;                    // Offset:  240 Size:    16 [unused]
//   float4 g_vDefLightDir;             // Offset:  256 Size:    16 [unused]
//   float4 g_vDefLightColor;           // Offset:  272 Size:    16 [unused]
//   float4 g_vDefSpecColor;            // Offset:  288 Size:    16 [unused]
//   uint CS_FRONT;                     // Offset:  304 Size:     4 [unused]
//      = 0x00000000 
//   uint CS_RIGHT;                     // Offset:  308 Size:     4 [unused]
//      = 0x00000001 
//   uint CS_BACK;                      // Offset:  312 Size:     4 [unused]
//      = 0x00000002 
//   uint CS_LEFT;                      // Offset:  316 Size:     4 [unused]
//      = 0x00000003 
//   uint CS_TOP;                       // Offset:  320 Size:     4 [unused]
//      = 0x00000004 
//   uint CS_BOTTOM;                    // Offset:  324 Size:     4 [unused]
//      = 0x00000005 
//   float4 g_vAmbientSettings;         // Offset:  336 Size:    16 [unused]
//   
//   struct
//   {
//       
//       float4 vDesc;                  // Offset:  352
//       float4 vFogLayerPlane;         // Offset:  368
//       float4 vFogLayerColor;         // Offset:  384
//       float4 vFogLayerSettings;      // Offset:  400
//       float4 vFogColor;              // Offset:  416
//       float4 vFogDistance;           // Offset:  432
//
//   } g_FogDesc;                       // Offset:  352 Size:    96 [unused]
//   float4 g_vScreenDepthRect;         // Offset:  448 Size:    16 [unused]
//   float4x4 g_mViewProj;              // Offset:  464 Size:    64
//   float4x4 g_mView;                  // Offset:  528 Size:    64 [unused]
//   float3 g_vCamPos;                  // Offset:  592 Size:    12 [unused]
//   float4 g_vMirrorRect;              // Offset:  608 Size:    16 [unused]
//   float4 g_vSkyColor;                // Offset:  624 Size:    16 [unused]
//   float4 g_vFogK;                    // Offset:  640 Size:    16 [unused]
//   
//   struct
//   {
//       
//       float4x4 mLightSpaceInverse;   // Offset:  656
//       float4x4 mLightSpace;          // Offset:  720
//       float4 vShadowBias;            // Offset:  784
//       float4 vBiasDir;               // Offset:  800
//       float4 vSmoothOffs;            // Offset:  816
//       float4 vShadowsDesc;           // Offset:  832
//       float4 avCPlane[8];            // Offset:  848
//       float4 avCascadeZ[2];          // Offset:  976
//       float4 avUVTransform[8];       // Offset: 1008
//       float4 avZTransformZF[8];      // Offset: 1136
//
//   } g_ShadSettings;                  // Offset:  656 Size:   608 [unused]
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// DPattern0Sampler                  sampler      NA          NA    0        1
// DPattern1Sampler                  sampler      NA          NA    1        1
// DPattern2Sampler                  sampler      NA          NA    2        1
// DamageSampler                     sampler      NA          NA    3        1
// DiffuseSampler                    sampler      NA          NA    4        1
// AlphaSampler                      sampler      NA          NA    5        1
// DamageSampler                     texture  float4          2d    0        1
// DPattern0Sampler                  texture  float4          2d    1        1
// DPattern2Sampler                  texture  float4          2d    2        1
// DPattern1Sampler                  texture  float4          2d    3        1
// DiffuseSampler                    texture  float4          2d    4        1
// AlphaSampler                      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   xyz         2     NONE   float   xyz 
// TEXCOORD                 2   xyz         3     NONE   float   xyz 
// TEXCOORD                 3   xyzw        4     NONE   float       
// TEXCOORD                 4   xyz         5     NONE   float       
// TEXCOORD                 5   xyz         6     NONE   float   xyz 
// TEXCOORD                 6   xyz         7     NONE   float       
// TEXCOORD                 7   xyz         8     NONE   float   xyz 
// TEXCOORD                 8   xyzw        9     NONE   float   xyzw
// SV_ClipDistance          0   x          10  CLIPDST   float       
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                1   xyzw        1   TARGET   float   xyzw
// SV_Target                2   xyzw        2   TARGET   float   xyzw
//
ps_4_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[33], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, 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 v2.xyz
dcl_input_ps linear v3.xyz
dcl_input_ps linear v6.xyz
dcl_input_ps linear v8.xyz
dcl_input_ps linear v9.xyzw
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_temps 4
ge r0.x, v2.z, l(0.250000)
if_nz r0.x
  sample r0.xyzw, v1.xyxx, t0.xyzw, s3
  ge r1.xy, v2.zzzz, l(0.500000, 0.750000, 0.000000, 0.000000)
  if_nz r1.x
    max r0.x, r0.y, r0.x
  endif 
  if_nz r1.y
    max r0.x, r0.z, r0.x
  endif 
  lt r0.y, l(0.750000), r0.x
  if_nz r0.y
    mov r0.z, l(-1.000000)
  endif 
  if_z r0.y
    lt r1.x, r0.w, l(0.330000)
    if_nz r1.x
      sample r1.x, v2.xyxx, t1.wxyz, s0
    else 
      lt r0.w, l(0.660000), r0.w
      if_nz r0.w
        sample r1.x, v2.xyxx, t2.wxyz, s2
      else 
        sample r1.x, v2.xyxx, t3.wxyz, s1
      endif 
    endif 
    add r0.w, r0.x, r0.x
    min r0.x, r0.w, l(1.000000)
  else 
    mov r1.x, l(0)
  endif 
else 
  mov r1.x, l(0)
  mov r0.xy, l(0,0,0,0)
endif 
if_z r0.y
  mov r0.z, r0.x
endif 
lt r0.x, r0.z, l(-0.500000)
if_nz r0.x
  discard_nz l(-1)
endif 
sample r0.y, v1.xyxx, t4.xwyz, s4
mov r0.x, l(0.500000)
sample r0.xy, r0.xyxx, t5.yzxw, s5
lt r0.w, r0.y, l(0.500000)
if_nz r0.w
  discard_nz l(-1)
endif 
mov r1.y, l(0.500000)
sample r0.w, r1.yxyy, t5.xzwy, s5
dp3 r1.x, v9.xyzx, v9.xyzx
rsq r1.x, r1.x
mul r1.xyz, r1.xxxx, v9.xyzx
mad o0.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
lt r1.x, l(0.600000), r0.y
if_nz r1.x
  dp3 r1.x, v6.xyzx, v6.xyzx
  rsq r1.x, r1.x
  mul r1.xyz, r1.xxxx, v6.xyzx
  dp3 r1.w, v3.xyzx, v3.xyzx
  rsq r1.w, r1.w
  mul r2.xyz, r1.wwww, v3.xyzx
  dp3 r1.x, r1.xyzx, r2.xyzx
  mul r1.x, r1.x, cb0[13].z
  max r1.x, r1.x, l(0.000000)
  add r1.x, -r1.x, l(1.000000)
  mul r1.x, r1.x, r1.x
  mul r1.x, r1.x, cb0[13].y
  add r0.w, -r0.x, r0.w
  mad r0.x, r0.z, r0.w, r0.x
  mul r0.x, r0.x, r1.x
  mad o0.w, r0.x, l(0.500000), l(0.500000)
else 
  mul o0.w, r0.y, l(0.500000)
endif 
lt r0.x, cb0[7].x, l(0.500000)
if_nz r0.x
  mov r0.xy, l(0,0,0,0)
else 
  mov r1.xyz, v8.xyzx
  mov r1.w, l(1.000000)
  dp4 r2.x, r1.xyzw, cb0[29].xyzw
  dp4 r2.y, r1.xyzw, cb0[30].xyzw
  dp4 r0.w, r1.xyzw, cb0[32].xyzw
  div r2.xy, r2.xyxx, r0.wwww
  dp4 r3.x, r1.xyzw, cb0[8].xyzw
  dp4 r3.y, r1.xyzw, cb0[9].xyzw
  dp4 r0.w, r1.xyzw, cb0[11].xyzw
  div r1.xy, r3.xyxx, r0.wwww
  add r0.xz, -r1.xxyx, r2.xxyx
  mul r0.y, -r0.z, cb0[7].y
  dp2 r0.z, r0.xyxx, r0.xyxx
  sqrt r0.z, r0.z
  lt r0.w, l(2.000000), r0.z
  if_nz r0.w
    div r0.z, l(2.000000), r0.z
    mul r0.xy, r0.zzzz, r0.xyxx
  endif 
endif 
mov o1.x, v9.w
mov o1.yzw, l(0,0,0,0)
mov o2.xy, r0.xyxx
mov o2.zw, l(0,0,0,0)
ret 
// Approximately 105 instruction slots used
