//
// 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
// {
//
//   float4 g_vParams;                  // Offset:    0 Size:    16 [unused]
//   float4 g_aUVShiftData[64];         // Offset:   16 Size:  1024 [unused]
//   float4 bones[192];                 // Offset: 1040 Size:  3072 [unused]
//   float4x4 g_mCloudsShadowsSpace;    // Offset: 4112 Size:    64 [unused]
//   float4 g_vCloudsShadowDesc;        // Offset: 4176 Size:    16
//   float4 specColor;                  // Offset: 4192 Size:    16
//   float4 ControlData;                // Offset: 4208 Size:    16 [unused]
//   float4 difColor;                   // Offset: 4224 Size:    16 [unused]
//   float4 ambient;                    // Offset: 4240 Size:    16 [unused]
//   float4 lightCount;                 // Offset: 4256 Size:    16 [unused]
//   float4 g_avLightPos[4];            // Offset: 4272 Size:    64
//   float4 g_avLightColor[4];          // Offset: 4336 Size:    64
//   float4 g_avConeDir[4];             // Offset: 4400 Size:    64 [unused]
//   float4 g_vAmbientSettings;         // Offset: 4464 Size:    16 [unused]
//   float4x4 g_mViewProj;              // Offset: 4480 Size:    64 [unused]
//   float4 g_vCamPos;                  // Offset: 4544 Size:    16 [unused]
//   float4 g_vModColor;                // Offset: 4560 Size:    16 [unused]
//   float4 g_vModMask;                 // Offset: 4576 Size:    16 [unused]
//   
//   struct
//   {
//       
//       float4x4 mLightSpaceInverse;   // Offset: 4592
//       float4x4 mLightSpace;          // Offset: 4656
//       float4 vShadowBias;            // Offset: 4720
//       float4 vBiasDir;               // Offset: 4736
//       float4 vSmoothOffs;            // Offset: 4752
//       float4 vShadowsDesc;           // Offset: 4768
//       float4 avCPlane[8];            // Offset: 4784
//       float4 avCascadeZ[2];          // Offset: 4912
//       float4 avUVTransform[8];       // Offset: 4944
//       float4 avZTransformZF[8];      // Offset: 5072
//
//   } g_ShadSettings;                  // Offset: 4592 Size:   608
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// CloudsShadowsSampler              sampler      NA          NA    0        1
// NormalSampler                     sampler      NA          NA    1        1
// shadowSamplerF                  sampler_c      NA          NA    2        1
// NormalSampler                     texture  float4          2d    0        1
// CloudsShadowsSampler              texture  float4          2d    1        1
// g_tDepthTexture                   texture  float4     2darray    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   xyzw        2     NONE   float   xyzw
// TEXCOORD                 2   xyz         3     NONE   float       
// TEXCOORD                 3   xyz         4     NONE   float   xyz 
// TEXCOORD                 4   xyzw        5     NONE   float   xyzw
// TEXCOORD                 5   xyzw        6     NONE   float       
// TEXCOORD                 6   xyz         7     NONE   float   xyz 
// COLOR                    0   xyzw        8     NONE   float       
// COLOR                    1   xyzw        9     NONE   float       
// COLOR                    2   xyzw       10     NONE   float   xyzw
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_4_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[325], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_comparison
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2darray (float,float,float,float) t2
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyzw
dcl_input_ps linear v4.xyz
dcl_input_ps linear v5.xyzw
dcl_input_ps linear v7.xyz
dcl_input_ps linear v10.xyzw
dcl_output o0.xyzw
dcl_temps 6
lt r0.xyzw, cb0[307].xyzw, v5.wwww
and r0.xyzw, r0.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.xyzw
lt r1.xyzw, cb0[308].xyzw, v5.wwww
and r1.xyzw, r1.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r1.xyzw
add r0.z, r0.y, r0.x
ftou r0.w, r0.z
mad r1.xy, v5.xyxx, cb0[r0.w + 309].zwzz, cb0[r0.w + 309].xyxx
mad r1.z, v5.z, cb0[r0.w + 317].y, cb0[r0.w + 317].x
mul r1.w, v5.w, cb0[298].z
lt r2.xyzw, cb0[307].xyzw, r1.wwww
and r2.xyzw, r2.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r2.x, l(1.000000, 1.000000, 1.000000, 1.000000), r2.xyzw
lt r3.xyzw, cb0[308].xyzw, r1.wwww
and r3.xyzw, r3.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
dp4 r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.xyzw
add r2.z, r1.w, r2.x
lt r1.w, r0.z, r2.z
if_nz r1.w
  ftou r1.w, r2.z
  mad r3.xy, v5.xyxx, cb0[r1.w + 309].zwzz, cb0[r1.w + 309].xyxx
  mad r1.w, v5.z, cb0[r1.w + 317].y, cb0[r1.w + 317].x
  mad r2.w, -cb0[r0.w + 317].w, cb0[298].w, v5.w
  mad r0.w, -cb0[r0.w + 317].w, cb0[298].w, cb0[r0.w + 317].w
  div r0.w, r2.w, r0.w
