//
// 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 [unused]
//   float4 g_vLightColor;              // Offset: 1232 Size:    16 [unused]
//   float4 g_vLightConeDir;            // Offset: 1248 Size:    16 [unused]
//   float4 g_vLightDesc;               // Offset: 1264 Size:    16 [unused]
//   float4x4 g_mView;                  // Offset: 1280 Size:    64
//   float4 g_vCamSettings;             // Offset: 1344 Size:    16
//   float DEPTH_SCALE;                 // Offset: 1360 Size:     4
//      = 0x4727c5ac 
//
// }
//
// cbuffer CBLightSettings
// {
//
//   struct
//   {
//       
//       float4 vLightsListSettings2;   // Offset:    0
//       float4 vShadowLODYPos;         // Offset:   16
//       float4 vShadowLODXSZ;          // Offset:   32
//       float4 vShadowLODYSZ;          // Offset:   48
//       float4 vShadowTexRes;          // Offset:   64
//
//   } g_LightListSettings;             // Offset:    0 Size:    80 [unused]
//   float4 g_avLODMask[4];             // Offset:   80 Size:    64 [unused]
//   float4 g_avRot[6];                 // Offset:  144 Size:    96 [unused]
//   float4 g_avLightsInfo[2048];       // Offset:  240 Size: 32768
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// $Globals                          cbuffer      NA          NA    0        1
// CBLightSettings                   cbuffer      NA          NA    1        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   xy          0   TARGET    uint   xy  
//
ps_4_0
dcl_constantbuffer cb0[86], immediateIndexed
dcl_constantbuffer cb1[2059], dynamicIndexed
dcl_input_ps linear v1.xy
dcl_output o0.xy
dcl_temps 18
ftoi r0.x, cb0[74].x
mul r0.y, v1.x, cb0[84].w
ftoi r0.y, r0.y
xor r0.z, r0.x, r0.y
imax r0.w, r0.y, -r0.y
imax r1.x, r0.x, -r0.x
udiv r0.w, null, r0.w, r1.x
ineg r1.x, r0.w
and r0.z, r0.z, l(0x80000000)
movc r0.z, r0.z, r1.x, r0.w
itof r0.w, r0.z
add r0.w, r0.w, cb0[84].z
ftoi r0.w, r0.w
ishl r0.w, r0.w, l(3)
iadd r1.x, r0.w, l(3)
lt r1.y, l(1.999000), cb1[r1.x + 15].x
if_nz r1.y
  mul r1.y, v1.y, cb0[74].y
  imad r0.x, -r0.z, r0.x, r0.y
  lt r0.y, l(2.999000), cb1[r1.x + 15].x
  if_nz r0.y
    mov r2.xyz, cb1[r0.w + 15].xyzx
    mov r2.w, l(1.000000)
    dp4 r3.z, r2.xyzw, cb0[82].xyzw
    add r0.y, r3.z, cb1[r1.x + 15].y
    lt r0.y, r0.y, l(0.100000)
    add r0.z, r3.z, -cb1[r1.x + 15].y
    lt r0.z, l(15000.000000), r0.z
    or r0.y, r0.z, r0.y
    if_nz r0.y
      mov r1.zw, l(0,0,0,0)
    endif 
    if_z r0.y
      itof r0.y, r0.x
      dp2 r0.y, r0.yyyy, cb0[74].zzzz
      add r0.y, r0.y, l(-1.000000)
      add r0.y, r0.y, -cb0[75].x
      round_z r0.z, r1.y
      dp2 r0.z, r0.zzzz, cb0[74].wwww
      add r0.z, -r0.z, cb0[84].x
      add r4.y, r0.z, -cb0[75].y
      mad r5.y, cb0[74].z, l(2.000000), r0.y
      mad r0.z, -cb0[74].z, l(2.000000), r4.y
      dp4 r3.x, r2.xyzw, cb0[80].xyzw
      dp4 r3.y, r2.xyzw, cb0[81].xyzw
      mov r4.xw, -cb0[84].yyyy
      dp2 r2.x, r4.ywyy, r4.ywyy
      rsq r2.x, r2.x
      mov r4.z, l(0)
      mul r2.xyz, r2.xxxx, r4.yzwy
      mov r6.y, -r0.z
      mov r6.x, cb0[84].y
      dp2 r0.z, r6.xyxx, r6.xyxx
      rsq r0.z, r0.z
      mov r6.z, l(0)
      mul r4.yzw, r0.zzzz, r6.xxyz
      mov r6.y, -r0.y
      mov r6.x, cb0[84].y
      dp2 r0.y, r6.xyxx, r6.xyxx
      rsq r0.y, r0.y
      mul r6.yz, r0.yyyy, r6.yyxy
      mov r5.x, -cb0[84].y
      dp2 r0.y, r5.xyxx, r5.xyxx
      rsq r0.y, r0.y
      mul r7.z, r0.y, r4.x
      mul r7.y, r0.y, r5.y
      dp2 r0.y, r3.zyzz, r2.xzxx
      dp2 r0.z, r3.yzyy, r4.yzyy
      dp2 r2.w, r3.zxzz, r6.yzyy
      dp2 r3.w, r3.zxzz, r7.yzyy
      min r0.z, r0.z, r0.y
      lt r0.z, r0.z, -cb1[r1.x + 15].y
      min r2.w, r2.w, r3.w
      lt r2.w, r2.w, -cb1[r1.x + 15].y
      or r0.z, r0.z, r2.w
      if_nz r0.z
        mov r1.zw, l(0,0,0,0)
      endif 
      if_z r0.z
        mov r6.x, l(0)
        mov r7.x, l(0)
        iadd r0.z, r0.w, l(2)
        dp3 r5.x, -cb1[r0.z + 15].xyzx, cb0[80].xyzx
        dp3 r5.y, -cb1[r0.z + 15].xyzx, cb0[81].xyzx
        dp3 r5.z, -cb1[r0.z + 15].xyzx, cb0[82].xyzx
        lt r0.z, |r5.y|, l(0.950000)
        if_nz r0.z
          mul r8.xyz, r5.zxyz, l(1.000000, 0.000000, 0.000000, 0.000000)
          mad r8.xyz, r5.yzxy, l(0.000000, 0.000000, 1.000000, 0.000000), -r8.xyzx
          dp2 r0.z, r8.xzxx, r8.xzxx
          rsq r0.z, r0.z
          mul r8.xyz, r0.zzzz, r8.xyzx
        else 
          mul r9.xyz, r5.zxyz, l(0.000000, -1.000000, 0.000000, 0.000000)
          mad r9.xyz, r5.yzxy, l(-1.000000, 0.000000, 0.000000, 0.000000), -r9.xyzx
          dp2 r0.z, r9.xyxx, r9.xyxx
          rsq r0.z, r0.z
          mul r8.xyz, r0.zzzz, r9.xyzx
        endif 
        mul r9.xyz, r5.yzxy, r8.zxyz
        mad r9.xyz, r8.yzxy, r5.zxyz, -r9.xyzx
        sincos r4.x, r10.x, cb1[r1.x + 15].z
        div r0.z, r4.x, r10.x
        mul r0.z, r0.z, cb1[r1.x + 15].y
        mul r0.z, r0.z, l(1.15470052)
        ge r2.w, r0.y, l(0.000000)
        lt r3.w, r0.y, l(0.000000)
        mov r11.z, cb1[r1.x + 15].y
        mov r12.x, r8.x
        mov r12.y, r9.x
        mov r12.z, r5.x
        mov r13.x, r8.y
        mov r13.y, r9.y
        mov r13.z, r5.y
        mov r14.x, r8.z
        mov r14.y, r9.z
        mov r14.z, r5.z
        mov r5.w, l(65000.000000)
        mov r6.w, l(0)
        mov r10.yzw, l(0,0,0,0)
        mov r7.w, l(-0.523598790)
        mov r8.x, l(0)
        loop 
          ige r8.w, r8.x, l(6)
          breakc_nz r8.w
          sincos r15.x, r16.x, r7.w
          mul r11.x, r0.z, r15.x
          mul r11.y, r0.z, r16.x
          dp3 r15.x, r11.xyzx, r12.xyzx
          dp3 r15.y, r11.xyzx, r13.xyzx
          dp3 r15.z, r11.xyzx, r14.xyzx
          add r10.yzw, r3.xxyz, r15.xxyz
          dp3 r8.w, r10.yzwy, r10.yzwy
          lt r8.w, l(0.001000), r8.w
          if_nz r8.w
            dp2 r8.w, r10.wzww, r2.xzxx
            ge r9.y, r8.w, l(0.000000)
            and r9.y, r2.w, r9.y
            if_nz r9.y
              mov r11.xyw, r3.zxzy
            else 
              lt r8.w, r8.w, l(0.000000)
              and r8.w, r3.w, r8.w
              if_nz r8.w
                mov r11.xyw, l(0,0,0,0)
                mov r10.yzw, l(0,0,0,0)
              else 
                dp2 r8.w, r15.zyzz, r2.xzxx
                div r8.w, -r0.y, r8.w
                mad r15.xyz, r15.xyzx, r8.wwww, r3.xyzx
                if_nz r2.w
                  mov r11.xyw, r3.zxzy
                  mov r10.yzw, r15.xxyz
                else 
                  mov r11.xyw, r15.zxzy
                endif 
              endif 
            endif 
          else 
            mov r11.xyw, r3.zxzy
          endif 
          dp3 r8.w, r10.yzwy, r10.yzwy
          lt r8.w, l(0.001000), r8.w
          if_nz r8.w
            dp2 r8.w, r11.wxww, r4.yzyy
            dp2 r9.y, r10.zwzz, r4.yzyy
            ge r9.w, r8.w, l(0.000000)
            ge r12.w, r9.y, l(0.000000)
            and r12.w, r9.w, r12.w
            if_z r12.w
              lt r12.w, r8.w, l(0.000000)
              lt r9.y, r9.y, l(0.000000)
              and r9.y, r9.y, r12.w
              if_nz r9.y
                mov r11.xyw, l(0,0,0,0)
                mov r10.yzw, l(0,0,0,0)
              else 
                add r15.xyz, -r11.ywxy, r10.yzwy
                dp2 r9.y, r15.yzyy, r4.yzyy
                div r8.w, -r8.w, r9.y
                mad r15.xyz, r15.xyzx, r8.wwww, r11.ywxy
                if_nz r9.w
                  mov r10.yzw, r15.xxyz
                else 
                  mov r11.xyw, r15.zxzy
                endif 
              endif 
            endif 
          endif 
          dp3 r8.w, r10.yzwy, r10.yzwy
          lt r8.w, l(0.001000), r8.w
          if_nz r8.w
            dp2 r8.w, r11.xyxx, r6.yzyy
            dp2 r9.y, r10.wyww, r6.yzyy
            ge r9.w, r8.w, l(0.000000)
            ge r12.w, r9.y, l(0.000000)
            and r12.w, r9.w, r12.w
            if_z r12.w
              lt r12.w, r8.w, l(0.000000)
              lt r9.y, r9.y, l(0.000000)
              and r9.y, r9.y, r12.w
              if_nz r9.y
                mov r11.xyw, l(0,0,0,0)
                mov r10.yzw, l(0,0,0,0)
              else 
                add r15.xyz, -r11.ywxy, r10.yzwy
                dp2 r9.y, r15.zxzz, r6.yzyy
                div r8.w, -r8.w, r9.y
                mad r15.xyz, r15.xyzx, r8.wwww, r11.ywxy
                if_nz r9.w
                  mov r10.yzw, r15.xxyz
                else 
                  mov r11.xyw, r15.zxzy
                endif 
              endif 
            endif 
          endif 
          dp3 r8.w, r10.yzwy, r10.yzwy
          lt r8.w, l(0.001000), r8.w
          if_nz r8.w
            dp2 r8.w, r11.xyxx, r7.yzyy
            dp2 r9.y, r10.wyww, r7.yzyy
            ge r9.w, r8.w, l(0.000000)
            ge r12.w, r9.y, l(0.000000)
            and r12.w, r9.w, r12.w
            if_z r12.w
              lt r12.w, r8.w, l(0.000000)
              lt r9.y, r9.y, l(0.000000)
              and r9.y, r9.y, r12.w
              if_nz r9.y
                mov r10.yzw, l(0,0,0,0)
                mov r11.x, l(0)
              else 
                add r15.xyz, -r11.ywxy, r10.yzwy
                dp2 r9.y, r15.zxzz, r7.yzyy
                div r8.w, -r8.w, r9.y
                mad r15.xyz, r15.xyzx, r8.wwww, r11.ywxy
                if_nz r9.w
                  mov r10.yzw, r15.xxyz
                else 
                  mov r11.x, r15.z
                endif 
              endif 
            endif 
          endif 
          dp3 r8.w, r10.yzwy, r10.yzwy
          lt r8.w, l(0.001000), r8.w
          if_nz r8.w
            min r8.w, r10.w, r11.x
            min r5.w, r5.w, r8.w
            max r8.w, r10.w, r11.x
            max r6.w, r6.w, r8.w
          endif 
          add r7.w, r7.w, l(1.04719758)
          iadd r8.x, r8.x, l(1)
        endloop 
        mul r11.xyz, r2.zxyz, r7.yzxy
        mad r11.xyz, r7.xyzx, r2.xyzx, -r11.xyzx
        mul r15.xyz, r4.zwyz, r7.xyzx
        mad r7.xyz, r4.yzwy, r7.yzxy, -r15.xyzx
        mul r15.xyz, r4.yzwy, r6.yzxy
        mad r4.yzw, r6.xxyz, r4.zzwy, -r15.xxyz
        mul r15.xyz, r2.xyzx, r6.xyzx
        mad r2.xyz, r2.zxyz, r6.yzxy, -r15.xyzx
        mad r6.xyz, r5.xyzx, cb1[r1.x + 15].yyyy, r3.xyzx
        dp3 r0.y, -r5.xyzx, r6.xyzx
        mov r6.z, r4.x
        mov r12.y, r9.x
        mov r12.z, r5.x
        mov r13.x, r8.y
        mov r13.z, r5.y
        mov r14.x, r8.z
        mov r14.y, r9.z
        mov r0.z, r5.w
        mov r2.w, r6.w
        mov r8.xyz, r10.yzwy
        mov r3.w, l(0)
        loop 
          ige r4.x, r3.w, l(4)
          breakc_nz r4.x
          switch r3.w
            case l(0)
            mov r8.xyz, r11.xyzx
            break 
            case l(1)
            mov r8.xyz, r7.xyzx
            break 
            case l(2)
            mov r8.xyz, r4.yzwy
            break 
            case l(3)
            mov r8.xyz, r2.xyzx
            break 
            default 
            break 
          endswitch 
          dp3 r4.x, r8.xyzx, r8.xyzx
          rsq r4.x, r4.x
          mul r9.xyz, r4.xxxx, r8.xyzx
          mul r9.xyz, r9.xyzx, l(65000.000000, 65000.000000, 65000.000000, 0.000000)
          mov r15.xyz, l(0,0,0,0)
          mov r8.xyz, r9.xyzx
          mov r4.x, l(0)
          mov r7.w, l(0)
          loop 
            ige r8.w, r7.w, l(6)
            breakc_nz r8.w
            dp3 r8.w, r8.xyzx, r8.xyzx
            lt r8.w, l(0.001000), r8.w
            if_nz r8.w
              if_nz r8.w
                sincos r16.x, r17.x, r4.x
                mul r6.x, -r10.x, r16.x
                mul r6.y, -r10.x, r17.x
                dp3 r16.x, r6.xyzx, r12.xyzx
                dp3 r16.y, r6.xyzx, r13.xyzx
                dp3 r16.z, r6.xyzx, r14.xyzx
                dp3 r6.x, r16.xyzx, r3.xyzx
                dp3 r6.y, r15.yzxy, r16.xyzx
                add r6.y, -r6.x, r6.y
                dp3 r8.w, r8.xyzx, r16.xyzx
                add r6.x, -r6.x, r8.w
                ge r8.w, r6.y, l(0.000000)
                ge r9.w, r6.x, l(0.000000)
                and r9.w, r8.w, r9.w
                if_z r9.w
                  lt r9.w, r6.y, l(0.000000)
                  lt r6.x, r6.x, l(0.000000)
                  and r6.x, r6.x, r9.w
                  if_nz r6.x
                    mov r15.xyz, l(0,0,0,0)
                    mov r8.xyz, l(0,0,0,0)
                  else 
                    add r17.xyz, -r15.yzxy, r8.xyzx
                    dp3 r6.x, r17.xyzx, r16.xyzx
                    div r6.x, -r6.y, r6.x
                    mad r16.xyz, r17.xyzx, r6.xxxx, r15.yzxy
                    if_nz r8.w
                      mov r8.xyz, r16.xyzx
                    else 
                      mov r15.xyz, r16.zxyz
                    endif 
                  endif 
                endif 
              endif 
              add r4.x, r4.x, l(1.04719758)
            endif 
            iadd r7.w, r7.w, l(1)
          endloop 
          dp3 r4.x, r8.xyzx, r8.xyzx
          lt r4.x, l(0.001000), r4.x
          if_nz r4.x
            dp3 r4.x, r15.yzxy, -r5.xyzx
            add r4.x, -r0.y, r4.x
            dp3 r6.x, r8.xyzx, -r5.xyzx
            add r6.x, -r0.y, r6.x
            ge r6.y, r4.x, l(0.000000)
            ge r7.w, r6.x, l(0.000000)
            and r7.w, r6.y, r7.w
            if_z r7.w
              lt r7.w, r4.x, l(0.000000)
              lt r6.x, r6.x, l(0.000000)
              and r6.x, r6.x, r7.w
              if_nz r6.x
                mov r8.xyz, l(0,0,0,0)
                mov r15.x, l(0)
              else 
                add r9.xyz, -r15.yzxy, r8.xyzx
                dp3 r6.x, r9.xyzx, -r5.xyzx
                div r4.x, -r4.x, r6.x
                mad r9.xyz, r9.xyzx, r4.xxxx, r15.yzxy
                if_nz r6.y
                  mov r8.xyz, r9.xyzx
                else 
                  mov r15.x, r9.z
                endif 
              endif 
            endif 
          endif 
          dp3 r4.x, r8.xyzx, r8.xyzx
          lt r4.x, l(0.001000), r4.x
          if_nz r4.x
            min r4.x, r8.z, r15.x
            min r0.z, r0.z, r4.x
            max r4.x, r8.z, r15.x
            max r2.w, r2.w, r4.x
          endif 
          iadd r3.w, r3.w, l(1)
        endloop 
        max r2.x, r0.z, l(0.100000)
        min r2.y, r2.w, l(15000.000000)
        lt r0.y, r2.y, r2.x
        if_nz r0.y
          mov r1.zw, l(0,0,0,0)
        endif 
        if_z r0.y
          mov r1.zw, r2.xxxy
        endif 
      endif 
    endif 
  else 
    mov r2.xyz, cb1[r0.w + 15].xyzx
    mov r2.w, l(1.000000)
    dp4 r3.w, r2.xyzw, cb0[82].xyzw
    add r0.y, r3.w, cb1[r1.x + 15].y
    lt r4.x, r0.y, l(0.100000)
    add r4.y, r3.w, -cb1[r1.x + 15].y
    lt r4.y, l(15000.000000), r4.y
    or r4.x, r4.y, r4.x
    if_nz r4.x
      mov r1.zw, l(0,0,0,0)
    endif 
    if_z r4.x
      itof r0.x, r0.x
      dp2 r0.x, r0.xxxx, cb0[74].zzzz
      add r0.x, r0.x, l(-1.000000)
      add r4.w, r0.x, -cb0[75].x
      round_z r0.x, r1.y
      dp2 r0.x, r0.xxxx, cb0[74].wwww
      add r0.x, -r0.x, cb0[84].x
      add r0.x, r0.x, -cb0[75].y
      mad r1.y, cb0[74].z, l(2.000000), r4.w
      mad r4.x, -cb0[74].w, l(2.000000), r0.x
      dp4 r3.y, r2.xyzw, cb0[80].xyzw
      dp4 r3.z, r2.xyzw, cb0[81].xyzw
      mov r2.x, -r0.x
      mov r2.z, cb0[84].y
      dp2 r0.x, r2.xzxx, r2.xzxx
      rsq r0.x, r0.x
      mov r2.y, l(0)
      mul r2.xyz, r0.xxxx, r2.xyzx
      mov r4.y, -cb0[84].y
      dp2 r0.x, r4.xyxx, r4.xyxx
      rsq r0.x, r0.x
      mov r4.z, l(0)
      mul r5.xyz, r0.xxxx, r4.zyxz
      mov r4.x, -cb0[84].y
      dp2 r0.x, r4.xwxx, r4.xwxx
      rsq r0.x, r0.x
      mul r4.xyz, r0.xxxx, r4.yzwy
      mov r6.y, -r1.y
      mov r6.x, cb0[84].y
      dp2 r0.x, r6.xyxx, r6.xyxx
      rsq r0.x, r0.x
      mul r6.yz, r0.xxxx, r6.yyxy
      dp2 r0.x, r3.wzww, r2.xzxx
      dp2 r1.y, r3.zwzz, r5.yzyy
      dp2 r2.w, r3.ywyy, r4.xzxx
      dp2 r6.w, r3.wyww, r6.yzyy
      max r7.x, r0.x, r1.y
      max r7.y, r2.w, r6.w
      lt r7.xy, cb1[r1.x + 15].yyyy, r7.xyxx
      or r7.x, r7.y, r7.x
      if_nz r7.x
        mov r1.zw, l(0,0,0,0)
      endif 
      if_z r7.x
        mov r6.x, l(0)
        add r3.x, r3.w, -cb1[r1.x + 15].y
        dp2 r7.x, r3.xzxx, r2.xzxx
        dp2 r7.y, r3.zxzz, r5.yzyy
        max r7.x, r7.y, r7.x
        dp2 r7.y, r3.yxyy, r4.xzxx
        dp2 r7.z, r3.xyxx, r6.yzyy
        max r7.y, r7.z, r7.y
        lt r7.xy, r7.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
        and r7.x, r7.y, r7.x
        if_z r7.x
          mov r3.x, l(65000.000000)
        endif 
        mov r0.zw, r3.zzzy
        dp2 r7.x, r0.yzyy, r2.xzxx
        dp2 r0.z, r0.zyzz, r5.yzyy
        max r0.z, r0.z, r7.x
        dp2 r7.x, r0.wyww, r4.xzxx
        dp2 r0.w, r0.ywyy, r6.yzyy
        max r0.w, r0.w, r7.x
        lt r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000)
        and r0.z, r0.w, r0.z
        if_z r0.z
          mov r0.y, l(0)
        endif 
        eq r0.z, r3.x, l(65000.000000)
        if_nz r0.z
          lt r0.z, cb1[r1.x + 15].y, |r0.x|
          if_nz r0.z
            mov r7.x, l(65000.000000)
          endif 
          if_z r0.z
            mov r8.y, -r2.z
            mul r0.z, r0.x, r0.x
            mad r0.z, cb1[r1.x + 15].y, cb1[r1.x + 15].y, -r0.z
            sqrt r0.z, r0.z
            mov r8.x, l(0)
            mul r7.zw, r0.xxxx, r2.yyyx
            mad r0.zw, r8.xxxy, r0.zzzz, -r7.zzzw
            add r7.xy, r0.wzww, r3.wyww
            dp2 r0.z, r7.yxyy, r4.xzxx
            dp2 r0.w, r7.xyxx, r6.yzyy
            max r0.z, r0.w, r0.z
            ge r0.z, r0.z, l(0.000000)
            if_nz r0.z
              mov r7.x, l(65000.000000)
            endif 
          endif 
          lt r0.z, cb1[r1.x + 15].y, |r1.y|
          if_nz r0.z
            mov r7.y, l(65000.000000)
          endif 
          if_z r0.z
            mul r0.z, r1.y, r1.y
            mad r0.z, cb1[r1.x + 15].y, cb1[r1.x + 15].y, -r0.z
            sqrt r0.z, r0.z
            mov r5.w, l(0)
            mul r8.xy, r1.yyyy, r5.xzxx
            mad r0.zw, r5.wwwy, r0.zzzz, -r8.xxxy
            add r7.yz, r0.wwzw, r3.wwyw
            dp2 r0.z, r7.zyzz, r4.xzxx
            dp2 r0.w, r7.yzyy, r6.yzyy
            max r0.z, r0.w, r0.z
            ge r0.z, r0.z, l(0.000000)
            if_nz r0.z
              mov r7.y, l(65000.000000)
            endif 
          endif 
          min r3.x, r7.y, r7.x
        endif 
        eq r0.z, r3.x, l(65000.000000)
        if_nz r0.z
          lt r0.z, cb1[r1.x + 15].y, |r2.w|
          if_nz r0.z
            mov r7.x, l(65000.000000)
          endif 
          if_z r0.z
            mul r0.z, r2.w, r2.w
            mad r0.z, cb1[r1.x + 15].y, cb1[r1.x + 15].y, -r0.z
            sqrt r0.z, r0.z
            mov r4.w, l(0)
            mul r7.zw, r2.wwww, r4.yyyz
            mad r0.zw, r4.wwwx, r0.zzzz, -r7.zzzw
            add r7.xy, r0.wzww, r3.wzww
            dp2 r0.z, r7.xyxx, r2.xzxx
            dp2 r0.w, r7.yxyy, r5.yzyy
            max r0.z, r0.w, r0.z
            ge r0.z, r0.z, l(0.000000)
            if_nz r0.z
              mov r7.x, l(65000.000000)
            endif 
          endif 
          lt r0.z, cb1[r1.x + 15].y, |r6.w|
          if_nz r0.z
            mov r7.y, l(65000.000000)
          endif 
          if_z r0.z
            mov r8.y, -r6.z
            mul r0.z, r6.w, r6.w
            mad r0.z, cb1[r1.x + 15].y, cb1[r1.x + 15].y, -r0.z
            sqrt r0.z, r0.z
            mov r8.x, l(0)
            mul r8.zw, r6.wwww, r6.xxxy
            mad r0.zw, r8.xxxy, r0.zzzz, -r8.zzzw
            add r7.yz, r0.wwzw, r3.wwzw
            dp2 r0.z, r7.yzyy, r2.xzxx
            dp2 r0.w, r7.zyzz, r5.yzyy
            max r0.z, r0.w, r0.z
            ge r0.z, r0.z, l(0.000000)
            if_nz r0.z
              mov r7.y, l(65000.000000)
            endif 
          endif 
          min r3.x, r7.y, r7.x
        endif 
        eq r0.z, r0.y, l(0.000000)
        if_nz r0.z
          lt r0.z, cb1[r1.x + 15].y, |r0.x|
          if_nz r0.z
            mov r7.x, l(0)
          endif 
          if_z r0.z
            mov r8.y, -r2.z
            mov r8.x, l(0)
            mul r0.z, r0.x, r0.x
            mad r0.z, cb1[r1.x + 15].y, cb1[r1.x + 15].y, -r0.z
            sqrt r0.z, r0.z
            mul r0.xw, r0.xxxx, r2.yyyx
            mad r0.xz, -r8.xxyx, r0.zzzz, -r0.xxwx
            add r7.xy, r0.zxzz, r3.wyww
            dp2 r0.x, r7.yxyy, r4.xzxx
            dp2 r0.z, r7.xyxx, r6.yzyy
            max r0.x, r0.z, r0.x
            ge r0.x, r0.x, l(0.000000)
            if_nz r0.x
              mov r7.x, l(0)
            endif 
          endif 
          lt r0.x, cb1[r1.x + 15].y, |r1.y|
          if_nz r0.x
            mov r0.z, l(0)
          endif 
          if_z r0.x
            mov r8.x, l(0)
            mov r8.y, r5.y
            mul r0.x, r1.y, r1.y
            mad r0.x, cb1[r1.x + 15].y, cb1[r1.x + 15].y, -r0.x
            sqrt r0.x, r0.x
            mul r7.yz, r1.yyyy, r5.xxzx
            mad r7.yz, -r8.xxyx, r0.xxxx, -r7.yyzy
            add r0.zw, r3.wwwy, r7.zzzy
            dp2 r0.x, r0.wzww, r4.xzxx
            dp2 r0.w, r0.zwzz, r6.yzyy
            max r0.x, r0.w, r0.x
            ge r0.x, r0.x, l(0.000000)
            if_nz r0.x
              mov r0.z, l(0)
            endif 
          endif 
          max r0.y, r0.z, r7.x
        endif 
        eq r0.x, r0.y, l(0.000000)
        if_nz r0.x
          lt r0.x, cb1[r1.x + 15].y, |r2.w|
          if_nz r0.x
            mov r0.z, l(0)
          endif 
          if_z r0.x
            mov r7.x, l(0)
            mov r7.y, r4.x
            mul r0.x, r2.w, r2.w
            mad r0.x, cb1[r1.x + 15].y, cb1[r1.x + 15].y, -r0.x
            sqrt r0.x, r0.x
            mul r7.zw, r2.wwww, r4.yyyz
            mad r7.xy, -r7.xyxx, r0.xxxx, -r7.zwzz
            add r0.zw, r3.wwwz, r7.yyyx
            dp2 r0.x, r0.zwzz, r2.xzxx
            dp2 r0.w, r0.wzww, r5.yzyy
            max r0.x, r0.w, r0.x
            ge r0.x, r0.x, l(0.000000)
            if_nz r0.x
              mov r0.z, l(0)
            endif 
          endif 
          lt r0.x, cb1[r1.x + 15].y, |r6.w|
          if_nz r0.x
            mov r7.x, l(0)
          endif 
          if_z r0.x
            mov r8.y, -r6.z
            mov r8.x, l(0)
            mul r0.x, r6.w, r6.w
            mad r0.x, cb1[r1.x + 15].y, cb1[r1.x + 15].y, -r0.x
            sqrt r0.x, r0.x
            mul r7.zw, r6.wwww, r6.xxxy
            mad r0.xw, -r8.xxxy, r0.xxxx, -r7.zzzw
            add r7.xy, r0.wxww, r3.wzww
            dp2 r0.x, r7.xyxx, r2.xzxx
            dp2 r0.w, r7.yxyy, r5.yzyy
            max r0.x, r0.w, r0.x
            ge r0.x, r0.x, l(0.000000)
            if_nz r0.x
              mov r7.x, l(0)
            endif 
          endif 
          max r0.y, r0.z, r7.x
        endif 
        mul r0.x, cb1[r1.x + 15].y, cb1[r1.x + 15].y
        mul r7.xyz, r2.zxyz, r6.yzxy
        mad r7.xyz, r6.xyzx, r2.xyzx, -r7.xyzx
        mul r8.xyz, r5.zxyz, r6.xyzx
        mad r6.xyz, r5.yzxy, r6.yzxy, -r8.xyzx
        mul r8.xyz, r5.yzxy, r4.zxyz
        mad r5.xyz, r4.yzxy, r5.zxyz, -r8.xyzx
        mul r8.xyz, r2.xyzx, r4.yzxy
        mad r2.xyz, r2.zxyz, r4.zxyz, -r8.xyzx
        dp3 r0.z, r3.yzwy, r3.yzwy
        mov r0.w, r3.x
        mov r1.y, r0.y
        mov r2.w, l(0)
        loop 
          ige r4.x, r2.w, l(4)
          breakc_nz r4.x
          switch r2.w
            case l(0)
            mov r4.xyz, r7.xyzx
            break 
            case l(1)
            mov r4.xyz, r6.xyzx
            break 
            case l(2)
            mov r4.xyz, r5.xyzx
            break 
            case l(3)
            mov r4.xyz, r2.xyzx
            break 
            default 
            break 
          endswitch 
          dp3 r4.w, r4.xyzx, r4.xyzx
          rsq r4.w, r4.w
          mul r4.xyz, r4.wwww, r4.xyzx
          dp3 r4.x, r4.xyzx, r3.yzwy
          mad r4.y, -r4.x, r4.x, r0.z
          lt r4.w, r4.y, r0.x
          if_nz r4.w
            mad r4.y, cb1[r1.x + 15].y, cb1[r1.x + 15].y, -r4.y
            sqrt r4.y, r4.y
            mul r4.y, r4.z, r4.y
            mad r4.w, r4.x, r4.z, -r4.y
            mad r4.x, r4.x, r4.z, r4.y
          else 
            mov r4.xw, l(0,0,0,65000.000000)
          endif 
          min r0.w, r0.w, r4.w
          max r1.y, r1.y, r4.x
          iadd r2.w, r2.w, l(1)
        endloop 
        max r0.x, r0.w, l(0.100000)
        min r0.y, r1.y, l(15000.000000)
        lt r0.z, r0.y, r0.x
        if_nz r0.z
          mov r1.zw, l(0,0,0,0)
        endif 
        if_z r0.z
          mov r1.zw, r0.xxxy
        endif 
      endif 
    endif 
  endif 
  lt r0.x, r1.z, r1.w
  if_nz r0.x
    max r0.xy, r1.zwzz, l(0.000000, 0.000000, 0.000000, 0.000000)
    min r0.xy, r0.xyxx, l(50000.000000, 50000.000000, 0.000000, 0.000000)
    mul r0.xy, r0.xyxx, l(0.000020, 0.000020, 0.000000, 0.000000)
    log r0.xy, r0.xyxx
    mul r0.xy, r0.xyxx, l(1.500000, 1.500000, 0.000000, 0.000000)
    exp r0.xy, r0.xyxx
    mul r0.xy, r0.xyxx, cb0[85].xxxx
    mul r0.xy, r0.xyxx, l(50000.000000, 50000.000000, 0.000000, 0.000000)
    ftou r0.xy, r0.xyxx
    umax r0.xy, r0.xyxx, l(1, 1, 0, 0)
    utof r0.xy, r0.xyxx
    log r0.xy, r0.xyxx
    max r0.xy, r0.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
    min r0.xy, r0.xyxx, l(30.000000, 30.000000, 0.000000, 0.000000)
    ftou r0.xy, r0.xyxx
    ishl r0.z, l(1), r0.x
    iadd r0.x, r0.y, -r0.x
    iadd r0.x, r0.x, l(1)
    umax r0.x, r0.x, l(1)
    umin r0.x, r0.x, l(30)
    ishl r0.y, r0.z, l(1)
    iadd r0.x, r0.x, l(-1)
    mov r1.xy, r0.zyzz
    mov r0.w, r0.x
    loop 
      uge r2.x, l(0), r0.w
      breakc_nz r2.x
      or r1.x, r1.y, r1.x
      ishl r1.y, r1.y, l(1)
      iadd r0.w, r0.w, l(-1)
    endloop 
    mov o0.y, r1.x
  else 
    mov o0.y, l(0)
  endif 
