//
// 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 g_vSkyColor;                // Offset:    0 Size:    16 [unused]
//   float4 g_vFogK;                    // Offset:   16 Size:    16 [unused]
//   float4 Ambient;                    // Offset:   32 Size:    16 [unused]
//   float4 LightColor;                 // Offset:   48 Size:    16 [unused]
//   float3 LightDir;                   // Offset:   64 Size:    12 [unused]
//   float4 ZNormalsCorrection;         // Offset:   80 Size:    16 [unused]
//   
//   struct
//   {
//       
//       float4 vDesc;                  // Offset:   96
//       float4 vFogLayerPlane;         // Offset:  112
//       float4 vFogLayerColor;         // Offset:  128
//       float4 vFogLayerSettings;      // Offset:  144
//       float4 vFogColor;              // Offset:  160
//       float4 vFogDistance;           // Offset:  176
//
//   } g_FogDesc;                       // Offset:   96 Size:    96
//   float4x4 ViewProj;                 // Offset:  192 Size:    64
//   float4x4 IView;                    // Offset:  256 Size:    64 [unused]
//   float3 CloudPos;                   // Offset:  320 Size:    12 [unused]
//   float3 CamPos;                     // Offset:  336 Size:    12
//   float4 Orientation[2];             // Offset:  352 Size:    32 [unused]
//      = 0x00000000 0x3f800000 0x00000000 0x00000000 
//        0x3f800000 0x00000000 0x00000000 0x3f800000 
//   float4 ImposterData[96];           // Offset:  384 Size:  1536
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// $Globals                          cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// POSITION                 0   xyzw        0     NONE   float   xyzw
// TEXCOORD                 0   xy          1     NONE   float   xy  
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xyzw
// COLOR                    0   xyzw        1     NONE   float   xyzw
// TEXCOORD                 0   xy          2     NONE   float   xy  
// TEXCOORD                 1   xyzw        3     NONE   float   xyzw
//
vs_4_0
dcl_constantbuffer cb0[120], dynamicIndexed
dcl_input v0.xyzw
dcl_input v1.xy
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xy
dcl_output o3.xyzw
dcl_temps 3
ftou r0.x, v0.w
add r0.yz, v0.wwww, l(0.000000, 1.000000, 2.000000, 0.000000)
ftou r0.yz, r0.yyzy
mul r1.xyz, l(0.000000, 1.000000, 0.000000, 0.000000), cb0[r0.z + 24].yzxy
mad r1.xyz, cb0[r0.z + 24].xyzx, l(1.000000, 0.000000, 0.000000, 0.000000), -r1.xyzx
dp2 r0.w, r1.xyxx, r1.xyxx
rsq r0.w, r0.w
mul r1.xyz, r0.wwww, r1.xyzx
mul r2.xyz, r1.xyzx, cb0[r0.z + 24].yzxy
mad r2.xyz, r1.zxyz, cb0[r0.z + 24].zxyz, -r2.xyzx
mul r1.zw, r2.xxxz, v0.yyyy
mad r1.xy, v0.xxxx, r1.yxyy, r1.zwzz
mul r0.w, v0.z, cb0[r0.z + 24].y
mad r2.y, v0.y, r2.y, r0.w
mad r2.xz, v0.zzzz, cb0[r0.z + 24].xxzx, r1.xxyx
mad r1.xyz, r2.xyzx, cb0[r0.x + 24].wwww, cb0[r0.x + 24].xyzx
mov r1.w, l(1.000000)
dp4 r2.x, r1.xyzw, cb0[12].xyzw
dp4 r2.y, r1.xyzw, cb0[13].xyzw
dp4 r2.z, r1.xyzw, cb0[14].xyzw
dp4 r2.w, r1.xyzw, cb0[15].xyzw
mad o2.xy, cb0[r0.y + 24].zwzz, v1.xyxx, cb0[r0.y + 24].xyxx
add r0.xyz, -cb0[21].xyzx, cb0[r0.x + 24].xyzx
dp3 r0.x, r0.xyzx, r0.xyzx
sqrt r0.x, r0.x
mul r0.x, r0.x, cb0[11].x
min r0.x, r0.x, l(1.000000)
dp3 r0.y, cb0[10].xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
lt r0.z, r0.x, cb0[6].x
if_nz r0.z
  mul r0.z, r0.x, cb0[6].y
  div r0.z, r0.z, cb0[6].x
else 
  add r1.xy, -cb0[6].yxyy, l(1.000000, 1.000000, 0.000000, 0.000000)
  add r0.w, r0.x, -cb0[6].x
  mul r0.w, r0.w, r1.x
  div r0.w, r0.w, r1.y
  add r0.z, r0.w, cb0[6].y
endif 
mul r1.xyz, r0.zzzz, cb0[10].xyzx
log r1.xyz, r1.xyzx
mul r1.xyz, r1.xyzx, cb0[10].wwww
exp r1.xyz, r1.xyzx
mul r1.xyz, r1.xyzx, l(-1.442695, -1.442695, -1.442695, 0.000000)
exp r1.xyz, r1.xyzx
add r1.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
lt r0.yz, l(0.000000, 0.001000, 0.800000, 0.000000), r0.yyxy
and r0.y, r0.y, r0.z
if_nz r0.y
  add r0.x, r0.x, l(-0.800000)
  mul r0.x, r0.x, l(5.000000)
  add r0.yzw, -r1.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000)
  mad r1.xyz, r0.xxxx, r0.yzwy, r1.xyzx
endif 
add r0.x, cb0[11].w, l(-0.250000)
add r0.x, r0.x, r0.x
dp3 r0.y, r1.xyzx, l(0.333300, 0.333300, 0.333300, 0.000000)
add r0.yzw, -r1.xxyz, r0.yyyy
mad o1.xyz, r0.xxxx, r0.yzwy, r1.xyzx
add r0.x, r2.w, r2.x
mul o3.x, r0.x, l(0.500000)
add r0.x, -r2.y, r2.w
mul o3.y, r0.x, l(0.500000)
mov o0.xyzw, r2.xyzw
mov o1.w, l(0)
mov o3.zw, r2.zzzw
ret 
// Approximately 67 instruction slots used