else 
  mov r3.xy, r1.xyxx
  mov r1.w, r1.z
  mov r2.z, r0.z
  mov r0.w, l(0)
endif 
lt r2.w, l(0.000000), r0.w
mov r3.zw, l(0,0,0,-1)
loop 
  ilt r4.x, l(1), r3.w
  breakc_nz r4.x
  itof r4.y, r3.w
  mov r4.z, r3.z
  mov r4.w, l(-1)
  loop 
    ilt r5.x, l(1), r4.w
    breakc_nz r5.x
    itof r4.x, r4.w
    mul r5.xy, r4.xyxx, cb0[297].xxxx
    mad r0.xy, r5.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), r1.xyxx
    sample_c_lz r0.x, r0.xyzx, t2.xxxx, s2, r1.z
    if_nz r2.w
      mad r2.xy, r5.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), r3.xyxx
      sample_c_lz r0.y, r2.xyzx, t2.xxxx, s2, r1.w
      add r0.y, -r0.x, r0.y
      mad r0.x, r0.w, r0.y, r0.x
    endif 
    add r4.z, r0.x, r4.z
    iadd r4.w, r4.w, l(1)
  endloop 
  mov r3.z, r4.z
  iadd r3.w, r3.w, l(1)
endloop 
mul r0.x, r3.z, l(0.111111112)
mul r0.yz, v1.xxyx, l(0.000000, 5.000000, 5.000000, 0.000000)
sample r1.xyzw, r0.yzyy, t0.xyzw, s1
mad r2.xyz, r1.xzyx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
sample r0.y, v4.xyxx, t1.xyzw, s0
mul r0.z, v4.z, cb0[261].z
add r0.y, r0.y, l(-1.000000)
mad r0.y, r0.z, r0.y, l(1.000000)
mul r0.x, r0.y, r0.x
lt r0.y, r2.y, l(0.900000)
if_nz r0.y
  mul r2.w, r2.y, l(0.050000)
else 
  mov r2.w, r2.y
endif 
dp3 r0.y, r2.xzwx, r2.xzwx
rsq r0.y, r0.y
mad r0.yzw, r2.xxwz, r0.yyyy, l(0.000000, -0.000000, -1.000000, -0.000000)
mad r0.yzw, v10.wwww, r0.yyzw, l(0.000000, 0.000000, 1.000000, 0.000000)
ge r1.xy, cb0[271].xyxx, l(100.000000, 100.000000, 0.000000, 0.000000)
if_nz r1.x
  add r1.x, cb0[271].x, l(-100.000000)
else 
  mov r1.x, cb0[271].x
endif 
if_nz r1.y
  add r1.y, cb0[271].y, l(-100.000000)
else 
  mov r1.y, cb0[271].y
endif 
mul r2.xy, r1.xyxx, cb0[262].xyxx
mul r2.z, cb0[262].z, cb0[271].z
dp3 r1.x, v2.xyzx, v2.xyzx
rsq r1.x, r1.x
mul r1.xyz, r1.xxxx, v2.xyzx
dp3 r0.y, r0.yzwy, r1.xyzx
max r0.y, r0.y, l(0.000000)
log r0.y, r0.y
mul r0.y, r0.y, cb0[262].w
exp r0.y, r0.y
mul r0.y, r0.y, v2.w
mad r0.yzw, r0.yyyy, r2.xxyz, v10.xxyz
dp3 r1.x, v7.xyzx, v7.xyzx
rsq r1.x, r1.x
mul r1.xyz, r1.xxxx, v7.xyzx
dp3 r1.x, r1.xyzx, cb0[267].xyzx
add r1.y, -r1.w, l(1.000000)
mul r1.y, r1.y, cb0[262].w
mul r1.y, r1.y, l(0.200000)
max r1.xy, r1.xyxx, l(0.000000, 1.000000, 0.000000, 0.000000)
log r1.x, r1.x
mul r1.x, r1.x, r1.y
exp r1.x, r1.x
mul r1.x, r1.x, r1.w
mad r0.yzw, r1.xxxx, r2.xxyz, r0.yyzw
mul o0.xyz, r0.xxxx, r0.yzwy
mov o0.w, l(0)
ret 
// Approximately 117 instruction slots used
