// Tile Lights
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.2.57 on Sun Jun 04 18:42:21 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[58], immediateIndexed
dcl_constantbuffer cb2[33], immediateIndexed
dcl_constantbuffer cb3[3072], dynamicIndexed
dcl_constantbuffer cb4[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_uav_typed_texture2d (float,float,float,float) u0
dcl_input vThreadGroupID.xy
dcl_input vThreadIDInGroup.xy
dcl_input vThreadID.xy
//dcl_temps 34

dcl_temps 35



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

dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r35.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].zzwz, -cb0[0].xxyx
utof r0.yz, r0.yyzy
mov r1.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r0.w, r1.xyww, t4.yzwx
mad r0.w, r0.w, cb1[52].z, -cb1[52].w
div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
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[25].x
mul r4.x, r2.z, -cb1[26].y
mad r4.zw, cb1[27].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), cb4[r5.z + 0].w
  add r6.xyz, cb1[57].xyzx, cb4[r5.z + 0].xyzx
  mul r7.xyz, r6.yyyy, cb1[10].xyzx
  mad r6.xyw, r6.xxxx, cb1[9].xyxz, r7.xyxz
  mad r6.xyz, r6.zzzz, cb1[11].xyzx, r6.xywx
  add r2.xyz, r6.xyzx, cb1[12].xyzx
  
  //Fix Light 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), cb3[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)
  mul r0.yz, r0.wwww, r0.yyzy
  
  // Fix
  add r35.w, r0.w, -r35.y
  mad r0.y, -r35.w, r35.x, r0.y
  
  mul r3.xyzw, r0.zzzz, cb1[42].xyzw
  mad r3.xyzw, r0.yyyy, cb1[41].xyzw, r3.xyzw
  mad r3.xyzw, r0.wwww, cb1[43].xyzw, r3.xyzw
  add r3.xyzw, r3.xyzw, cb1[44].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.xyzw, r1.xyww, t2.xyzw
  ld_indexable(texture2d)(float,float,float,float) r6.xyzw, r1.xyww, t3.xyzw
  ftou r3.z, cb2[32].x
  iadd r3.w, r1.x, r1.y
  iadd r3.z, r3.w, r3.z
  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 r7.xyz, r3.wwww, r4.xyzx
  and r8.xyz, r0.xxxx, l(16, 32, 64, 0)
  movc r6.xyzw, r8.xxxx, l(0,0,0,0), r6.xyzw
  movc r0.x, r8.z, l(0), l(1.000000)
  movc r0.x, r8.y, r0.x, l(1.000000)
  ieq r4.w, r2.w, l(5)
  movc r8.xy, r3.zzzz, l(1.000000,0,0,0), l(0,1.000000,0,0)
  mul r8.z, r2.y, r8.y
  mov r9.xyz, r5.xyzx
  mov r9.w, r2.y
  movc r8.xyzw, r4.wwww, r8.xxxz, r9.xyzw
  mad r5.xyz, -r8.xyzx, r2.xxxx, r8.xyzx
  mul r2.y, r8.w, l(0.080000)
  mad r9.xyz, -r8.wwww, l(0.080000, 0.080000, 0.080000, 0.000000), r8.xyzx
  mad r9.xyz, r2.xxxx, r9.xyzx, r2.yyyy
  mad r5.xyz, r5.xyzx, cb2[5].wwww, cb2[5].xyzx
  mad r9.xyz, r9.xyzx, cb2[6].wwww, cb2[6].xyzx
  utof r10.xy, r1.xyxx
  add r10.xy, r10.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  mul r10.xy, r10.xyxx, cb2[3].zwzz
  sample_l_indexable(texture2d)(float,float,float,float) r10.x, r10.xyxx, t5.xyzw, s0, l(0.000000)
  add r11.xyz, r0.yzwy, -cb1[54].xyzx
  dp3 r2.y, r11.xyzx, r11.xyzx
  rsq r2.y, r2.y
  mul r11.xyz, r2.yyyy, r11.xyzx
  dp3 r2.y, r11.xyzx, r7.xyzx
  add r2.y, r2.y, r2.y
  mad r12.xyz, r7.xyzx, -r2.yyyy, r11.xyzx
  mad r12.xyz, -r4.xyzx, r3.wwww, r12.xyzx
  mul r13.xyz, r5.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
  dp3 r2.y, r7.xyzx, -r11.xyzx
  add r3.z, |r2.y|, l(0.000010)
  min r3.z, r3.z, l(1.000000)
  mul_sat r4.w, r9.y, l(50.000000)
  mov_sat r14.xyzw, r6.xyzw
  mul r7.w, r14.y, l(50.000000)
  min r7.w, r7.w, l(1.000000)
  mad r9.w, r6.w, l(-2.900000), l(3.000000)
  add r15.y, -r6.w, l(1.000000)
  max r16.xy, r2.zzzz, l(0.040000, 0.00392156886, 0.000000, 0.000000)
  min r2.z, r16.y, l(1.000000)
  add r10.z, -|r2.y|, l(1.000000)
  sqrt r10.z, r10.z
  mad r10.w, |r2.y|, l(-0.0187292993), l(0.074261)
  mad r10.w, r10.w, |r2.y|, l(-0.212114394)
  mad r10.w, r10.w, |r2.y|, l(1.57072878)
  mul r11.w, r10.z, r10.w
  mad r11.w, r11.w, l(-2.000000), l(3.14159274)
  lt r12.w, r2.y, -r2.y
  and r11.w, r11.w, r12.w
  mad r10.z, r10.w, r10.z, r11.w
  add r10.z, -r10.z, l(1.57079637)
  mad r17.xyz, -r2.yyyy, r7.xyzx, -r11.xyzx
  dp3 r10.w, r17.xyzx, r17.xyzx
  mul r2.z, r2.z, r2.z
  add r11.w, r2.z, r2.z
  mad r12.w, -r2.y, r2.y, l(1.000000)
  sqrt r12.w, r12.w
  mul r13.w, r2.y, l(0.00978400372)
  mul r18.xyzw, r2.zzzz, l(0.500000, 1.41421354, 1.25331414, 5.01325655)
  add r2.z, r8.w, r8.w
  mul r15.z, r18.x, r18.x
  log r19.xyz, r8.xyzx
  mul r11.w, r11.w, r11.w
  rsq r15.w, r10.w
  mul r20.xyz, r15.wwww, r17.xyzx
  dp3 r15.w, r8.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
  div r21.xyz, r8.xyzx, r15.wwww
  log r21.xyz, r21.xyzx
  sqrt r8.xyz, r8.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 r15.w, l(1.000000, 1.000000, 0.000000, 0.000000), |r22.xyxx|
  add r23.z, -r15.w, l(1.000000)
  lt r15.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, r15.wwww, r22.zwzz, r22.xyxx
  dp3 r15.w, r23.xyzx, r23.xyzx
  rsq r15.w, r15.w
  mul r22.xyz, r15.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 r16.z, r6.y
  mov r10.y, l(1.000000)
  mov r16.w, l(1.000000)
  mov r25.xyz, l(0,0,0,0)
  mov r3.w, l(0)
  loop 
    uge r6.y, r3.w, r3.x
    breakc_nz r6.y
    ld_structured r6.y, r3.w, l(0), g3.xxxx
    lt r15.w, l(0.000000), cb3[r6.y + 0].w
    eq r16.y, cb4[r6.y + 1024].w, l(0.000000)
    add r26.xyz, -r0.yzwy, cb4[r6.y + 0].xyzx
    dp3 r17.w, r26.xyzx, r26.xyzx
    rsq r18.x, r17.w
    mul r27.xyz, r18.xxxx, r26.xyzx
    add r19.w, r17.w, l(1.000000)
    rcp r28.y, r19.w
    dp3 r19.w, r7.xyzx, r27.xyzx
    mov_sat r24.x, r19.w
    lt r20.w, l(0.000000), cb3[r6.y + 1024].z
    mul r21.w, cb3[r6.y + 1024].z, cb3[r6.y + 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, r19.w, r21.w
    max r23.w, r19.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 r19.w, r22.w, r21.w, r19.w
    movc r28.x, r20.w, r19.w, r24.x
    mul r19.w, cb4[r6.y + 0].w, cb4[r6.y + 0].w
    mul r17.w, r17.w, r19.w
    mad r17.w, -r17.w, r17.w, l(1.000000)
    max r17.w, r17.w, l(0.000000)
    mul r28.z, r17.w, r17.w
    mul r29.xyz, r26.xyzx, cb4[r6.y + 0].wwww
    dp3 r17.w, r29.xyzx, r29.xyzx
    min r17.w, r17.w, l(1.000000)
    add r17.w, -r17.w, l(1.000000)
    log r17.w, r17.w
    mul r17.w, r17.w, cb4[r6.y + 1024].w
    exp r24.z, r17.w
    movc r24.xzw, r16.yyyy, r28.xxyz, r24.xxyz
    dp3 r16.y, r27.xyzx, cb3[r6.y + 0].xyzx
    add r16.y, r16.y, -cb3[r6.y + 1024].x
    mul_sat r16.y, r16.y, cb3[r6.y + 1024].y
    mul r16.y, r16.y, r16.y
    movc r15.w, r15.w, r16.y, l(1.000000)
    lt r16.y, l(0.000000), r24.w
    lt r17.w, l(0.000000), r15.w
    and r16.y, r16.y, r17.w
    if_nz r16.y
      dp4 r16.y, cb3[r6.y + 2048].xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
      ne r17.w, l(0.000000, 0.000000, 0.000000, 0.000000), r16.y
      if_nz r17.w
        dp4 r17.w, r0.xxxx, cb3[r6.y + 2048].xyzw
        add r17.w, r17.w, l(-1.000000)
        mad r27.xy, r16.yyyy, r17.wwww, l(1.000000, 1.000000, 0.000000, 0.000000)
      else 
        mov r27.xy, r10.xyxx
      endif 
      mul r16.y, r24.w, r24.z
      mul r15.w, r15.w, r16.y
      mul r24.zw, r27.xxxy, r15.wwww
      max r27.xzw, r16.zzxw, |cb3[r6.y + 0].wwww|
      mul r28.xyz, r27.xzwx, r27.xzwx
      mad r15.w, -r27.z, r27.z, l(1.000000)
      sqrt r16.y, r15.w
      mad r16.y, r27.z, r27.z, r16.y
      mul r16.y, r15.w, r16.y
      mad r29.xyz, r16.yyyy, r12.xyzx, r7.xyzx
      dp3 r16.y, r29.xyzx, r29.xyzx
      rsq r16.y, r16.y
      mul r29.xyz, r16.yyyy, r29.xyzx
      if_nz r20.w
        mul r16.y, r18.x, cb3[r6.y + 1024].z
        min r16.y, r16.y, l(1.000000)
        mad r30.xyz, r16.yyyy, l(0.500000, 0.500000, 0.500000, 0.000000), r28.xyzx
        min r30.xyz, r30.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
        div r28.xzw, r28.xxyz, r30.xxyz
        mul r28.xzw, r28.xxzw, r28.xxzw
        dp3 r16.y, r26.xyzx, r29.xyzx
        mad r29.xyz, r16.yyyy, r29.xyzx, -r26.xyzx
        dp3 r16.y, r29.xyzx, r29.xyzx
        rsq r16.y, r16.y
        mul r16.y, r16.y, cb3[r6.y + 1024].z
        min r16.y, r16.y, l(1.000000)
        mad r26.xyz, r29.xyzx, r16.yyyy, r26.xyzx
      else 
        mov r28.xzw, l(1.000000,0,1.000000,1.000000)
      endif 
      dp3 r16.y, r26.xyzx, r26.xyzx
      rsq r16.y, r16.y
      mul r29.xyz, r16.yyyy, r26.xyzx
      switch r2.w
        case l(0)
        case l(1)
        case l(2)
        case l(3)
        case l(5)
        case l(6)
        mul r30.xyz, r13.xyzx, r28.wwww
        break 
        case l(4)
        mad r31.xyz, r26.xyzx, r16.yyyy, -r11.xyzx
        dp3 r17.w, r31.xyzx, r31.xyzx
        rsq r17.w, r17.w
        mul r31.xyz, r17.wwww, r31.xyzx
        dp3_sat r17.w, r7.xyzx, r29.xyzx
        dp3_sat r18.x, r7.xyzx, r31.xyzx
        dp3_sat r19.w, -r11.xyzx, r31.xyzx
        mul r20.w, r27.x, r27.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, r28.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, r28.y, r28.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, r28.z, r18.x
        mul r22.w, r28.y, l(0.500000)
        mad r26.w, -r28.y, l(0.500000), l(1.000000)
        mad r27.z, r3.z, r26.w, r22.w
        mad r17.w, r17.w, r26.w, r22.w
        mul r17.w, r17.w, r27.z
        div r17.w, l(0.250000), r17.w
        mul r31.xyz, r9.xyzx, r19.wwww
        mad r31.xyz, r4.wwww, r23.wwww, r31.xyzx
        mul r17.w, r17.w, r18.x
        mul r31.xyz, r31.xyzx, r17.wwww
        mad r31.xyz, r13.xyzx, r28.wwww, r31.xyzx
        mul r31.xyz, r21.wwww, r31.xyzx
        mad r30.xyz, r20.wwww, r25.wwww, r31.xyzx
        break 
        case l(8)
        mad r31.xyz, r26.xyzx, r16.yyyy, -r11.xyzx
        dp3 r17.w, r31.xyzx, r31.xyzx
        rsq r17.w, r17.w
        mul r31.xyz, r17.wwww, r31.xyzx
        dp3_sat r17.w, r7.xyzx, r29.xyzx
        dp3_sat r18.x, r7.xyzx, r31.xyzx
        dp3_sat r19.w, -r11.xyzx, r31.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 r31.xyz, r14.xyzx, r19.wwww
        mad r31.xyz, r7.wwww, r21.wwww, r31.xyzx
        mul r20.w, r28.y, r28.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, r3.z, r17.w
        mad r23.w, -r17.w, r3.z, 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, r9.xyzx, r19.wwww
        mad r32.xyz, r4.wwww, 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, r28.z, r18.x
        mad r19.w, r3.z, r15.w, r28.y
        mad r20.w, r17.w, r15.w, r28.y
        mul r20.w, r3.z, 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.xyz, r22.wwww, r31.xyzx, -r32.xyzx
        mad r31.xyz, r14.wwww, r31.xyzx, r32.xyzx
        mad r30.xyz, r13.xyzx, r28.wwww, r31.xyzx
        break 
        case l(9)
        mad r31.xyz, r26.xyzx, r16.yyyy, -r11.xyzx
        dp3 r17.w, r31.xyzx, r31.xyzx
        rsq r17.w, r17.w
        mul r31.xyz, r17.wwww, r31.xyzx
        dp3_sat r17.w, r7.xyzx, r29.xyzx
        dp3_sat r18.x, r7.xyzx, r31.xyzx
        dp3_sat r19.w, -r11.xyzx, r31.xyzx
        mul r20.w, r28.y, r28.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, r28.z, r18.x
        mad r20.w, r3.z, r15.w, r28.y
        mad r21.w, r17.w, r15.w, r28.y
        mul r21.w, r3.z, 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.xyz, r9.xyzx, r18.xxxx
        mad r31.xyz, r4.wwww, r20.wwww, r31.xyzx
        mul r17.w, r17.w, l(0.500000)
        mul r30.xyz, r31.xyzx, r17.wwww
        break 
        default 
        mov r30.xyz, 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, r26.xyzx, r16.yyyy, -r11.xyzx
        dp3 r17.w, r32.xyzx, r32.xyzx
        rsq r17.w, r17.w
        mul r32.xyz, r17.wwww, r32.xyzx
        dp3_sat r17.w, r7.xyzx, r29.xyzx
        dp3_sat r18.x, r7.xyzx, r32.xyzx
        dp3_sat r19.w, -r11.xyzx, r32.xyzx
        mul r20.w, r28.y, r28.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, r28.z, r18.x
        mad r20.w, r3.z, r15.w, r28.y
        mad r21.w, r17.w, r15.w, r28.y
        mul r21.w, r3.z, 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, r9.xyzx, r18.xxxx
        mad r32.xyz, r4.wwww, r20.wwww, r32.xyzx
        mul r17.w, r17.w, l(0.500000)
        mul r31.xyz, r32.xyzx, r17.wwww
        break 
        case l(4)
        mad r32.xyz, r26.xyzx, r16.yyyy, -r11.xyzx
        dp3 r17.w, r32.xyzx, r32.xyzx
        rsq r17.w, r17.w
        mul r32.xyz, r17.wwww, r32.xyzx
        dp3_sat r17.w, r7.xyzx, r29.xyzx
        dp3_sat r18.x, r7.xyzx, r32.xyzx
        dp3_sat r19.w, -r11.xyzx, r32.xyzx
        mul r20.w, r27.x, r27.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, r28.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, r28.y, r28.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, r28.z, r18.x
        mul r22.w, r28.y, l(0.500000)
        mad r26.w, -r28.y, l(0.500000), l(1.000000)
        mad r27.x, r3.z, r26.w, r22.w
        mad r17.w, r17.w, r26.w, r22.w
        mul r17.w, r17.w, r27.x
        div r17.w, l(0.250000), r17.w
        mul r27.xzw, r9.xxyz, r19.wwww
        mad r27.xzw, r4.wwww, r23.wwww, r27.xxzw
        mul r17.w, r17.w, r18.x
        mul r27.xzw, r27.xxzw, r17.wwww
        mad r27.xzw, r13.xxyz, r28.wwww, r27.xxzw
        mul r27.xzw, r21.wwww, r27.xxzw
        mad r31.xyz, r20.wwww, r25.wwww, r27.xzwx
        break 
        case l(8)
        mad r27.xzw, r26.xxyz, r16.yyyy, -r11.xxyz
        dp3 r17.w, r27.xzwx, r27.xzwx
        rsq r17.w, r17.w
        mul r27.xzw, r17.wwww, r27.xxzw
        dp3_sat r17.w, r7.xyzx, r29.xyzx
        dp3_sat r18.x, r7.xyzx, r27.xzwx
        dp3_sat r19.w, -r11.xyzx, r27.xzwx
        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 r27.xzw, r14.xxyz, r19.wwww
        mad r27.xzw, r7.wwww, r21.wwww, r27.xxzw
        mul r20.w, r28.y, r28.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, r3.z, r17.w
        mad r23.w, -r17.w, r3.z, 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, r9.xyzx, r19.wwww
        mad r32.xyz, r4.wwww, 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, r28.z, r18.x
        mad r19.w, r3.z, r15.w, r28.y
        mad r20.w, r17.w, r15.w, r28.y
        mul r20.w, r3.z, 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 r27.xzw, r22.wwww, r27.xxzw, -r32.xxyz
        mad r27.xzw, r14.wwww, r27.xxzw, r32.xxyz
        mad r31.xyz, r13.xyzx, r28.wwww, r27.xzwx
        break 
        case l(9)
        mad r27.xzw, r26.xxyz, r16.yyyy, -r11.xxyz
        dp3 r17.w, r27.xzwx, r27.xzwx
        rsq r17.w, r17.w
        mul r27.xzw, r17.wwww, r27.xxzw
        dp3_sat r17.w, r7.xyzx, r29.xyzx
        dp3_sat r18.x, r7.xyzx, r27.xzwx
        dp3_sat r19.w, -r11.xyzx, r27.xzwx
        mul r20.w, r28.y, r28.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, r28.z, r18.x
        mad r20.w, r3.z, r15.w, r28.y
        mad r15.w, r17.w, r15.w, r28.y
        mul r15.w, r3.z, r15.w
        mad r15.w, r17.w, r20.w, r15.w
        rcp r15.w, r15.w
        mul r15.w, r15.w, 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 r27.xzw, r9.xxyz, r17.wwww
        mad r27.xzw, r4.wwww, r19.wwww, r27.xxzw
        mul r15.w, r15.w, l(0.500000)
        mul r31.xyz, r27.xzwx, r15.wwww
        break 
        default 
        mov r31.xyz, l(0,0,0,0)
        break 
      endswitch 
      mul r15.w, r24.z, r24.x
      mul r27.xzw, r15.wwww, cb4[r6.y + 1024].xxyz
      add r28.xyz, r30.xyzx, r31.xyzx
      switch r2.w
        case l(2)
        mad r31.xyz, r26.xyzx, r16.yyyy, -r11.xyzx
        dp3 r15.w, r31.xyzx, r31.xyzx
        rsq r15.w, r15.w
        mul r31.xyz, r15.wwww, r31.xyzx
        dp3_sat r15.w, r29.xyzx, r11.xyzx
        log r15.w, r15.w
        mul r15.w, r15.w, l(12.000000)
        exp r15.w, r15.w
        mul r15.w, r9.w, r15.w
        dp3 r17.w, r7.xyzx, r31.xyzx
        mad r17.w, r17.w, r6.w, -r6.w
        add_sat r17.w, r17.w, l(1.000000)
        mul r17.w, r5.w, r17.w
        mul r18.x, r17.w, l(0.159154937)
        mad r17.w, -r17.w, l(0.159154937), l(1.000000)
        mad r15.w, r15.w, r17.w, r18.x
        mul r30.xyz, r15.wwww, r23.xyzx
        break 
        case l(3)
        dp3 r15.w, r7.xyzx, r29.xyzx
        mad_sat r15.x, r15.w, l(0.500000), l(0.500000)
        sample_l_indexable(texture2d)(float,float,float,float) r31.xyz, r15.xyxx, t6.xyzw, s1, l(0.000000)
        mul r30.xyz, r23.xyzx, r31.xyzx
        break 
        case l(6)
        dp3 r15.x, -r7.xyzx, r29.xyzx
        add r15.x, r15.x, l(0.500000)
        mul_sat r15.x, r15.x, l(0.444444448)
        dp3_sat r15.w, -r11.xyzx, -r29.xyzx
        mul r15.w, r15.w, r15.w
        mad r15.w, r15.w, l(-0.640000), l(1.000000)
        mul r15.w, r15.w, r15.w
        div r15.w, l(0.114591561), r15.w
        mul r15.x, r15.w, r15.x
        mul r30.xyz, r23.xyzx, r15.xxxx
        break 
        case l(7)
        dp3 r15.x, -r11.xyzx, r29.xyzx
        dp3 r15.w, r7.xyzx, r29.xyzx
        add r17.w, -|r15.w|, l(1.000000)
        sqrt r17.w, r17.w
        mad r18.x, |r15.w|, l(-0.0187292993), l(0.074261)
        mad r18.x, r18.x, |r15.w|, l(-0.212114394)
        mad r18.x, r18.x, |r15.w|, l(1.57072878)
        mul r19.w, r17.w, r18.x
        mad r19.w, r19.w, l(-2.000000), l(3.14159274)
        lt r20.w, r15.w, -r15.w
        and r19.w, r19.w, r20.w
        mad r17.w, r18.x, r17.w, r19.w
        add r17.w, -r17.w, l(1.57079637)
        add r17.w, r10.z, -r17.w
        mul r17.w, |r17.w|, l(0.500000)
        sincos null, r17.w, r17.w
        mad r31.xyz, -r15.wwww, r7.xyzx, r29.xyzx
        dp3 r18.x, r31.xyzx, r17.xyzx
        dp3 r19.w, r31.xyzx, r31.xyzx
        mad r19.w, r19.w, r10.w, 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
        add r22.w, -|r20.w|, l(1.000000)
        sqrt r22.w, r22.w
        mad r23.w, |r20.w|, l(-0.0187292993), l(0.074261)
        mad r23.w, r23.w, |r20.w|, l(-0.212114394)
        mad r23.w, r23.w, |r20.w|, l(1.57072878)
        mul r24.x, r22.w, r23.w
        mad r24.x, r24.x, l(-2.000000), l(3.14159274)
        lt r24.z, r20.w, -r20.w
        and r24.x, r24.z, r24.x
        mad r22.w, r23.w, r22.w, r24.x
        div r24.xz, l(1.200000, 0.000000, 0.800000, 0.000000), r17.wwww
        mad r23.w, r17.w, l(0.350000), r24.x
        mul r24.x, r12.w, r21.w
        mad r24.x, r24.x, l(-0.139543116), r13.w
        mul r25.w, r18.y, r21.w
        add r15.w, r2.y, r15.w
        add r24.x, -r24.x, r15.w
        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 r15.x, r15.x, l(0.500000), l(0.500000)
        sqrt r15.x, r15.x
        add r15.x, -r15.x, l(1.000000)
        mul r25.w, r15.x, r15.x
        mul r25.w, r25.w, r25.w
        mul r15.x, r15.x, r25.w
        mad r15.x, r15.x, l(0.953479409), l(0.0465205684)
        mul r15.x, r24.x, r15.x
        mul r15.x, r2.z, r15.x
        add r31.xy, r15.wwww, l(-0.035000, -0.140000, 0.000000, 0.000000)
        mul r31.xy, r31.xyxx, r31.xyxx
        mul r31.xy, r31.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
        div r15.w, r31.x, r15.z
        mul r15.w, r15.w, l(1.442695)
        exp r15.w, r15.w
        div r15.w, r15.w, 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
        add r23.w, -|r21.w|, l(1.000000)
        sqrt r23.w, r23.w
        mad r24.x, |r21.w|, l(-0.0187292993), l(0.074261)
        mad r24.x, r24.x, |r21.w|, l(-0.212114394)
        mad r24.x, r24.x, |r21.w|, l(1.57072878)
        mul r25.w, r23.w, r24.x
        mad r25.w, r25.w, l(-2.000000), l(3.14159274)
        lt r21.w, r21.w, -r21.w
        and r21.w, r21.w, r25.w
        mad r21.w, r24.x, r23.w, r21.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 r31.xzw, r19.xxyz, r21.wwww
        exp r31.xzw, r31.xxzw
        add r21.w, r22.w, l(-3.14159274)
        mul r21.w, r21.w, l(4.80898333)
        exp r21.w, r21.w
        add r22.w, r21.w, l(1.000000)
        mul r22.w, r22.w, r22.w
        mul r22.w, r22.w, l(0.300000)
        div r21.w, r21.w, r22.w
        mul r15.w, r15.w, r21.w
        mul r15.w, r20.w, r15.w
        mul r31.xzw, r31.xxzw, r15.wwww
        mad r31.xzw, r15.xxxx, l(0.250000, 0.000000, 0.250000, 0.250000), r31.xxzw
        div r15.x, r31.y, r11.w
        mul r15.x, r15.x, l(1.442695)
        exp r15.x, r15.x
        div r15.x, r15.x, r18.w
        mad r15.w, -r17.w, l(0.500000), l(1.000000)
        mul r17.w, r15.w, r15.w
        mul r17.w, r17.w, r17.w
        mul r15.w, r15.w, r17.w
        mad r15.w, r15.w, l(0.953479409), l(0.0465205684)
        add r17.w, -r15.w, l(1.000000)
        mul r17.w, r17.w, r17.w
        mul r15.w, r15.w, r17.w
        mul r32.xyz, r19.xyzx, r24.zzzz
        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 r15.x, r15.x, r17.w
        mul r15.x, r15.x, r15.w
        mul r15.x, r15.x, l(0.827605724)
        mad r31.xyz, r15.xxxx, r32.xyzx, r31.xzwx
        dp3 r15.x, r20.xyzx, r29.xyzx
        add r15.x, r15.x, l(1.000000)
        mul_sat r15.x, r15.x, l(0.250000)
        mul r15.x, r2.x, r15.x
        mul r15.x, r15.x, l(0.318309873)
        add r15.w, -r27.y, l(1.000000)
        mul r32.xyz, r21.xyzx, r15.wwww
        exp r32.xyz, r32.xyzx
        mul r33.xyz, r8.xyzx, r15.xxxx
        mad r30.xyz, r33.xyzx, r32.xyzx, r31.xyzx
        break 
        case l(9)
        mad r26.xyz, r26.xyzx, r16.yyyy, -r11.xyzx
        dp3 r15.x, r26.xyzx, r26.xyzx
        rsq r15.x, r15.x
        mul r26.xyz, r15.xxxx, r26.xyzx
        dp3_sat r15.x, -r11.xyzx, r26.xyzx
        add r15.x, -r15.x, l(1.000000)
        mul r15.w, r15.x, r15.x
        mul r15.w, r15.w, r15.w
        mul r16.y, r15.x, r15.w
        mad r15.x, -r15.w, r15.x, l(1.000000)
        mad r15.x, r15.x, r8.w, r16.y
        dp3_sat r15.w, r22.xyzx, r29.xyzx
        mad r24.xz, r15.wwww, l(-11.000000, 0.000000, -11.000000, 0.000000), l(12.000000, 0.000000, 13.000000, 0.000000)
        mul r16.y, r24.z, l(0.200000)
        dp3_sat r17.w, r4.xyzx, r29.xyzx
        log r17.w, r17.w
        mul r17.w, r17.w, r24.x
        exp r17.w, r17.w
        mad r16.y, r16.y, r17.w, l(0.600000)
        dp3 r17.w, r7.xyzx, r29.xyzx
        add r17.w, r17.w, l(0.150000)
        mul_sat r17.w, r17.w, l(0.756143689)
        add r15.x, -r15.x, l(1.000000)
        mad r15.w, r15.w, r16.y, -r17.w
        mad r15.w, r6.z, r15.w, r17.w
        mul r15.x, r15.w, r15.x
        mul r26.xyz, r5.xyzx, r15.xxxx
        mul r30.xyz, r26.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
        break 
        default 
        mov r30.xyz, l(0,0,0,0)
        break 
      endswitch 
      mul r24.xzw, r24.wwww, cb4[r6.y + 1024].xxyz
      mul r24.xzw, r24.xxzw, r30.xxyz
      mad r24.xzw, r28.xxyz, r27.xxzw, r24.xxzw
    else 
      mov r24.xzw, l(0,0,0,0)
    endif 
    add r25.xyz, r24.xzwx, r25.xyzx
    iadd r3.w, r3.w, l(1)
  endloop 
  mul r0.x, r16.x, r16.x
  mul r0.x, r0.x, r0.x
  mov r2.xyz, r25.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, cb4[r3.z + 1024].w, l(0.000000)
    add r4.xyz, -r0.yzwy, cb4[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, cb4[r3.z + 0].w, cb4[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, cb4[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, cb4[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, r7.xyzx, r5.xyzx
      mul r3.w, r10.x, r3.w
      mul r3.w, r3.w, r5.x
      mul r5.xyz, r3.wwww, cb4[r3.z + 1024].xyzx
      mad r4.xyz, r4.xyzx, r4.wwww, -r11.xyzx
      dp3 r3.z, r4.xyzx, r4.xyzx
      rsq r3.z, r3.z
      mul r4.xyz, r3.zzzz, r4.xyzx
      dp3_sat r3.z, r7.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, r9.xyzx, r13.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 
  mov r2.w, l(0)
else 
  mov r2.xyzw, 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, t7.xyzw
  add r0.xyzw, r2.xyzw, r0.xyzw
  store_uav_typed u0.xyzw, r1.xyyy, r0.xyzw
endif 
ret 
// Approximately 0 instruction slots used
