//
// 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 g_vDefLightDir;             // Offset:   64 Size:    16 [unused]
//   float4 g_vDefLightColor;           // Offset:   80 Size:    16 [unused]
//   float4 g_vDefSpecColor;            // Offset:   96 Size:    16 [unused]
//   uint CS_FRONT;                     // Offset:  112 Size:     4 [unused]
//      = 0x00000000 
//   uint CS_RIGHT;                     // Offset:  116 Size:     4 [unused]
//      = 0x00000001 
//   uint CS_BACK;                      // Offset:  120 Size:     4 [unused]
//      = 0x00000002 
//   uint CS_LEFT;                      // Offset:  124 Size:     4 [unused]
//      = 0x00000003 
//   uint CS_TOP;                       // Offset:  128 Size:     4 [unused]
//      = 0x00000004 
//   uint CS_BOTTOM;                    // Offset:  132 Size:     4 [unused]
//      = 0x00000005 
//   float4 g_vAmbientSettings;         // Offset:  144 Size:    16 [unused]
//   float4 g_avLightSrc[64];           // Offset:  160 Size:  1024 [unused]
//   float4 g_vSettings;                // Offset: 1184 Size:    16
//   float4 g_vSettings2;               // Offset: 1200 Size:    16
//   float4 g_vLightPos;                // Offset: 1216 Size:    16
//   float4 g_vLightColor;              // Offset: 1232 Size:    16 [unused]
//   float4 g_vLightConeDir;            // Offset: 1248 Size:    16 [unused]
//   float4 g_vLightDesc;               // Offset: 1264 Size:    16
//   float4x4 g_mView;                  // Offset: 1280 Size:    64
//   float4 g_vCamSettings;             // Offset: 1344 Size:    16
//   float DEPTH_SCALE;                 // Offset: 1360 Size:     4 [unused]
//      = 0x4727c5ac 
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// $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  
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_4_0
dcl_constantbuffer cb0[85], immediateIndexed
dcl_input_ps linear v1.xy
dcl_output o0.xyzw
dcl_temps 9
mov r0.xyz, cb0[76].xyzx
mov r0.w, l(1.000000)
dp4 r1.w, r0.xyzw, cb0[82].xyzw
add r2.x, r1.w, cb0[79].y
lt r2.w, r2.x, l(0.100000)
add r1.x, r1.w, -cb0[79].y
lt r3.x, l(15000.000000), r1.x
or r2.w, r2.w, r3.x
if_nz r2.w
  mov r3.xyzw, l(0,0,0,0)