else 
  mov r1.zw, l(0,0,0,65000.000000)
  mov o0.y, l(0x7fffffff)
endif 
lt r0.x, l(0.000000), r1.z
log r0.y, r1.z
mul r0.y, r0.y, l(0.301030)
and r0.x, r0.y, r0.x
ftoi r0.y, r0.x
lt r0.x, l(0.000000), r0.x
if_nz r0.x
  iadd r0.y, r0.y, l(1)
endif 
itof r0.x, r0.y
mul r0.x, r0.x, l(3.321928)
exp r0.x, r0.x
div r0.x, r1.z, r0.x
mad r0.x, r0.x, l(4095.000000), l(0.500000)
ftou r0.x, r0.x
and r0.x, r0.x, l(4095)
ishl r0.y, r0.y, l(12)
iadd r0.x, r0.x, r0.y
lt r0.y, l(0.000000), r1.w
log r0.z, r1.w
mul r0.z, r0.z, l(0.301030)
and r0.y, r0.z, r0.y
ftoi r0.z, r0.y
lt r0.y, l(0.000000), r0.y
if_nz r0.y
  iadd r0.z, r0.z, l(1)
endif 
itof r0.y, r0.z
mul r0.y, r0.y, l(3.321928)
exp r0.y, r0.y
div r0.y, r1.w, r0.y
mad r0.y, r0.y, l(4095.000000), l(0.500000)
ftou r0.y, r0.y
and r0.xy, r0.xyxx, l(0x0000ffff, 4095, 0, 0)
ishl r0.z, r0.z, l(12)
iadd r0.y, r0.y, r0.z
ishl r0.y, r0.y, l(16)
iadd o0.x, r0.x, r0.y
ret 
// Approximately 807 instruction slots used
