// Tile Lights CS
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.2.55 on Sat Mar 18 11:01:28 2017
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[2], immediateIndexed
dcl_constantbuffer cb1[134], immediateIndexed
dcl_constantbuffer cb2[3072], dynamicIndexed
dcl_constantbuffer cb3[2048], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_uav_typed_texture2d (float,float,float,float) u0
dcl_input vThreadGroupID.xy
dcl_input vThreadIDInGroup.xy
dcl_input vThreadID.xy
//dcl_temps 35
dcl_temps 36

dcl_tgsm_raw g0, 4
dcl_tgsm_raw g1, 4
dcl_tgsm_raw g2, 4
dcl_tgsm_structured g3, 4, 1024
dcl_tgsm_raw g4, 4
dcl_tgsm_structured g5, 4, 1024
dcl_thread_group 16, 16, 1

//3Dmigoto
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r36.xyzw, l(0, 0, 0, 0), t125.xyzw

imad r0.x, vThreadIDInGroup.y, l(16), vThreadIDInGroup.x
iadd r1.xy, vThreadID.xyxx, cb0[0].xyxx
iadd r0.yz, -cb0[0].xxyx, cb0[0].zzwz
utof r0.yz, r0.yyzy
mov r1.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r0.w, r1.xyww, t5.yzwx
mad r2.x, r0.w, cb1[51].x, cb1[51].y
mad r0.w, r0.w, cb1[51].z, -cb1[51].w
div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
add r0.w, r0.w, r2.x
if_z r0.x
  store_raw g0.x, l(0), l(340282346638528860000000000000000000000.000000)
  store_raw g1.x, l(0), l(0)
  store_raw g2.x, l(0), l(0)
  store_raw g4.x, l(0), l(0)
endif 
sync_g_t
atomic_umin g0, l(0), r0.w
atomic_umax g1, l(0), r0.w
sync_g_t
ld_raw r2.x, l(0), g0.xxxx
ld_raw r3.y, l(0), g1.xxxx
mul r2.yz, r0.yyzy, l(0.000000, 0.031250, 0.031250, 0.000000)
utof r3.zw, vThreadGroupID.xxxy
mad r3.zw, r0.yyyz, l(0.000000, 0.000000, 0.031250, 0.031250), -r3.zzzw
mul r4.y, r2.y, cb1[24].x
mul r4.x, r2.z, -cb1[25].y
mad r4.zw, cb1[26].xxxy, r2.yyyz, r3.zzzw
add r5.xyzw, -r4.yzxw, l(0.000000, 1.000000, 0.000000, 1.000000)
add r4.xyzw, r4.yzxw, l(0.000000, 1.000000, 0.000000, 1.000000)
mov r2.w, -r2.x
dp2 r3.z, r5.xyxx, r5.xyxx
sqrt r3.z, r3.z
rcp r3.z, r3.z
mul r3.zw, r3.zzzz, r5.xxxy
dp2 r5.x, r4.xyxx, r4.xyxx
sqrt r5.x, r5.x
rcp r5.x, r5.x
mul r4.xy, r4.xyxx, r5.xxxx
dp2 r5.x, r5.zwzz, r5.zwzz
sqrt r5.x, r5.x
rcp r5.x, r5.x
mul r5.xy, r5.xxxx, r5.zwzz
dp2 r5.z, r4.zwzz, r4.zwzz
sqrt r5.z, r5.z
rcp r5.z, r5.z
mul r4.zw, r4.zzzw, r5.zzzz
mov r5.z, r0.x
loop 
  ult r5.w, r5.z, cb0[1].x
  ult r6.x, r5.z, l(1024)
  and r5.w, r5.w, r6.x
  breakc_z r5.w
  div r5.w, l(1.000000, 1.000000, 1.000000, 1.000000), cb3[r5.z + 0].w
  add r6.xyz, cb1[56].xyzx, cb3[r5.z + 0].xyzx
  mul r7.xyz, r6.yyyy, cb1[9].xyzx
  mad r6.xyw, r6.xxxx, cb1[8].xyxz, r7.xyxz
  mad r6.xyz, r6.zzzz, cb1[10].xyzx, r6.xywx
  add r2.xyz, r6.xyzx, cb1[11].xyzx
  
  // Fix tile clipping:
add r35.w, r2.z, -r35.y
mad r2.x, r35.w, r35.x, r2.x
  
  dp2 r6.x, r3.zwzz, r2.xzxx
  ge r6.x, r6.x, -r5.w
  dp2 r2.x, r4.xyxx, r2.xzxx
  ge r2.x, r2.x, -r5.w
  and r2.x, r2.x, r6.x
  dp2 r6.x, r5.xyxx, r2.yzyy
  ge r6.x, r6.x, -r5.w
  and r2.x, r2.x, r6.x
  dp2 r2.y, r4.zwzz, r2.yzyy
  ge r2.y, r2.y, -r5.w
  and r2.x, r2.y, r2.x
  if_nz r2.x
    dp2 r2.x, l(1.000000, 1.000000, 0.000000, 0.000000), r2.zwzz
    mov r3.x, r2.z
    dp2 r2.y, l(-1.000000, 1.000000, 0.000000, 0.000000), r3.xyxx
    ge r2.xy, r2.xyxx, -r5.wwww
    and r2.x, r2.y, r2.x
    if_nz r2.x
      lt r2.x, l(0.500000), cb2[r5.z + 1024].w
      if_nz r2.x
        imm_atomic_iadd r6.x, g4, l(0), l(1)
        store_structured g5.x, r6.x, l(0), r5.z
      else 
        imm_atomic_iadd r6.x, g2, l(0), l(1)
        store_structured g3.x, r6.x, l(0), r5.z
      endif 
    endif 
  endif 
  iadd r5.z, r5.z, l(256)
endloop 
sync_g_t
ld_indexable(texture2d)(float,float,float,float) r2.xyzw, r1.xyww, t1.xyzw
mul r0.x, r2.w, l(255.000000)
round_ne r0.x, r0.x
ftou r0.x, r0.x
and r2.w, r0.x, l(15)
if_nz r2.w
  utof r3.xy, vThreadID.xyxx
  add r3.xy, r3.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  div r0.yz, r3.xxyx, r0.yyzy
  mad r0.yz, r0.yyzy, l(0.000000, 2.000000, -2.000000, 0.000000), l(0.000000, -1.000000, 1.000000, 0.000000)
  lt r3.x, cb1[27].w, l(1.000000)
  movc r3.x, r3.x, r0.w, l(1.000000)
  mul r0.yz, r0.yyzy, r3.xxxx
  
  // Correct light placement:
