//
// 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 specColor;                  // Offset:    0 Size:    16 [unused]
//   float4 ControlData;                // Offset:   16 Size:    16 [unused]
//   float4 difColor;                   // Offset:   32 Size:    16 [unused]
//   float4 ambient;                    // Offset:   48 Size:    16 [unused]
//   float4 lightCount;                 // Offset:   64 Size:    16
//   float4 g_avLightPos[4];            // Offset:   80 Size:    64
//   float4 g_avLightColor[4];          // Offset:  144 Size:    64
//   float4 g_avConeDir[4];             // Offset:  208 Size:    64
//   float4 g_vAmbientSettings;         // Offset:  272 Size:    16 [unused]
//   float4x4 ViewProj;                 // Offset:  288 Size:    64
//   float4x4 IView;                    // Offset:  352 Size:    64 [unused]
//   float4x4 WM;                       // Offset:  416 Size:    64
//   float4x4 View;                     // Offset:  480 Size:    64 [unused]
//   float4 PData[150];                 // Offset:  544 Size:  2400
//   float4 g_vCamPos;                  // Offset: 2944 Size:    16
//   float4 Direction;                  // Offset: 2960 Size:    16
//
// }
//
//
// 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
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xyzw
// TEXCOORD                 0   xy          1     NONE   float   xy  
// COLOR                    0   xyzw        2     NONE   float   xyzw
//
vs_4_0
dcl_constantbuffer cb0[186], dynamicIndexed
dcl_input v0.xyzw
dcl_output_siv o0.xyzw, position
dcl_output o1.xy
dcl_output o2.xyzw
dcl_temps 7
add r0.x, v0.w, l(1.000000)
ftou r0.x, r0.x
ftou r0.y, v0.w
mov r1.xyz, cb0[r0.y + 34].xyzx
mov r1.w, l(1.000000)
dp4 r2.x, r1.xyzw, cb0[26].xyzw
dp4 r2.y, r1.xyzw, cb0[27].xyzw
dp4 r2.z, r1.xyzw, cb0[28].xyzw
mul r0.yzw, v0.xxyz, cb0[r0.y + 34].wwww
mul r1.x, r0.z, cb0[r0.x + 34].x
mad r1.x, r0.y, cb0[r0.x + 34].y, -r1.x
dp2 r0.y, r0.yzyy, cb0[r0.x + 34].xyxx
add r1.yzw, r2.zzxy, -cb0[184].zzxy
dp3 r0.z, cb0[185].xyzx, cb0[185].xyzx
rsq r0.z, r0.z
mul r3.xyz, r0.zzzz, cb0[185].xyzx
mul r4.xyz, r1.yzwy, r3.yzxy
mad r1.yzw, r1.wwyz, r3.zzxy, -r4.xxyz
dp3 r0.z, r1.yzwy, r1.yzwy
rsq r0.z, r0.z
mul r1.yzw, r0.zzzz, r1.yyzw
mul r4.xyz, r3.yzxy, r1.wyzw
mad r4.xyz, r1.zwyz, r3.zxyz, -r4.xyzx
mul r3.xyz, r0.yyyy, r3.xyzx
mad r1.xyz, r1.yzwy, r1.xxxx, r3.xyzx
mad r0.yzw, r4.xxyz, r0.wwww, r1.xxyz
add r1.xyz, r2.xyzx, r0.yzwy
mov r1.w, l(1.000000)
dp4 o0.x, r1.xyzw, cb0[18].xyzw
dp4 o0.y, r1.xyzw, cb0[19].xyzw
dp4 o0.z, r1.xyzw, cb0[20].xyzw
dp4 o0.w, r1.xyzw, cb0[21].xyzw
mov_sat o1.x, v0.x
mov_sat r0.y, v0.y
add o1.y, -r0.y, l(1.000000)
ftoi r0.y, cb0[4].x
mov r2.xyz, l(0,0,0,0)
mov r3.xyz, l(0,0,0,0)
mov r0.z, l(0)
loop 
  ige r0.w, r0.z, r0.y
  breakc_nz r0.w
  ge r5.xy, cb0[r0.z + 9].xyxx, l(100.000000, 100.000000, 0.000000, 0.000000)
  if_nz r5.x
    add r0.w, l(-100.000000), cb0[r0.z + 9].x
  else 
    mov r0.w, cb0[r0.z + 9].x
  endif 
  if_nz r5.y
    add r1.w, l(-100.000000), cb0[r0.z + 9].y
  else 
    mov r1.w, cb0[r0.z + 9].y
  endif 
  lt r2.w, l(1.000000), cb0[r0.z + 5].w
  if_nz r2.w
    add r5.xyz, -r1.xyzx, cb0[r0.z + 5].xyzx
    dp3 r2.w, r5.xyzx, r5.xyzx
    sqrt r3.w, r2.w
    div r5.xyz, r5.xyzx, r3.wwww
    mad r2.w, r2.w, cb0[r0.z + 9].w, l(1.000000)
    div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
    add r2.w, r2.w, l(-0.100000)
    mul_sat r2.w, r2.w, l(1.11111116)
    lt r3.w, l(2.000000), cb0[r0.z + 5].w
    if_nz r3.w
      add r3.w, l(-3.000000), cb0[r0.z + 5].w
      dp3 r4.w, r5.xyzx, cb0[r0.z + 13].xyzx
      add r5.w, -|r4.w|, l(1.000000)
      sqrt r5.w, r5.w
      mad r6.x, |r4.w|, l(-0.0187292993), l(0.074261)
      mad r6.x, r6.x, |r4.w|, l(-0.212114394)
      mad r6.x, r6.x, |r4.w|, l(1.57072878)
      mul r6.y, r5.w, r6.x
      mad r6.y, r6.y, l(-2.000000), l(3.14159274)
      lt r4.w, r4.w, -r4.w
      and r4.w, r4.w, r6.y
      mad r4.w, r6.x, r5.w, r4.w
      lt r5.w, r4.w, r3.w
      if_nz r5.w
        frc r5.w, cb0[r0.z + 13].w
        div r3.w, r4.w, r3.w
        add r3.w, -r5.w, r3.w
        add r4.w, -r5.w, l(1.000000)
        div_sat r3.w, r3.w, r4.w
        add r3.w, -r3.w, l(1.000000)
      else 
        mov r3.w, l(0)
      endif 
      mul r2.w, r2.w, r3.w
    endif 
  else 
    mov r5.xyz, -cb0[r0.z + 5].xyzx
    mov r2.w, l(1.000000)
  endif 
  dp3 r3.w, r5.xyzx, r4.xyzx
  max r3.w, r3.w, l(0.000000)
  add r3.w, -r3.w, l(1.000000)
  mad r3.w, -r3.w, l(0.300000), l(1.000000)
  mul r5.x, r0.w, r3.w
  mul r5.y, r1.w, r3.w
  mul r5.z, r3.w, cb0[r0.z + 9].z
  mul r6.xyz, r2.wwww, r5.xyzx
  if_z r0.z
    mov r2.xyz, r6.xyzx
  else 
    mad r3.xyz, r5.xyzx, r2.wwww, r3.xyzx
  endif 
  iadd r0.z, r0.z, l(1)
endloop 
add r0.yzw, r2.xxyz, r3.xxyz
mul o2.xyz, r0.yzwy, l(0.500000, 0.500000, 0.500000, 0.000000)
mov o2.w, cb0[r0.x + 34].z
ret 
// Approximately 113 instruction slots used