endif 
if_z r2.w
  mul r4.xy, v1.xyxx, cb0[74].xyxx
  round_z r4.xy, r4.xyxx
  dp2 r2.w, r4.xxxx, cb0[74].zzzz
  add r2.w, r2.w, l(-1.000000)
  add r5.w, r2.w, -cb0[75].x
  dp2 r2.w, r4.yyyy, cb0[74].wwww
  add r2.w, -r2.w, cb0[84].x
  add r2.w, r2.w, -cb0[75].y
  mad r4.x, cb0[74].z, l(2.000000), r5.w
  mad r5.x, -cb0[74].w, l(2.000000), r2.w
  dp4 r1.y, r0.xyzw, cb0[80].xyzw
  dp4 r1.z, r0.xyzw, cb0[81].xyzw
  mov r0.x, -r2.w
  mov r0.z, cb0[84].y
  dp2 r0.w, r0.xzxx, r0.xzxx
  rsq r0.w, r0.w
  mov r0.y, l(0)
  mul r0.xyz, r0.wwww, r0.xyzx
  mov r5.y, -cb0[84].y
  dp2 r0.w, r5.xyxx, r5.xyxx
  rsq r0.w, r0.w
  mov r5.z, l(0)
  mul r6.xyz, r0.wwww, r5.zyxz
  mov r5.x, -cb0[84].y
  dp2 r0.w, r5.xwxx, r5.xwxx
  rsq r0.w, r0.w
  mul r5.xyz, r0.wwww, r5.yzwy
  mov r4.y, -r4.x
  mov r4.x, cb0[84].y
  dp2 r0.w, r4.xyxx, r4.xyxx
  rsq r0.w, r0.w
  mul r4.yz, r0.wwww, r4.yyxy
  dp2 r0.w, r1.wzww, r0.xzxx
  dp2 r2.w, r1.zwzz, r6.yzyy
  dp2 r4.w, r1.ywyy, r5.xzxx
  dp2 r7.x, r1.wyww, r4.yzyy
  max r7.y, r0.w, r2.w
  max r7.z, r4.w, r7.x
  lt r7.yz, cb0[79].yyyy, r7.yyzy
  or r7.y, r7.z, r7.y
  if_nz r7.y
    mov r3.xyzw, l(0,0,0,0)
  endif 
  if_z r7.y
    mov r4.x, l(0)
    dp2 r7.y, r1.xzxx, r0.xzxx
    dp2 r7.z, r1.zxzz, r6.yzyy
    max r7.y, r7.z, r7.y
    dp2 r7.z, r1.yxyy, r5.xzxx
    dp2 r7.w, r1.xyxx, r4.yzyy
    max r7.z, r7.w, r7.z
    lt r7.yz, r7.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000)
    and r7.y, r7.z, r7.y
    if_z r7.y
      mov r1.x, l(65000.000000)
    endif 
    mov r2.yz, r1.zzyz
    dp2 r7.y, r2.xyxx, r0.xzxx
    dp2 r2.y, r2.yxyy, r6.yzyy
    max r2.y, r2.y, r7.y
    dp2 r7.y, r2.zxzz, r5.xzxx
    dp2 r2.z, r2.xzxx, r4.yzyy
    max r2.z, r2.z, r7.y
    lt r2.yz, r2.yyzy, l(0.000000, 0.000000, 0.000000, 0.000000)
    and r2.y, r2.z, r2.y
    if_z r2.y
      mov r2.x, l(0)
    endif 
    eq r2.y, r1.x, l(65000.000000)
    if_nz r2.y
      lt r2.y, cb0[79].y, |r0.w|
      if_nz r2.y
        mov r7.y, l(65000.000000)
      endif 
      if_z r2.y
        mov r8.y, -r0.z
        mul r2.y, r0.w, r0.w
        mad r2.y, cb0[79].y, cb0[79].y, -r2.y
        sqrt r2.y, r2.y
        mov r8.x, l(0)
        mul r8.zw, r0.wwww, r0.yyyx
        mad r2.yz, r8.xxyx, r2.yyyy, -r8.zzwz
        add r7.yz, r1.wwyw, r2.zzyz
        dp2 r2.y, r7.zyzz, r5.xzxx
        dp2 r2.z, r7.yzyy, r4.yzyy
        max r2.y, r2.z, r2.y
        ge r2.y, r2.y, l(0.000000)
        if_nz r2.y
          mov r7.y, l(65000.000000)
        endif 
      endif 
      lt r2.y, cb0[79].y, |r2.w|
      if_nz r2.y
        mov r7.z, l(65000.000000)
      endif 
      if_z r2.y
        mul r2.y, r2.w, r2.w
        mad r2.y, cb0[79].y, cb0[79].y, -r2.y
        sqrt r2.y, r2.y
        mov r6.w, l(0)
        mul r8.xy, r2.wwww, r6.xzxx
        mad r2.yz, r6.wwyw, r2.yyyy, -r8.xxyx
        add r7.zw, r1.wwwy, r2.zzzy
        dp2 r2.y, r7.wzww, r5.xzxx
        dp2 r2.z, r7.zwzz, r4.yzyy
        max r2.y, r2.z, r2.y
        ge r2.y, r2.y, l(0.000000)
        if_nz r2.y
          mov r7.z, l(65000.000000)
        endif 
      endif 
      min r1.x, r7.z, r7.y
    endif 
    eq r2.y, r1.x, l(65000.000000)
    if_nz r2.y
      lt r2.y, cb0[79].y, |r4.w|
      if_nz r2.y
        mov r7.y, l(65000.000000)
      endif 
      if_z r2.y
        mul r2.y, r4.w, r4.w
        mad r2.y, cb0[79].y, cb0[79].y, -r2.y
        sqrt r2.y, r2.y
        mov r5.w, l(0)
        mul r8.xy, r4.wwww, r5.yzyy
        mad r2.yz, r5.wwxw, r2.yyyy, -r8.xxyx
        add r7.yz, r1.wwzw, r2.zzyz
        dp2 r2.y, r7.yzyy, r0.xzxx
        dp2 r2.z, r7.zyzz, r6.yzyy
        max r2.y, r2.z, r2.y
        ge r2.y, r2.y, l(0.000000)
        if_nz r2.y
          mov r7.y, l(65000.000000)
        endif 
      endif 
      lt r2.y, cb0[79].y, |r7.x|
      if_nz r2.y
        mov r7.z, l(65000.000000)
      endif 
      if_z r2.y
        mov r8.y, -r4.z
        mul r2.y, r7.x, r7.x
        mad r2.y, cb0[79].y, cb0[79].y, -r2.y
        sqrt r2.y, r2.y
        mov r8.x, l(0)
        mul r8.zw, r4.xxxy, r7.xxxx
        mad r2.yz, r8.xxyx, r2.yyyy, -r8.zzwz
        add r7.zw, r1.wwwz, r2.zzzy
        dp2 r2.y, r7.zwzz, r0.xzxx
        dp2 r2.z, r7.wzww, r6.yzyy
        max r2.y, r2.z, r2.y
        ge r2.y, r2.y, l(0.000000)
        if_nz r2.y
          mov r7.z, l(65000.000000)
        endif 
      endif 
      min r1.x, r7.z, r7.y
    endif 
    eq r2.y, r2.x, l(0.000000)
    if_nz r2.y
      lt r2.y, cb0[79].y, |r0.w|
      if_nz r2.y
        mov r7.y, l(0)
      endif 
      if_z r2.y
        mov r8.y, -r0.z
        mov r8.x, l(0)
        mul r2.y, r0.w, r0.w
        mad r2.y, cb0[79].y, cb0[79].y, -r2.y
        sqrt r2.y, r2.y
        mul r8.zw, r0.wwww, r0.yyyx
        mad r2.yz, -r8.xxyx, r2.yyyy, -r8.zzwz
        add r7.yz, r1.wwyw, r2.zzyz
        dp2 r0.w, r7.zyzz, r5.xzxx
        dp2 r2.y, r7.yzyy, r4.yzyy
        max r0.w, r0.w, r2.y
        ge r0.w, r0.w, l(0.000000)
        if_nz r0.w
          mov r7.y, l(0)
        endif 
      endif 
      lt r0.w, cb0[79].y, |r2.w|
      if_nz r0.w
        mov r2.y, l(0)
      endif 
      if_z r0.w
        mov r8.x, l(0)
        mov r8.y, r6.y
        mul r0.w, r2.w, r2.w
        mad r0.w, cb0[79].y, cb0[79].y, -r0.w
        sqrt r0.w, r0.w
        mul r7.zw, r2.wwww, r6.xxxz
        mad r7.zw, -r8.xxxy, r0.wwww, -r7.zzzw
        add r2.yz, r1.wwyw, r7.wwzw
        dp2 r0.w, r2.zyzz, r5.xzxx
        dp2 r2.z, r2.yzyy, r4.yzyy
        max r0.w, r0.w, r2.z
        ge r0.w, r0.w, l(0.000000)
        if_nz r0.w
          mov r2.y, l(0)
        endif 
      endif 
      max r2.x, r2.y, r7.y
    endif 
    eq r0.w, r2.x, l(0.000000)
    if_nz r0.w
      lt r0.w, cb0[79].y, |r4.w|
      if_nz r0.w
        mov r2.y, l(0)
      endif 
      if_z r0.w
        mov r8.x, l(0)
        mov r8.y, r5.x
        mul r0.w, r4.w, r4.w
        mad r0.w, cb0[79].y, cb0[79].y, -r0.w
        sqrt r0.w, r0.w
        mul r7.yz, r4.wwww, r5.yyzy
        mad r7.yz, -r8.xxyx, r0.wwww, -r7.yyzy
        add r2.yz, r1.wwzw, r7.zzyz
        dp2 r0.w, r2.yzyy, r0.xzxx
        dp2 r2.z, r2.zyzz, r6.yzyy
        max r0.w, r0.w, r2.z
        ge r0.w, r0.w, l(0.000000)
        if_nz r0.w
          mov r2.y, l(0)
        endif 
      endif 
      lt r0.w, cb0[79].y, |r7.x|
      if_nz r0.w
        mov r2.z, l(0)
      endif 
      if_z r0.w
        mov r8.y, -r4.z
        mov r8.x, l(0)
        mul r0.w, r7.x, r7.x
        mad r0.w, cb0[79].y, cb0[79].y, -r0.w
        sqrt r0.w, r0.w
        mul r7.xy, r4.xyxx, r7.xxxx
        mad r7.xy, -r8.xyxx, r0.wwww, -r7.xyxx
        add r2.zw, r1.wwwz, r7.yyyx
        dp2 r0.w, r2.zwzz, r0.xzxx
        dp2 r2.w, r2.wzww, r6.yzyy
        max r0.w, r0.w, r2.w
        ge r0.w, r0.w, l(0.000000)
        if_nz r0.w
          mov r2.z, l(0)
        endif 
      endif 
      max r2.x, r2.z, r2.y
    endif 
    mul r0.w, cb0[79].y, cb0[79].y
    mul r2.yzw, r0.zzxy, r4.yyzx
    mad r2.yzw, r4.xxyz, r0.xxyz, -r2.yyzw
    mul r7.xyz, r4.xyzx, r6.zxyz
    mad r4.xyz, r6.yzxy, r4.yzxy, -r7.xyzx
    mul r7.xyz, r6.yzxy, r5.zxyz
    mad r6.xyz, r5.yzxy, r6.zxyz, -r7.xyzx
    mul r7.xyz, r0.xyzx, r5.yzxy
    mad r0.xyz, r0.zxyz, r5.zxyz, -r7.xyzx
    dp3 r4.w, r1.yzwy, r1.yzwy
    mov r5.x, r1.x
    mov r5.y, r2.x
    mov r5.z, l(0)
    loop 
      ige r5.w, r5.z, l(4)
      breakc_nz r5.w
      switch r5.z
        case l(0)
        mov r7.xyz, r2.yzwy
        break 
        case l(1)
        mov r7.xyz, r4.xyzx
        break 
        case l(2)
        mov r7.xyz, r6.xyzx
        break 
        case l(3)
        mov r7.xyz, r0.xyzx
        break 
        default 
        break 
      endswitch 
      dp3 r5.w, r7.xyzx, r7.xyzx
      rsq r5.w, r5.w
      mul r7.xyz, r5.wwww, r7.xyzx
      dp3 r5.w, r7.xyzx, r1.yzwy
      mad r6.w, -r5.w, r5.w, r4.w
      lt r7.x, r6.w, r0.w
      if_nz r7.x
        mad r6.w, cb0[79].y, cb0[79].y, -r6.w
        sqrt r6.w, r6.w
        mul r6.w, r7.z, r6.w
        mad r7.x, r5.w, r7.z, -r6.w
        mad r5.w, r5.w, r7.z, r6.w
      else 
        mov r7.x, l(65000.000000)
        mov r5.w, l(0)
      endif 
      min r5.x, r5.x, r7.x
      max r5.y, r5.w, r5.y
      iadd r5.z, r5.z, l(1)
    endloop 
    max r0.x, r5.x, l(0.100000)
    min r0.y, r5.y, l(15000.000000)
    lt r0.z, r0.y, r0.x
    if_nz r0.z
      mov o0.xyzw, l(0,0,0,0)
    else 
      mov o0.xyzw, r3.xyzw
    endif 
    if_z r0.z
      mov o0.zw, l(0,0,0,0)
      mov o0.xy, r0.xyxx
    endif 
  else 
    mov o0.xyzw, r3.xyzw
  endif 
else 
  mov o0.xyzw, r3.xyzw
endif 
ret 
// Approximately 333 instruction slots used