add r35.w, r3.x, -r35.y
mad r0.y, -r35.w, r35.x, r0.y
  
  mul r3.xyzw, r0.zzzz, cb1[41].xyzw
  mad r3.xyzw, r0.yyyy, cb1[40].xyzw, r3.xyzw
  mad r3.xyzw, r0.wwww, cb1[42].xyzw, r3.xyzw
  add r3.xyzw, r3.xyzw, cb1[43].xyzw
  div r0.yzw, r3.xxyz, r3.wwww
  ld_raw r3.x, l(0), g2.xxxx
  ld_raw r3.y, l(0), g4.xxxx
  ld_indexable(texture2d)(float,float,float,float) r4.xyz, r1.xyww, t0.xyzw
  ld_indexable(texture2d)(float,float,float,float) r5.xyz, r1.xyww, t2.xyzw
  ld_indexable(texture2d)(float,float,float,float) r6.xyzw, r1.xyww, t3.xyzw
  ld_indexable(texture2d)(float,float,float,float) r7.xyzw, r1.xyww, t4.xyzw
  ftou r3.z, cb1[133].x
  iadd r3.w, r1.y, r1.x
  iadd r3.z, r3.z, r3.w
  and r3.z, r3.z, l(1)
  mad r4.xyz, r4.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
  dp3 r3.w, r4.xyzx, r4.xyzx
  rsq r3.w, r3.w
  mul r8.xyz, r3.wwww, r4.xyzx
  and r9.xyz, r0.xxxx, l(16, 32, 64, 0)
  movc r6.xyzw, r9.xxxx, l(0,0,0,0), r6.xyzw
  movc r0.x, r9.z, l(0), l(1.000000)
  movc r7.xyzw, r9.yyyy, r0.xxxx, r7.xyzw
  ieq r0.x, r2.w, l(5)
  movc r9.xy, r3.zzzz, l(1.000000,0,0,0), l(0,1.000000,0,0)
  mul r9.z, r2.y, r9.y
  mov r5.w, r2.y
  movc r5.xyzw, r0.xxxx, r9.xxxz, r5.xyzw
  mad r9.xyz, -r5.xyzx, r2.xxxx, r5.xyzx
  mul r0.x, r5.w, l(0.080000)
  mad r10.xyz, -r5.wwww, l(0.080000, 0.080000, 0.080000, 0.000000), r5.xyzx
  mad r10.xyz, r2.xxxx, r10.xyzx, r0.xxxx
  mad r9.xyz, r9.xyzx, cb1[118].wwww, cb1[118].xyzx
  mad r10.xyz, r10.xyzx, cb1[119].wwww, cb1[119].xyzx
  utof r11.xy, r1.xyxx
  add r11.xy, r11.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  mul r11.xy, r11.xyxx, cb1[116].zwzz
  sample_l_indexable(texture2d)(float,float,float,float) r11.x, r11.xyxx, t6.xyzw, s0, l(0.000000)
  add r12.xyz, r0.yzwy, -cb1[53].xyzx
  dp3 r0.x, r12.xyzx, r12.xyzx
  rsq r0.x, r0.x
  mul r12.xyz, r0.xxxx, r12.xyzx
  dp3 r0.x, r12.xyzx, r8.xyzx
  add r0.x, r0.x, r0.x
  mad r13.xyz, r8.xyzx, -r0.xxxx, r12.xyzx
  mad r13.xyz, -r4.xyzx, r3.wwww, r13.xyzx
  mul r14.xyz, r9.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
  dp3 r0.x, r8.xyzx, -r12.xyzx
  add r2.y, |r0.x|, l(0.000010)
  min r2.y, r2.y, l(1.000000)
  mul_sat r3.z, r10.y, l(50.000000)
  mov_sat r15.xyzw, r6.xyzw
  mul r4.w, r15.y, l(50.000000)
  min r4.w, r4.w, l(1.000000)
  mad r8.w, r6.w, l(-2.900000), l(3.000000)
  add r16.y, -r6.w, l(1.000000)
  max r11.zw, r2.zzzz, l(0.000000, 0.000000, 0.00392156886, 0.040000)
  min r9.w, r11.z, l(1.000000)
  mad r10.w, |r0.x|, l(-0.156583), l(1.57079637)
  add r11.z, -|r0.x|, l(1.000000)
  sqrt r11.z, r11.z
  mul r12.w, r10.w, r11.z
  ge r13.w, r0.x, l(0.000000)
  mad r10.w, -r10.w, r11.z, l(3.14159274)
  movc r10.w, r13.w, r12.w, r10.w
  add r10.w, -r10.w, l(1.57079637)
  mad r17.xyz, -r0.xxxx, r8.xyzx, -r12.xyzx
  dp3 r11.z, r17.xyzx, r17.xyzx
  mul r9.w, r9.w, r9.w
  add r12.w, r9.w, r9.w
  mad r13.w, -r0.x, r0.x, l(1.000000)
  sqrt r13.w, r13.w
  mul r14.w, r0.x, l(0.00978400372)
  mul r18.xyzw, r9.wwww, l(0.500000, 1.41421354, 1.25331414, 5.01325655)
  add r9.w, r5.w, r5.w
  mul r16.z, r18.x, r18.x
  log r19.xyz, r5.xyzx
  mul r12.w, r12.w, r12.w
  rsq r16.w, r11.z
  mul r20.xyz, r16.wwww, r17.xyzx
  dp3 r16.w, r5.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
  div r21.xyz, r5.xyzx, r16.wwww
  log r21.xyz, r21.xyzx
  sqrt r5.xyz, r5.xyzx
  mad r22.xy, r6.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
  dp2 r16.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r22.xyxx|
  add r23.z, -r16.w, l(1.000000)
  lt r16.w, r23.z, l(0.000000)
  add r22.zw, -|r22.yyyx|, l(0.000000, 0.000000, 1.000000, 1.000000)
  ge r24.xy, r22.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
  movc r24.xy, r24.xyxx, l(1.000000,1.000000,0,0), l(-1.000000,-1.000000,0,0)
  mul r22.zw, r22.zzzw, r24.xxxy
  movc r23.xy, r16.wwww, r22.zwzz, r22.xyxx
  dp3 r16.w, r23.xyzx, r23.xyzx
  rsq r16.w, r16.w
  mul r22.xyz, r16.wwww, r23.xyzx
  mul r23.xyzw, r6.xyzw, r6.xyzz
  mad r4.xyz, -r4.xyzx, r3.wwww, -r22.xyzx
  mad r4.xyz, r23.wwww, r4.xyzx, r22.xyzx
  dp3 r3.w, r4.xyzx, r4.xyzx
  rsq r3.w, r3.w
  mul r4.xyz, r3.wwww, r4.xyzx
  mov r24.y, l(1.000000)
  mov r25.x, r6.y
  mov r11.y, l(1.000000)
  mov r25.y, r2.z
  mov r25.z, l(1.000000)
  mov r26.xyz, l(0,0,0,0)
  mov r2.z, l(0)
  loop 
    uge r3.w, r2.z, r3.x
    breakc_nz r3.w
    ld_structured r3.w, r2.z, l(0), g3.xxxx
    lt r6.y, l(0.000000), cb2[r3.w + 0].w
    eq r16.w, l(0.000000), cb3[r3.w + 1024].w
    add r27.xyz, -r0.yzwy, cb3[r3.w + 0].xyzx
    dp3 r17.w, r27.xyzx, r27.xyzx
    rsq r18.x, r17.w
    mul r28.xyz, r18.xxxx, r27.xyzx
    if_nz r16.w
      lt r16.w, l(0.000000), cb2[r3.w + 1024].w
      if_nz r16.w
        mul r29.xyz, cb2[r3.w + 0].xyzx, cb2[r3.w + 1024].wwww
        mad r30.xyz, -r29.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r27.xyzx
        mad r29.xyz, r29.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r27.xyzx
        dp3 r16.w, r30.xyzx, r30.xyzx
        dp3 r19.w, r29.xyzx, r29.xyzx
        rsq r20.w, r16.w
        rsq r21.w, r19.w
        mul r16.w, r16.w, r20.w
        mul r19.w, r19.w, r21.w
        dp3 r22.w, r30.xyzx, r29.xyzx
        mad r16.w, r16.w, r19.w, r22.w
        mad r16.w, r16.w, l(0.500000), l(1.000000)
        rcp r31.y, r16.w
        dp3 r16.w, r8.xyzx, r30.xyzx
        dp3 r19.w, r8.xyzx, r29.xyzx
        mul r19.w, r21.w, r19.w
        mad r16.w, r16.w, r20.w, r19.w
        mul_sat r31.x, r16.w, l(0.500000)
      else 
        add r16.w, r17.w, l(1.000000)
        rcp r31.y, r16.w
        dp3 r16.w, r8.xyzx, r28.xyzx
        mov_sat r19.w, r16.w
        lt r20.w, l(0.000000), cb2[r3.w + 1024].z
        mul r21.w, cb2[r3.w + 1024].z, cb2[r3.w + 1024].z
        div r21.w, r21.w, r17.w
        min r21.w, r21.w, l(1.000000)
        sqrt r21.w, r21.w
        lt r22.w, r16.w, r21.w
        max r23.w, r16.w, -r21.w
        add r23.w, r21.w, r23.w
        mul r23.w, r23.w, r23.w
        mul r21.w, r21.w, l(4.000000)
        div r21.w, r23.w, r21.w
        movc r16.w, r22.w, r21.w, r16.w
        movc r31.x, r20.w, r16.w, r19.w
      endif 
      mul r16.w, cb3[r3.w + 0].w, cb3[r3.w + 0].w
      mul r16.w, r16.w, r17.w
      mad r16.w, -r16.w, r16.w, l(1.000000)
      max r16.w, r16.w, l(0.000000)
      mul r31.z, r16.w, r16.w
    else 
      dp3_sat r24.x, r8.xyzx, r28.xyzx
      mul r29.xyz, r27.xyzx, cb3[r3.w + 0].wwww
      dp3 r16.w, r29.xyzx, r29.xyzx
      min r16.w, r16.w, l(1.000000)
      add r16.w, -r16.w, l(1.000000)
      log r16.w, r16.w
      mul r16.w, r16.w, cb3[r3.w + 1024].w
      exp r24.z, r16.w
      mov r31.xyz, r24.xyzx
    endif 
    dp3 r16.w, r28.xyzx, cb2[r3.w + 0].xyzx
    add r16.w, r16.w, -cb2[r3.w + 1024].x
    mul_sat r16.w, r16.w, cb2[r3.w + 1024].y
    mul r16.w, r16.w, r16.w
    movc r6.y, r6.y, r16.w, l(1.000000)
    lt r16.w, l(0.000000), r31.z
    lt r17.w, l(0.000000), r6.y
    and r16.w, r16.w, r17.w
    if_nz r16.w
      dp4 r16.w, cb2[r3.w + 2048].xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
      ftou r17.w, r16.w
      if_nz r17.w
        dp4 r17.w, r7.xyzw, cb2[r3.w + 2048].xyzw
        add r17.w, r17.w, l(-1.000000)
        mad r24.xz, r16.wwww, r17.wwww, l(1.000000, 0.000000, 1.000000, 0.000000)
      else 
        mov r24.xz, r11.xxyx
      endif 
      mul r16.w, r31.z, r31.y
      mul r6.y, r6.y, r16.w
      mul r24.xw, r24.xxxz, r6.yyyy
      max r28.xyz, r25.xyzx, |cb2[r3.w + 0].wwww|
      mul r29.xyz, r28.xyzx, r28.xyzx
      mad r6.y, -r28.y, r28.y, l(1.000000)
      sqrt r16.w, r6.y
      mad r16.w, r28.y, r28.y, r16.w
      mul r16.w, r6.y, r16.w
      mad r28.yzw, r16.wwww, r13.xxyz, r8.xxyz
      dp3 r16.w, r28.yzwy, r28.yzwy
      rsq r16.w, r16.w
      mul r28.yzw, r16.wwww, r28.yyzw
      lt r30.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb2[r3.w + 1024].wzww
      if_nz r30.x
        mul_sat r16.w, r18.x, cb2[r3.w + 1024].w
        mad r30.xzw, r16.wwww, l(0.500000, 0.000000, 0.500000, 0.500000), r29.xxyz
        min r30.xzw, r30.xxzw, l(1.000000, 0.000000, 1.000000, 1.000000)
        div r30.xzw, r29.xxyz, r30.xxzw
        mul r31.yzw, cb2[r3.w + 0].xxyz, cb2[r3.w + 1024].wwww
        mad r32.xyz, -r31.yzwy, l(0.500000, 0.500000, 0.500000, 0.000000), r27.xyzx
        dp3 r16.w, r28.yzwy, r31.yzwy
        mad r33.xyz, r16.wwww, r28.yzwy, -r31.yzwy
        dp3 r17.w, r32.xyzx, r33.xyzx
        mul r16.w, r16.w, r16.w
        mad r16.w, cb2[r3.w + 1024].w, cb2[r3.w + 1024].w, -r16.w
        div_sat r16.w, r17.w, r16.w
        mad r27.xyz, r16.wwww, r31.yzwy, r32.xyzx
      else 
        mov r30.xzw, l(1.000000,0,1.000000,1.000000)
      endif 
      if_nz r30.y
        mul_sat r16.w, r18.x, cb2[r3.w + 1024].z
        mad r31.yzw, r16.wwww, l(0.000000, 0.500000, 0.500000, 0.500000), r29.xxyz
        min r31.yzw, r31.yyzw, l(0.000000, 1.000000, 1.000000, 1.000000)
        div r29.xzw, r29.xxyz, r31.yyzw
        mul r29.xzw, r29.xxzw, r29.xxzw
        mul r30.xzw, r29.xxzw, r30.xxzw
        dp3 r16.w, r27.xyzx, r28.yzwy
        mad r28.yzw, r16.wwww, r28.yyzw, -r27.xxyz
        dp3 r16.w, r28.yzwy, r28.yzwy
        rsq r16.w, r16.w
        mul_sat r16.w, r16.w, cb2[r3.w + 1024].z
        mad r27.xyz, r28.yzwy, r16.wwww, r27.xyzx
      endif 
      dp3 r16.w, r27.xyzx, r27.xyzx
      rsq r16.w, r16.w
      mul r28.yzw, r16.wwww, r27.xxyz
      switch r2.w
        case l(0)
        case l(1)
        case l(2)
        case l(3)
        case l(5)
        case l(6)
        mul r29.xzw, r14.xxyz, r30.wwww
        break 
        case l(4)
        mad r31.yzw, r27.xxyz, r16.wwww, -r12.xxyz
        dp3 r17.w, r31.yzwy, r31.yzwy
        rsq r17.w, r17.w
        mul r31.yzw, r17.wwww, r31.yyzw
        dp3_sat r17.w, r8.xyzx, r28.yzwy
        dp3_sat r18.x, r8.xyzx, r31.yzwy
        dp3_sat r19.w, -r12.xyzx, r31.yzwy
        mul r20.w, r28.x, r28.x
        mul r20.w, r20.w, r20.w
        mad r21.w, r18.x, r20.w, -r18.x
        mad r21.w, r21.w, r18.x, l(1.000000)
        mul r21.w, r21.w, r21.w
        mul r21.w, r21.w, l(3.14159274)
        div r20.w, r20.w, r21.w
        mul r20.w, r30.x, r20.w
        mul r21.w, r19.w, r19.w
        mad r21.w, r21.w, l(4.000000), l(0.000010)
        rcp r21.w, r21.w
        add r19.w, -r19.w, l(1.000000)
        mul r22.w, r19.w, r19.w
        mul r22.w, r22.w, r22.w
        mul r23.w, r19.w, r22.w
        mad r19.w, -r22.w, r19.w, l(1.000000)
        mad r22.w, r19.w, l(0.040000), r23.w
        mul r25.w, r6.x, r22.w
        mul r20.w, r20.w, r21.w
        mad r21.w, -r22.w, r6.x, l(1.000000)
        mul r22.w, r29.y, r29.y
        mad r26.w, r18.x, r22.w, -r18.x
        mad r18.x, r26.w, r18.x, l(1.000000)
        mul r18.x, r18.x, r18.x
        mul r18.x, r18.x, l(3.14159274)
        div r18.x, r22.w, r18.x
        mul r18.x, r30.z, r18.x
        mul r22.w, r29.y, l(0.500000)
        mad r26.w, -r29.y, l(0.500000), l(1.000000)
        mad r27.w, r2.y, r26.w, r22.w
        mad r17.w, r17.w, r26.w, r22.w
        mul r17.w, r17.w, r27.w
        div r17.w, l(0.250000), r17.w
        mul r31.yzw, r10.xxyz, r19.wwww
        mad r31.yzw, r3.zzzz, r23.wwww, r31.yyzw
        mul r17.w, r17.w, r18.x
        mul r31.yzw, r31.yyzw, r17.wwww
        mad r31.yzw, r14.xxyz, r30.wwww, r31.yyzw
        mul r31.yzw, r21.wwww, r31.yyzw
        mad r29.xzw, r20.wwww, r25.wwww, r31.yyzw
        break 
        case l(8)
        mad r31.yzw, r27.xxyz, r16.wwww, -r12.xxyz
        dp3 r17.w, r31.yzwy, r31.yzwy
        rsq r17.w, r17.w
        mul r31.yzw, r17.wwww, r31.yyzw
        dp3_sat r17.w, r8.xyzx, r28.yzwy
        dp3_sat r18.x, r8.xyzx, r31.yzwy
        dp3_sat r19.w, -r12.xyzx, r31.yzwy
        add r19.w, -r19.w, l(1.000000)
        mul r20.w, r19.w, r19.w
        mul r20.w, r20.w, r20.w
        mul r21.w, r19.w, r20.w
        mad r19.w, -r20.w, r19.w, l(1.000000)
        mul r31.yzw, r15.xxyz, r19.wwww
        mad r31.yzw, r4.wwww, r21.wwww, r31.yyzw
        mul r20.w, r29.y, r29.y
        mad r22.w, -r20.w, r18.x, r18.x
        mad r22.w, r22.w, r18.x, r20.w
        mul r23.w, r20.w, l(4.000000)
        mad r25.w, r20.w, l(4.000000), l(1.000000)
        mul r25.w, r25.w, l(3.14159274)
        rcp r25.w, r25.w
        mul r23.w, r20.w, r23.w
        mul r22.w, r22.w, r22.w
        div r22.w, r23.w, r22.w
        add r22.w, r22.w, l(1.000000)
        mul r22.w, r22.w, r25.w
        add r23.w, r2.y, r17.w
        mad r23.w, -r17.w, r2.y, r23.w
        mul r23.w, r23.w, l(4.000000)
        rcp r23.w, r23.w
        mul r22.w, r22.w, r23.w
        mul r32.xyz, r10.xyzx, r19.wwww
        mad r32.xyz, r3.zzzz, r21.wwww, r32.xyzx
        mad r19.w, r20.w, r18.x, -r18.x
        mad r18.x, r19.w, r18.x, l(1.000000)
        mul r18.x, r18.x, r18.x
        mul r18.x, r18.x, l(3.14159274)
        div r18.x, r20.w, r18.x
        mul r18.x, r30.z, r18.x
        mad r19.w, r2.y, r6.y, r29.y
        mad r20.w, r17.w, r6.y, r29.y
        mul r20.w, r2.y, r20.w
        mad r17.w, r17.w, r19.w, r20.w
        rcp r17.w, r17.w
        mul r17.w, r17.w, r18.x
        mul r17.w, r17.w, l(0.500000)
        mul r32.xyz, r32.xyzx, r17.wwww
        mad r31.yzw, r22.wwww, r31.yyzw, -r32.xxyz
        mad r31.yzw, r15.wwww, r31.yyzw, r32.xxyz
        mad r29.xzw, r14.xxyz, r30.wwww, r31.yyzw
        break 
        case l(9)
        mad r31.yzw, r27.xxyz, r16.wwww, -r12.xxyz
        dp3 r17.w, r31.yzwy, r31.yzwy
        rsq r17.w, r17.w
        mul r31.yzw, r17.wwww, r31.yyzw
        dp3_sat r17.w, r8.xyzx, r28.yzwy
        dp3_sat r18.x, r8.xyzx, r31.yzwy
        dp3_sat r19.w, -r12.xyzx, r31.yzwy
        mul r20.w, r29.y, r29.y
        mad r21.w, r18.x, r20.w, -r18.x
        mad r18.x, r21.w, r18.x, l(1.000000)
        mul r18.x, r18.x, r18.x
        mul r18.x, r18.x, l(3.14159274)
        div r18.x, r20.w, r18.x
        mul r18.x, r30.z, r18.x
        mad r20.w, r2.y, r6.y, r29.y
        mad r21.w, r17.w, r6.y, r29.y
        mul r21.w, r2.y, r21.w
        mad r17.w, r17.w, r20.w, r21.w
        rcp r17.w, r17.w
        mul r17.w, r17.w, r18.x
        add r18.x, -r19.w, l(1.000000)
        mul r19.w, r18.x, r18.x
        mul r19.w, r19.w, r19.w
        mul r20.w, r18.x, r19.w
        mad r18.x, -r19.w, r18.x, l(1.000000)
        mul r31.yzw, r10.xxyz, r18.xxxx
        mad r31.yzw, r3.zzzz, r20.wwww, r31.yyzw
        mul r17.w, r17.w, l(0.500000)
        mul r29.xzw, r31.yyzw, r17.wwww
        break 
        default 
        mov r29.xzw, l(0,0,0,0)
        break 
      endswitch 
      switch r2.w
        case l(0)
        case l(1)
        case l(2)
        case l(3)
        case l(5)
        case l(6)
        mad r32.xyz, r27.xyzx, r16.wwww, -r12.xyzx
        dp3 r17.w, r32.xyzx, r32.xyzx
        rsq r17.w, r17.w
        mul r32.xyz, r17.wwww, r32.xyzx
        dp3_sat r17.w, r8.xyzx, r28.yzwy
        dp3_sat r18.x, r8.xyzx, r32.xyzx
        dp3_sat r19.w, -r12.xyzx, r32.xyzx
        mul r20.w, r29.y, r29.y
        mad r21.w, r18.x, r20.w, -r18.x
        mad r18.x, r21.w, r18.x, l(1.000000)
        mul r18.x, r18.x, r18.x
        mul r18.x, r18.x, l(3.14159274)
        div r18.x, r20.w, r18.x
        mul r18.x, r30.z, r18.x
        mad r20.w, r2.y, r6.y, r29.y
        mad r21.w, r17.w, r6.y, r29.y
        mul r21.w, r2.y, r21.w
        mad r17.w, r17.w, r20.w, r21.w
        rcp r17.w, r17.w
        mul r17.w, r17.w, r18.x
        add r18.x, -r19.w, l(1.000000)
        mul r19.w, r18.x, r18.x
        mul r19.w, r19.w, r19.w
        mul r20.w, r18.x, r19.w
        mad r18.x, -r19.w, r18.x, l(1.000000)
        mul r32.xyz, r10.xyzx, r18.xxxx
        mad r32.xyz, r3.zzzz, r20.wwww, r32.xyzx
        mul r17.w, r17.w, l(0.500000)
        mul r31.yzw, r32.xxyz, r17.wwww
        break 
        case l(4)
        mad r32.xyz, r27.xyzx, r16.wwww, -r12.xyzx
        dp3 r17.w, r32.xyzx, r32.xyzx
        rsq r17.w, r17.w
        mul r32.xyz, r17.wwww, r32.xyzx
        dp3_sat r17.w, r8.xyzx, r28.yzwy
        dp3_sat r18.x, r8.xyzx, r32.xyzx
        dp3_sat r19.w, -r12.xyzx, r32.xyzx
        mul r20.w, r28.x, r28.x
        mul r20.w, r20.w, r20.w
        mad r21.w, r18.x, r20.w, -r18.x
        mad r21.w, r21.w, r18.x, l(1.000000)
        mul r21.w, r21.w, r21.w
        mul r21.w, r21.w, l(3.14159274)
        div r20.w, r20.w, r21.w
        mul r20.w, r30.x, r20.w
        mul r21.w, r19.w, r19.w
        mad r21.w, r21.w, l(4.000000), l(0.000010)
        rcp r21.w, r21.w
        add r19.w, -r19.w, l(1.000000)
        mul r22.w, r19.w, r19.w
        mul r22.w, r22.w, r22.w
        mul r23.w, r19.w, r22.w
        mad r19.w, -r22.w, r19.w, l(1.000000)
        mad r22.w, r19.w, l(0.040000), r23.w
        mul r25.w, r6.x, r22.w
        mul r20.w, r20.w, r21.w
        mad r21.w, -r22.w, r6.x, l(1.000000)
        mul r22.w, r29.y, r29.y
        mad r26.w, r18.x, r22.w, -r18.x
        mad r18.x, r26.w, r18.x, l(1.000000)
        mul r18.x, r18.x, r18.x
        mul r18.x, r18.x, l(3.14159274)
        div r18.x, r22.w, r18.x
        mul r18.x, r30.z, r18.x
        mul r22.w, r29.y, l(0.500000)
        mad r26.w, -r29.y, l(0.500000), l(1.000000)
        mad r27.w, r2.y, r26.w, r22.w
        mad r17.w, r17.w, r26.w, r22.w
        mul r17.w, r17.w, r27.w
        div r17.w, l(0.250000), r17.w
        mul r32.xyz, r10.xyzx, r19.wwww
        mad r32.xyz, r3.zzzz, r23.wwww, r32.xyzx
        mul r17.w, r17.w, r18.x
        mul r32.xyz, r32.xyzx, r17.wwww
        mad r32.xyz, r14.xyzx, r30.wwww, r32.xyzx
        mul r32.xyz, r21.wwww, r32.xyzx
        mad r31.yzw, r20.wwww, r25.wwww, r32.xxyz
        break 
        case l(8)
        mad r32.xyz, r27.xyzx, r16.wwww, -r12.xyzx
        dp3 r17.w, r32.xyzx, r32.xyzx
        rsq r17.w, r17.w
        mul r32.xyz, r17.wwww, r32.xyzx
        dp3_sat r17.w, r8.xyzx, r28.yzwy
        dp3_sat r18.x, r8.xyzx, r32.xyzx
        dp3_sat r19.w, -r12.xyzx, r32.xyzx
        add r19.w, -r19.w, l(1.000000)
        mul r20.w, r19.w, r19.w
        mul r20.w, r20.w, r20.w
        mul r21.w, r19.w, r20.w
        mad r19.w, -r20.w, r19.w, l(1.000000)
        mul r32.xyz, r15.xyzx, r19.wwww
        mad r32.xyz, r4.wwww, r21.wwww, r32.xyzx
        mul r20.w, r29.y, r29.y
        mad r22.w, -r20.w, r18.x, r18.x
        mad r22.w, r22.w, r18.x, r20.w
        mul r23.w, r20.w, l(4.000000)
        mad r25.w, r20.w, l(4.000000), l(1.000000)
        mul r25.w, r25.w, l(3.14159274)
        rcp r25.w, r25.w
        mul r23.w, r20.w, r23.w
        mul r22.w, r22.w, r22.w
        div r22.w, r23.w, r22.w
        add r22.w, r22.w, l(1.000000)
        mul r22.w, r22.w, r25.w
        add r23.w, r2.y, r17.w
        mad r23.w, -r17.w, r2.y, r23.w
        mul r23.w, r23.w, l(4.000000)
        rcp r23.w, r23.w
        mul r22.w, r22.w, r23.w
        mul r33.xyz, r10.xyzx, r19.wwww
        mad r33.xyz, r3.zzzz, r21.wwww, r33.xyzx
        mad r19.w, r20.w, r18.x, -r18.x
        mad r18.x, r19.w, r18.x, l(1.000000)
        mul r18.x, r18.x, r18.x
        mul r18.x, r18.x, l(3.14159274)
        div r18.x, r20.w, r18.x
        mul r18.x, r30.z, r18.x
        mad r19.w, r2.y, r6.y, r29.y
        mad r20.w, r17.w, r6.y, r29.y
        mul r20.w, r2.y, r20.w
        mad r17.w, r17.w, r19.w, r20.w
        rcp r17.w, r17.w
        mul r17.w, r17.w, r18.x
        mul r17.w, r17.w, l(0.500000)
        mul r33.xyz, r33.xyzx, r17.wwww
        mad r32.xyz, r22.wwww, r32.xyzx, -r33.xyzx
        mad r32.xyz, r15.wwww, r32.xyzx, r33.xyzx
        mad r31.yzw, r14.xxyz, r30.wwww, r32.xxyz
        break 
        case l(9)
        mad r30.xyw, r27.xyxz, r16.wwww, -r12.xyxz
        dp3 r17.w, r30.xywx, r30.xywx
        rsq r17.w, r17.w
        mul r30.xyw, r17.wwww, r30.xyxw
        dp3_sat r17.w, r8.xyzx, r28.yzwy
        dp3_sat r18.x, r8.xyzx, r30.xywx
        dp3_sat r19.w, -r12.xyzx, r30.xywx
        mul r20.w, r29.y, r29.y
        mad r21.w, r18.x, r20.w, -r18.x
        mad r18.x, r21.w, r18.x, l(1.000000)
        mul r18.x, r18.x, r18.x
        mul r18.x, r18.x, l(3.14159274)
        div r18.x, r20.w, r18.x
        mul r18.x, r30.z, r18.x
        mad r20.w, r2.y, r6.y, r29.y
        mad r6.y, r17.w, r6.y, r29.y
        mul r6.y, r2.y, r6.y
        mad r6.y, r17.w, r20.w, r6.y
        rcp r6.y, r6.y
        mul r6.y, r6.y, r18.x
        add r17.w, -r19.w, l(1.000000)
        mul r18.x, r17.w, r17.w
        mul r18.x, r18.x, r18.x
        mul r19.w, r17.w, r18.x
        mad r17.w, -r18.x, r17.w, l(1.000000)
        mul r30.xyz, r10.xyzx, r17.wwww
        mad r30.xyz, r3.zzzz, r19.wwww, r30.xyzx
        mul r6.y, r6.y, l(0.500000)
        mul r31.yzw, r30.xxyz, r6.yyyy
        break 
        default 
        mov r31.yzw, l(0,0,0,0)
        break 
      endswitch 
      mul r6.y, r24.x, r31.x
      mul r30.xyz, r6.yyyy, cb3[r3.w + 1024].xyzx
      add r29.xyz, r29.xzwx, r31.yzwy
      switch r2.w
        case l(2)
        mad r32.xyz, r27.xyzx, r16.wwww, -r12.xyzx
        dp3 r6.y, r32.xyzx, r32.xyzx
        rsq r6.y, r6.y
        mul r32.xyz, r6.yyyy, r32.xyzx
        dp3_sat r6.y, r28.yzwy, r12.xyzx
        log r6.y, r6.y
        mul r6.y, r6.y, l(12.000000)
        exp r6.y, r6.y
        mul r6.y, r8.w, r6.y
        dp3 r17.w, r8.xyzx, r32.xyzx
        mad r17.w, r17.w, r6.w, -r6.w
        add_sat r17.w, r17.w, l(1.000000)
        mul r18.x, r17.w, l(0.159154937)
        mad r17.w, -r17.w, l(0.159154937), l(1.000000)
        mad r6.y, r6.y, r17.w, r18.x
        mul r31.xyz, r6.yyyy, r23.xyzx
        break 
        case l(3)
        dp3 r6.y, r8.xyzx, r28.yzwy
        mad_sat r16.x, r6.y, l(0.500000), l(0.500000)
        sample_l_indexable(texture2d)(float,float,float,float) r32.xyz, r16.xyxx, t7.xyzw, s1, l(0.000000)
        mul r31.xyz, r23.xyzx, r32.xyzx
        break 
        case l(6)
        dp3 r6.y, -r8.xyzx, r28.yzwy
        add r6.y, r6.y, l(0.500000)
        mul_sat r6.y, r6.y, l(0.444444448)
        dp3_sat r16.x, -r12.xyzx, -r28.yzwy
        mul r16.x, r16.x, r16.x
        mad r16.x, r16.x, l(-0.640000), l(1.000000)
        mul r16.x, r16.x, r16.x
        div r16.x, l(0.114591561), r16.x
        mul r6.y, r6.y, r16.x
        mul r31.xyz, r23.xyzx, r6.yyyy
        break 
        case l(7)
        dp3 r6.y, -r12.xyzx, r28.yzwy
        dp3 r16.x, r8.xyzx, r28.yzwy
        mad r17.w, |r16.x|, l(-0.156583), l(1.57079637)
        add r18.x, -|r16.x|, l(1.000000)
        sqrt r18.x, r18.x
        mul r19.w, r17.w, r18.x
        ge r20.w, r16.x, l(0.000000)
        mad r17.w, -r17.w, r18.x, l(3.14159274)
        movc r17.w, r20.w, r19.w, r17.w
        add r17.w, -r17.w, l(1.57079637)
        add r17.w, r10.w, -r17.w
        mul r17.w, |r17.w|, l(0.500000)
        sincos null, r17.w, r17.w
        mad r32.xyz, -r16.xxxx, r8.xyzx, r28.yzwy
        dp3 r18.x, r32.xyzx, r17.xyzx
        dp3 r19.w, r32.xyzx, r32.xyzx
        mad r19.w, r19.w, r11.z, l(0.000100)
        rsq r19.w, r19.w
        mul r20.w, r18.x, r19.w
        mad_sat r21.w, r20.w, l(0.500000), l(0.500000)
        sqrt r21.w, r21.w
        mad r22.w, |r20.w|, l(-0.156583), l(1.57079637)
        add r23.w, -|r20.w|, l(1.000000)
        sqrt r23.w, r23.w
        mul r24.x, r22.w, r23.w
        ge r25.w, r20.w, l(0.000000)
        mad r22.w, -r22.w, r23.w, l(3.14159274)
        movc r22.w, r25.w, r24.x, r22.w
        div r32.xy, l(1.200000, 0.800000, 0.000000, 0.000000), r17.wwww
        mad r23.w, r17.w, l(0.350000), r32.x
        mul r24.x, r13.w, r21.w
        mad r24.x, r24.x, l(-0.139543116), r14.w
        mul r25.w, r18.y, r21.w
        add r16.x, r0.x, r16.x
        add r24.x, -r24.x, r16.x
        mul r24.x, r24.x, r24.x
        mul r24.x, r24.x, l(-0.500000)
        mul r26.w, r25.w, r25.w
        div r24.x, r24.x, r26.w
        mul r24.x, r24.x, l(1.442695)
        exp r24.x, r24.x
        mul r25.w, r25.w, l(2.50662827)
        div r24.x, r24.x, r25.w
        mul r24.x, r21.w, r24.x
        mad_sat r6.y, r6.y, l(0.500000), l(0.500000)
        sqrt r6.y, r6.y
        add r6.y, -r6.y, l(1.000000)
        mul r25.w, r6.y, r6.y
        mul r25.w, r25.w, r25.w
        mul r6.y, r6.y, r25.w
        mad r6.y, r6.y, l(0.953479409), l(0.0465205684)
        mul r6.y, r24.x, r6.y
        mul r6.y, r9.w, r6.y
        add r32.xz, r16.xxxx, l(-0.035000, 0.000000, -0.140000, 0.000000)
        mul r32.xz, r32.xxzx, r32.xxzx
        mul r32.xz, r32.xxzx, l(-0.500000, 0.000000, -0.500000, 0.000000)
        div r16.x, r32.x, r16.z
        mul r16.x, r16.x, l(1.442695)
        exp r16.x, r16.x
        div r16.x, r16.x, r18.z
        div r24.x, l(1.000000, 1.000000, 1.000000, 1.000000), r23.w
        mad r25.w, r24.x, r24.x, l(1.000000)
        add r24.x, r24.x, r24.x
        mad r20.w, -r20.w, l(0.500000), l(0.500000)
        sqrt r20.w, r20.w
        mad r20.w, -r24.x, r20.w, r25.w
        rsq r20.w, r20.w
        mul r20.w, r20.w, r21.w
        div r21.w, r20.w, r23.w
        mad r23.w, |r21.w|, l(-0.156583), l(1.57079637)
        add r24.x, -|r21.w|, l(1.000000)
        sqrt r24.x, r24.x
        mul r25.w, r23.w, r24.x
        ge r21.w, r21.w, l(0.000000)
        mad r23.w, -r23.w, r24.x, l(3.14159274)
        movc r21.w, r21.w, r25.w, r23.w
        add r21.w, -r21.w, l(1.57079637)
        mad r20.w, -r20.w, r20.w, l(1.000000)
        max r20.w, r20.w, l(0.000000)
        sqrt r20.w, r20.w
        mad r20.w, -r17.w, r20.w, l(1.000000)
        mul r23.w, r20.w, r20.w
        mul r23.w, r23.w, r23.w
        mul r20.w, r20.w, r23.w
        mad r20.w, r20.w, l(0.953479409), l(0.0465205684)
        add r20.w, -r20.w, l(1.000000)
        mul r20.w, r20.w, r20.w
        sincos null, r21.w, r21.w
        mul r21.w, r21.w, l(0.500000)
        div r21.w, r21.w, r17.w
        mul r33.xyz, r19.xyzx, r21.wwww
        exp r33.xyz, r33.xyzx
        add r21.w, r22.w, l(-3.14159274)
        mul r21.w, r21.w, r21.w
        mul r21.w, r21.w, l(-3.17392921)
        exp r21.w, r21.w
        mul r16.x, r16.x, r21.w
        mul r16.x, r16.x, r20.w
        mul r16.x, r16.x, l(0.830000)
        mul r33.xyz, r33.xyzx, r16.xxxx
        mad r33.xyz, r6.yyyy, l(0.250000, 0.250000, 0.250000, 0.000000), r33.xyzx
        div r6.y, r32.z, r12.w
        mul r6.y, r6.y, l(1.442695)
        exp r6.y, r6.y
        div r6.y, r6.y, r18.w
        mad r16.x, -r17.w, l(0.500000), l(1.000000)
        mul r17.w, r16.x, r16.x
        mul r17.w, r17.w, r17.w
        mul r16.x, r16.x, r17.w
        mad r16.x, r16.x, l(0.953479409), l(0.0465205684)
        add r17.w, -r16.x, l(1.000000)
        mul r17.w, r17.w, r17.w
        mul r16.x, r16.x, r17.w
        mul r32.xyz, r19.xyzx, r32.yyyy
        exp r32.xyz, r32.xyzx
        mad r17.w, r18.x, r19.w, l(-1.000000)
        mul r17.w, r17.w, l(7.502014)
        exp r17.w, r17.w
        mul r6.y, r6.y, r17.w
        mul r6.y, r6.y, r16.x
        mul r6.y, r6.y, l(0.827605724)
        mad r32.xyz, r6.yyyy, r32.xyzx, r33.xyzx
        dp3 r6.y, r20.xyzx, r28.yzwy
        add r6.y, r6.y, l(1.000000)
        mul_sat r6.y, r6.y, l(0.250000)
        mul r6.y, r2.x, r6.y
        mul r6.y, r6.y, l(0.318309873)
        add r16.x, -r24.z, l(1.000000)
        mul r33.xyz, r21.xyzx, r16.xxxx
        exp r33.xyz, r33.xyzx
        mul r34.xyz, r5.xyzx, r6.yyyy
        mad r32.xyz, r34.xyzx, r33.xyzx, r32.xyzx
        min r31.xyz, -r32.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
        mov r31.xyz, -r31.xyzx
        break 
        case l(9)
        mad r27.xyz, r27.xyzx, r16.wwww, -r12.xyzx
        dp3 r6.y, r27.xyzx, r27.xyzx
        rsq r6.y, r6.y
        mul r27.xyz, r6.yyyy, r27.xyzx
        dp3_sat r6.y, -r12.xyzx, r27.xyzx
        add r6.y, -r6.y, l(1.000000)
        mul r16.x, r6.y, r6.y
        mul r16.x, r16.x, r16.x
        mul r16.w, r6.y, r16.x
        mad r6.y, -r16.x, r6.y, l(1.000000)
        mad r6.y, r6.y, r5.w, r16.w
        dp3_sat r16.x, r22.xyzx, r28.yzwy
        mad r24.xz, r16.xxxx, l(-11.000000, 0.000000, -11.000000, 0.000000), l(12.000000, 0.000000, 13.000000, 0.000000)
        mul r16.w, r24.z, l(0.200000)
        dp3_sat r17.w, r4.xyzx, r28.yzwy
        log r17.w, r17.w
        mul r17.w, r17.w, r24.x
        exp r17.w, r17.w
        mad r16.w, r16.w, r17.w, l(0.600000)
        dp3 r17.w, r8.xyzx, r28.yzwy
        add r17.w, r17.w, l(0.150000)
        mul_sat r17.w, r17.w, l(0.756143689)
        add r6.y, -r6.y, l(1.000000)
        mad r16.x, r16.x, r16.w, -r17.w
        mad r16.x, r6.z, r16.x, r17.w
        mul r6.y, r6.y, r16.x
        mul r27.xyz, r9.xyzx, r6.yyyy
        mul r31.xyz, r27.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
        break 
        default 
        mov r31.xyz, l(0,0,0,0)
        break 
      endswitch 
      mul r24.xzw, r24.wwww, cb3[r3.w + 1024].xxyz
      mul r24.xzw, r24.xxzw, r31.xxyz
      mad r24.xzw, r29.xxyz, r30.xxyz, r24.xxzw
    else 
      mov r24.xzw, l(0,0,0,0)
    endif 
    add r26.xyz, r24.xzwx, r26.xyzx
    iadd r2.z, r2.z, l(1)
  endloop 
  mul r0.x, r11.w, r11.w
  mul r0.x, r0.x, r0.x
  mov r2.xyz, r26.xyzx
  mov r3.x, l(0)
  loop 
    uge r3.z, r3.x, r3.y
    breakc_nz r3.z
    ld_structured r3.z, r3.x, l(0), g5.xxxx
    eq r3.w, l(0.000000), cb3[r3.z + 1024].w
    add r4.xyz, -r0.yzwy, cb3[r3.z + 0].xyzx
    dp3 r4.w, r4.xyzx, r4.xyzx
    add r5.x, r4.w, l(1.000000)
    div r5.x, l(1.000000, 1.000000, 1.000000, 1.000000), r5.x
    mul r5.y, cb3[r3.z + 0].w, cb3[r3.z + 0].w
    mul r5.y, r4.w, r5.y
    mad r5.y, -r5.y, r5.y, l(1.000000)
    max r5.y, r5.y, l(0.000000)
    mul r5.y, r5.y, r5.y
    mul r5.x, r5.y, r5.x
    mul r5.yzw, r4.xxyz, cb3[r3.z + 0].wwww
    dp3 r5.y, r5.yzwy, r5.yzwy
    min r5.y, r5.y, l(1.000000)
    add r5.y, -r5.y, l(1.000000)
    log r5.y, r5.y
    mul r5.y, r5.y, cb3[r3.z + 1024].w
    exp r5.y, r5.y
    movc r3.w, r3.w, r5.x, r5.y
    lt r5.x, l(0.000000), r3.w
    if_nz r5.x
      rsq r4.w, r4.w
      mul r5.xyz, r4.wwww, r4.xyzx
      dp3_sat r5.x, r8.xyzx, r5.xyzx
      mul r3.w, r11.x, r3.w
      mul r3.w, r3.w, r5.x
      mul r5.xyz, r3.wwww, cb3[r3.z + 1024].xyzx
      mad r4.xyz, r4.xyzx, r4.wwww, -r12.xyzx
      dp3 r3.z, r4.xyzx, r4.xyzx
      rsq r3.z, r3.z
      mul r4.xyz, r3.zzzz, r4.xyzx
      dp3_sat r3.z, r8.xyzx, r4.xyzx
      mad r3.w, r3.z, r0.x, -r3.z
      mad r3.z, r3.w, r3.z, l(1.000000)
      mul r3.z, r3.z, r3.z
      mul r3.z, r3.z, l(3.14159274)
      div r3.z, r0.x, r3.z
      mul r3.z, r3.z, l(0.250000)
      mad r4.xyz, r3.zzzz, r10.xyzx, r14.xyzx
      mul r4.xyz, r4.xyzx, r5.xyzx
    else 
      mov r4.xyz, l(0,0,0,0)
    endif 
    add r2.xyz, r2.xyzx, r4.xyzx
    iadd r3.x, r3.x, l(1)
  endloop 
else 
  mov r2.xyz, l(0,0,0,0)
endif 
ult r0.xy, vThreadID.xyxx, cb0[0].zwzz
and r0.x, r0.y, r0.x
if_nz r0.x
  ld_indexable(texture2d)(float,float,float,float) r0.xyzw, r1.xyzw, t8.xyzw
  mov r2.w, l(0)
  add r0.xyzw, r0.xyzw, r2.xyzw
  store_uav_typed u0.xyzw, r1.xyyy, r0.xyzw
endif 
ret 
// Approximately 0 instruction slots used
