//
// 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
//   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 17
mov r0.xyz, cb0[76].xyzx
mov r0.w, l(1.000000)
dp4 r1.z, r0.xyzw, cb0[82].xyzw
add r1.w, r1.z, cb0[79].y
lt r1.w, r1.w, l(0.100000)
add r2.x, r1.z, -cb0[79].y
lt r2.x, l(15000.000000), r2.x
or r1.w, r1.w, r2.x
if_nz r1.w
  mov r2.xyzw, l(0,0,0,0)
endif 
if_z r1.w
  mul r3.xy, v1.xyxx, cb0[74].xyxx
  round_z r3.xy, r3.xyxx
  dp2 r1.w, r3.xxxx, cb0[74].zzzz
  add r1.w, r1.w, l(-1.000000)
  add r1.w, r1.w, -cb0[75].x
  dp2 r3.x, r3.yyyy, cb0[74].wwww
  add r3.x, -r3.x, cb0[84].x
  add r3.y, r3.x, -cb0[75].y
  mad r4.y, cb0[74].z, l(2.000000), r1.w
  mad r4.z, -cb0[74].z, l(2.000000), r3.y
  dp4 r1.x, r0.xyzw, cb0[80].xyzw
  dp4 r1.y, r0.xyzw, cb0[81].xyzw
  mov r3.xw, -cb0[84].yyyy
  dp2 r0.x, r3.ywyy, r3.ywyy
  rsq r0.x, r0.x
  mov r3.z, l(0)
  mul r0.xyz, r0.xxxx, r3.yzwy
  mov r5.y, -r4.z
  mov r5.x, cb0[84].y
  dp2 r0.w, r5.xyxx, r5.xyxx
  rsq r0.w, r0.w
  mov r5.z, l(0)
  mul r3.yzw, r0.wwww, r5.xxyz
  mov r5.y, -r1.w
  mov r5.x, cb0[84].y
  dp2 r0.w, r5.xyxx, r5.xyxx
  rsq r0.w, r0.w
  mul r5.yz, r0.wwww, r5.yyxy
  mov r4.x, -cb0[84].y
  dp2 r0.w, r4.xyxx, r4.xyxx
  rsq r0.w, r0.w
  mul r6.z, r0.w, r3.x
  mul r6.y, r0.w, r4.y
  dp2 r0.w, r1.zyzz, r0.xzxx
  dp2 r1.w, r1.yzyy, r3.yzyy
  dp2 r3.x, r1.zxzz, r5.yzyy
  dp2 r4.x, r1.zxzz, r6.yzyy
  min r1.w, r0.w, r1.w
  lt r1.w, r1.w, -cb0[79].y
  min r3.x, r3.x, r4.x
  lt r3.x, r3.x, -cb0[79].y
  or r1.w, r1.w, r3.x
  if_nz r1.w
    mov r2.xyzw, l(0,0,0,0)
  endif 
  if_z r1.w
    mov r5.x, l(0)
    mov r6.x, l(0)
    dp3 r4.x, -cb0[78].xyzx, cb0[80].xyzx
    dp3 r4.y, -cb0[78].xyzx, cb0[81].xyzx
    dp3 r4.z, -cb0[78].xyzx, cb0[82].xyzx
    lt r1.w, |r4.y|, l(0.950000)
    if_nz r1.w
      mul r7.xyz, r4.zxyz, l(1.000000, 0.000000, 0.000000, 0.000000)
      mad r7.xyz, r4.yzxy, l(0.000000, 0.000000, 1.000000, 0.000000), -r7.xyzx
      dp2 r1.w, r7.xzxx, r7.xzxx
      rsq r1.w, r1.w
      mul r7.xyz, r1.wwww, r7.xyzx
    else 
      mul r8.xyz, r4.zxyz, l(0.000000, -1.000000, 0.000000, 0.000000)
      mad r8.xyz, r4.yzxy, l(-1.000000, 0.000000, 0.000000, 0.000000), -r8.xyzx
      dp2 r1.w, r8.xyxx, r8.xyxx
      rsq r1.w, r1.w
      mul r7.xyz, r1.wwww, r8.xyzx
    endif 
    mul r8.xyz, r4.yzxy, r7.zxyz
    mad r8.xyz, r7.yzxy, r4.zxyz, -r8.xyzx
    sincos r3.x, r9.x, cb0[79].z
    div r1.w, r3.x, r9.x
    mul r1.w, r1.w, cb0[79].y
    mul r1.w, r1.w, l(1.15470052)
    ge r4.w, r0.w, l(0.000000)
    lt r5.w, r0.w, l(0.000000)
    mov r10.z, cb0[79].y
    mov r11.x, r7.x
    mov r11.y, r8.x
    mov r11.z, r4.x
    mov r12.x, r7.y
    mov r12.y, r8.y
    mov r12.z, r4.y
    mov r13.x, r7.z
    mov r13.y, r8.z
    mov r13.z, r4.z
    mov r6.w, l(65000.000000)
    mov r9.yzw, l(0,0,0,0)
    mov r7.xw, l(0,0,0,-0.523598790)
    mov r8.y, l(0)
    loop 
      ige r8.w, r8.y, l(6)
      breakc_nz r8.w
      sincos r14.x, r15.x, r7.w
      mul r10.x, r1.w, r14.x
      mul r10.y, r1.w, r15.x
      dp3 r14.x, r10.xyzx, r11.xyzx
      dp3 r14.y, r10.xyzx, r12.xyzx
      dp3 r14.z, r10.xyzx, r13.xyzx
      add r9.yzw, r1.xxyz, r14.xxyz
      dp3 r8.w, r9.yzwy, r9.yzwy
      lt r8.w, l(0.001000), r8.w
      if_nz r8.w
        dp2 r8.w, r9.wzww, r0.xzxx
        ge r10.x, r8.w, l(0.000000)
        and r10.x, r4.w, r10.x
        if_nz r10.x
          mov r10.xyw, r1.zxzy
        else 
          lt r8.w, r8.w, l(0.000000)
          and r8.w, r5.w, r8.w
          if_nz r8.w
            mov r10.xyw, l(0,0,0,0)
            mov r9.yzw, l(0,0,0,0)
          else 
            dp2 r8.w, r14.zyzz, r0.xzxx
            div r8.w, -r0.w, r8.w
            mad r14.xyz, r14.xyzx, r8.wwww, r1.xyzx
            if_nz r4.w
              mov r10.xyw, r1.zxzy
              mov r9.yzw, r14.xxyz
            else 
              mov r10.xyw, r14.zxzy
            endif 
          endif 
        endif 
      else 
        mov r10.xyw, r1.zxzy
      endif 
      dp3 r8.w, r9.yzwy, r9.yzwy
      lt r8.w, l(0.001000), r8.w
      if_nz r8.w
        dp2 r8.w, r10.wxww, r3.yzyy
        dp2 r11.w, r9.zwzz, r3.yzyy
        ge r12.w, r8.w, l(0.000000)
        ge r13.w, r11.w, l(0.000000)
        and r13.w, r12.w, r13.w
        if_z r13.w
          lt r13.w, r8.w, l(0.000000)
          lt r11.w, r11.w, l(0.000000)
          and r11.w, r11.w, r13.w
          if_nz r11.w
            mov r10.xyw, l(0,0,0,0)
            mov r9.yzw, l(0,0,0,0)
          else 
            add r14.xyz, -r10.ywxy, r9.yzwy
            dp2 r11.w, r14.yzyy, r3.yzyy
            div r8.w, -r8.w, r11.w
            mad r14.xyz, r14.xyzx, r8.wwww, r10.ywxy
            if_nz r12.w
              mov r9.yzw, r14.xxyz
            else 
              mov r10.xyw, r14.zxzy
            endif 
          endif 
        endif 
      endif 
      dp3 r8.w, r9.yzwy, r9.yzwy
      lt r8.w, l(0.001000), r8.w
      if_nz r8.w
        dp2 r8.w, r10.xyxx, r5.yzyy
        dp2 r11.w, r9.wyww, r5.yzyy
        ge r12.w, r8.w, l(0.000000)
        ge r13.w, r11.w, l(0.000000)
        and r13.w, r12.w, r13.w
        if_z r13.w
          lt r13.w, r8.w, l(0.000000)
          lt r11.w, r11.w, l(0.000000)
          and r11.w, r11.w, r13.w
          if_nz r11.w
            mov r10.xyw, l(0,0,0,0)
            mov r9.yzw, l(0,0,0,0)
          else 
            add r14.xyz, -r10.ywxy, r9.yzwy
            dp2 r11.w, r14.zxzz, r5.yzyy
            div r8.w, -r8.w, r11.w
            mad r14.xyz, r14.xyzx, r8.wwww, r10.ywxy
            if_nz r12.w
              mov r9.yzw, r14.xxyz
            else 
              mov r10.xyw, r14.zxzy
            endif 
          endif 
        endif 
      endif 
      dp3 r8.w, r9.yzwy, r9.yzwy
      lt r8.w, l(0.001000), r8.w
      if_nz r8.w
        dp2 r8.w, r10.xyxx, r6.yzyy
        dp2 r11.w, r9.wyww, r6.yzyy
        ge r12.w, r8.w, l(0.000000)
        ge r13.w, r11.w, l(0.000000)
        and r13.w, r12.w, r13.w
        if_z r13.w
          lt r13.w, r8.w, l(0.000000)
          lt r11.w, r11.w, l(0.000000)
          and r11.w, r11.w, r13.w
          if_nz r11.w
            mov r9.yzw, l(0,0,0,0)
            mov r10.x, l(0)
          else 
            add r14.xyz, -r10.ywxy, r9.yzwy
            dp2 r11.w, r14.zxzz, r6.yzyy
            div r8.w, -r8.w, r11.w
            mad r14.xyz, r14.xyzx, r8.wwww, r10.ywxy
            if_nz r12.w
              mov r9.yzw, r14.xxyz
            else 
              mov r10.x, r14.z
            endif 
          endif 
        endif 
      endif 
      dp3 r8.w, r9.yzwy, r9.yzwy
      lt r8.w, l(0.001000), r8.w
      if_nz r8.w
        min r8.w, r9.w, r10.x
        min r6.w, r6.w, r8.w
        max r8.w, r9.w, r10.x
        max r7.x, r7.x, r8.w
      endif 
      add r7.w, r7.w, l(1.04719758)
      iadd r8.y, r8.y, l(1)
    endloop 
    mul r10.xyz, r0.zxyz, r6.yzxy
    mad r10.xyz, r6.xyzx, r0.xyzx, -r10.xyzx
    mul r14.xyz, r3.zwyz, r6.xyzx
    mad r6.xyz, r3.yzwy, r6.yzxy, -r14.xyzx
    mul r14.xyz, r3.yzwy, r5.yzxy
    mad r3.yzw, r5.xxyz, r3.zzwy, -r14.xxyz
    mul r14.xyz, r0.xyzx, r5.xyzx
    mad r0.xyz, r0.zxyz, r5.yzxy, -r14.xyzx
    mad r5.xyz, r4.xyzx, cb0[79].yyyy, r1.xyzx
    dp3 r0.w, -r4.xyzx, r5.xyzx
    mov r5.z, r3.x
    mov r11.y, r8.x
    mov r11.z, r4.x
    mov r12.x, r7.y
    mov r12.z, r4.y
    mov r13.x, r7.z
    mov r13.y, r8.z
    mov r1.w, r6.w
    mov r3.x, r7.x
    mov r8.xyz, r9.yzwy
    mov r4.w, l(0)
    loop 
      ige r5.w, r4.w, l(4)
      breakc_nz r5.w
      switch r4.w
        case l(0)
        mov r8.xyz, r10.xyzx
        break 
        case l(1)
        mov r8.xyz, r6.xyzx
        break 
        case l(2)
        mov r8.xyz, r3.yzwy
        break 
        case l(3)
        mov r8.xyz, r0.xyzx
        break 
        default 
        break 
      endswitch 
      dp3 r5.w, r8.xyzx, r8.xyzx
      rsq r5.w, r5.w
      mul r7.yzw, r5.wwww, r8.xxyz
      mul r7.yzw, r7.yyzw, l(0.000000, 65000.000000, 65000.000000, 65000.000000)
      mov r14.xyz, l(0,0,0,0)
      mov r8.xyz, r7.yzwy
      mov r5.w, l(0)
      mov r8.w, l(0)
      loop 
        ige r10.w, r8.w, l(6)
        breakc_nz r10.w
        dp3 r10.w, r8.xyzx, r8.xyzx
        lt r10.w, l(0.001000), r10.w
        if_nz r10.w
          if_nz r10.w
            sincos r15.x, r16.x, r5.w
            mul r5.x, -r9.x, r15.x
            mul r5.y, -r9.x, r16.x
            dp3 r15.x, r5.xyzx, r11.xyzx
            dp3 r15.y, r5.xyzx, r12.xyzx
            dp3 r15.z, r5.xyzx, r13.xyzx
            dp3 r5.x, r15.xyzx, r1.xyzx
            dp3 r5.y, r14.yzxy, r15.xyzx
            add r5.y, -r5.x, r5.y
            dp3 r10.w, r8.xyzx, r15.xyzx
            add r5.x, -r5.x, r10.w
            ge r10.w, r5.y, l(0.000000)
            ge r11.w, r5.x, l(0.000000)
            and r11.w, r10.w, r11.w
            if_z r11.w
              lt r11.w, r5.y, l(0.000000)
              lt r5.x, r5.x, l(0.000000)
              and r5.x, r5.x, r11.w
              if_nz r5.x
                mov r14.xyz, l(0,0,0,0)
                mov r8.xyz, l(0,0,0,0)
              else 
                add r16.xyz, -r14.yzxy, r8.xyzx
                dp3 r5.x, r16.xyzx, r15.xyzx
                div r5.x, -r5.y, r5.x
                mad r15.xyz, r16.xyzx, r5.xxxx, r14.yzxy
                if_nz r10.w
                  mov r8.xyz, r15.xyzx
                else 
                  mov r14.xyz, r15.zxyz
                endif 
              endif 
            endif 
          endif 
          add r5.w, r5.w, l(1.04719758)
        endif 
        iadd r8.w, r8.w, l(1)
      endloop 
      dp3 r5.x, r8.xyzx, r8.xyzx
      lt r5.x, l(0.001000), r5.x
      if_nz r5.x
        dp3 r5.x, r14.yzxy, -r4.xyzx
        dp3 r5.y, r8.xyzx, -r4.xyzx
        add r5.xy, -r0.wwww, r5.xyxx
        ge r5.w, r5.x, l(0.000000)
        ge r7.y, r5.y, l(0.000000)
        and r7.y, r5.w, r7.y
        if_z r7.y
          lt r7.y, r5.x, l(0.000000)
          lt r5.y, r5.y, l(0.000000)
          and r5.y, r5.y, r7.y
          if_nz r5.y
            mov r8.xyz, l(0,0,0,0)
            mov r14.x, l(0)
          else 
            add r7.yzw, -r14.yyzx, r8.xxyz
            dp3 r5.y, r7.yzwy, -r4.xyzx
            div r5.x, -r5.x, r5.y
            mad r7.yzw, r7.yyzw, r5.xxxx, r14.yyzx
            if_nz r5.w
              mov r8.xyz, r7.yzwy
            else 
              mov r14.x, r7.w
            endif 
          endif 
        endif 
      endif 
      dp3 r5.x, r8.xyzx, r8.xyzx
      lt r5.x, l(0.001000), r5.x
      if_nz r5.x
        min r5.x, r8.z, r14.x
        min r1.w, r1.w, r5.x
        max r5.x, r8.z, r14.x
        max r3.x, r3.x, r5.x
      endif 
      iadd r4.w, r4.w, l(1)
    endloop 
    max r0.x, r1.w, l(0.100000)
    min r0.y, r3.x, 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, r2.xyzw
    endif 
    if_z r0.z
      mov o0.zw, l(0,0,0,0)
      mov o0.xy, r0.xyxx
    endif 
  else 
    mov o0.xyzw, r2.xyzw
  endif 
else 
  mov o0.xyzw, r2.xyzw
endif 
ret 
// Approximately 384 instruction slots used
