// Light 3
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.7 on Sat Mar 31 10:21:08 2018
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float
// TEXCOORD                 0   xyzw        1     NONE   float   xy w
// TEXCOORD                 1   xy          2     NONE   float   xy
// TEXCOORD                 2   xyz         3     NONE   float   xyz
// SV_IsFrontFace           0   x           4    FFACE    uint
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_immediateConstantBuffer { { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 7500.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0},
                              { 30.000000, 0, 0, 0} }
dcl_constantbuffer cb0[74], immediateIndexed
dcl_constantbuffer cb2[53], immediateIndexed
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_texture2darray (float,float,float,float) t8
dcl_resource_texture2darray (float,float,float,float) t9
dcl_resource_structured t10, 76
dcl_resource_texture2d (float,float,float,float) t11
dcl_input_ps linear v1.xyw
dcl_input_ps linear v2.xy
dcl_input_ps linear v3.xyz
dcl_output o0.xyzw
//dcl_temps 23

dcl_temps 25
dcl_resource_texture2d (float,float,float,float) t125

div r0.xy, v1.xyxx, v1.wwww
div r0.zw, v2.xxxy, v1.wwww
min r1.xy, r0.xyxx, cb2[22].zwzz
sample_indexable(texture2d)(float,float,float,float) r1.z, r1.xyxx, t2.yzxw, s0
mul r1.xy, r0.zwzz, r1.zzzz
mov r1.w, l(1.000000)

// DHR ShaderRegex FIREBIRD ENGINE Lights Pattern 2:
ld_indexable(texture2d)(float,float,float,float) r24.xyzw, l(0, 0, 0, 0), t125.xyzw
add r24.w, r1.z, -r24.y
mul r24.w, r24.w, r24.x
mul r24.w, r24.w, cb2[21].x
add r1.x, r1.x, r24.w

dp4 r2.x, cb2[38].xyzw, r1.xyzw
dp4 r2.y, cb2[39].xyzw, r1.xyzw
dp4 r2.z, cb2[40].xyzw, r1.xyzw
dp4 r0.z, cb2[41].xyzw, r1.xyzw
div r2.xyz, r2.xyzx, r0.zzzz
mad r0.zw, r2.xxxy, l(0.000000, 0.000000, 0.500000, -0.500000), l(0.000000, 0.000000, 0.500000, 0.500000)
sample_l_indexable(texture2d)(float,float,float,float) r2.xy, r0.xyxx, t6.ywxz, s0, l(0.000000)
mul r2.yw, r2.yyyy, l(0.000000, 255.000000, 0.000000, 15.937500)
round_ni r2.w, r2.w
mad r3.z, -r2.w, l(16.000000), r2.y
add_sat r2.y, r2.x, l(-0.500000)
add r4.x, r2.y, r2.y
ftoi r2.y, r3.z
eq r2.w, r2.w, l(1.000000)
mov r4.y, icb[r2.y + 0].x
movc r4.xy, r2.wwww, l(1.000000,20.000000,0,0), r4.xyxx
div r2.y, r4.y, cb2[34].y
add r2.y, -r2.y, r2.z
add_sat r2.y, r2.y, cb2[35].y
add_sat r3.w, r2.z, cb2[35].y
mad r0.zw, cb2[37].xxxy, r0.zzzw, cb2[37].zzzw
add r3.w, -r3.w, l(1.000000)
add r2.y, -r2.y, l(1.000000)
mad r4.zw, r0.wwwz, cb2[34].wwwz, l(0.000000, 0.000000, -0.500000, -0.500000)
frc r4.zw, r4.zzzw
add r5.xz, -r4.wwzw, l(1.000000, 0.000000, 1.000000, 0.000000)
gather4_aoffimmi_indexable(-1,-1,0)(texture2d)(float,float,float,float) r6.xyzw, r0.zwzz, t11.xyzw, s0.x
mul r5.w, r5.z, r5.x
max r7.xyzw, r3.wwww, r6.xyzw
min r7.xyzw, r2.yyyy, r7.xyzw
mov r5.y, l(1.000000)
dp4 r7.x, r7.xyzw, r5.xyzw
gather4_aoffimmi_indexable(1,-1,0)(texture2d)(float,float,float,float) r8.xyzw, r0.zwzz, t11.xyzw, s0.x
mul r9.xy, r4.zwzz, r5.xzxx
max r10.xyzw, r3.wwww, r8.xyzw
min r10.xyzw, r2.yyyy, r10.xyzw
mov r11.x, l(1.000000)
mad r11.yw, r4.wwwz, l(0.000000, 1.000000, 0.000000, -1.000000), l(0.000000, 0.000000, 0.000000, 1.000000)
mov r11.z, r9.y
dp4 r7.y, r10.xyzw, r11.xyzw
add r7.x, r7.y, r7.x
gather4_aoffimmi_indexable(-1,1,0)(texture2d)(float,float,float,float) r10.xyzw, r0.zwzz, t11.xyzw, s0.x
max r12.xyzw, r3.wwww, r10.xyzw
min r12.xyzw, r2.yyyy, r12.xyzw
mad r9.yw, r4.zzzw, l(0.000000, 1.000000, 0.000000, -1.000000), l(0.000000, 0.000000, 0.000000, 1.000000)
mov r9.z, l(1.000000)
dp4 r7.y, r12.xyzw, r9.xyzw
add r7.x, r7.y, r7.x
gather4_aoffimmi_indexable(1,1,0)(texture2d)(float,float,float,float) r12.xyzw, r0.zwzz, t11.xyzw, s0.x
mul r13.y, r4.z, r4.w
max r14.xyzw, r3.wwww, r12.xyzw
min r14.xyzw, r2.yyyy, r14.xyzw
mov r13.xw, r9.yyyz
mov r13.z, r11.y
dp4 r0.z, r14.xyzw, r13.xyzw
add r0.z, r0.z, r7.x
mul r0.z, r0.z, l(0.111111112)
min r0.z, r0.z, l(1.000000)
add r0.z, -r0.z, l(1.000000)
add r0.z, r0.z, -cb2[35].y
mul r0.w, r4.x, r4.y
lt r2.y, l(0.000000), r0.w
add r0.z, -r0.z, r2.z
mul r0.z, r0.z, cb2[34].y
div_sat r0.z, r0.z, r0.w
add r0.z, -r0.z, l(1.000000)
and r0.z, r0.z, r2.y
dp3 r0.w, v3.xyzx, v3.xyzx
rsq r0.w, r0.w
mul r4.xyz, r0.wwww, v3.xyzx
sample_indexable(texture2d)(float,float,float,float) r7.xyzw, r0.xyxx, t0.xyzw, s0
sample_indexable(texture2d)(float,float,float,float) r14.xyzw, r0.xyxx, t1.xyzw, s0
mul r2.y, r14.w, l(255.000000)
mad r15.y, r7.w, l(768.000000), r2.y
mov r15.x, r7.z
mad r7.zw, r15.xxxy, l(0.000000, 0.000000, 2.000000, 0.00195503421), l(0.000000, 0.000000, -1.000000, -1.000000)
max r7.zw, r7.zzzw, l(0.000000, 0.000000, -1.000000, -1.000000)
min r7.zw, r7.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000)
add r15.xyz, -|r7.zwzz|, l(1.000000, 1.000000, 1.000000, 0.000000)
add r16.z, -|r7.w|, r15.x
lt r2.y, r16.z, l(0.000000)
ge r15.xw, r7.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000)
movc r15.xw, r15.xxxw, l(1.000000,0,0,1.000000), l(-1.000000,0,0,-1.000000)
mul r15.xy, r15.xwxx, r15.yzyy
movc r16.xy, r2.yyyy, r15.xyxx, r7.zwzz
dp4 r15.x, cb0[4].xyzw, r1.xyzw
dp4 r15.y, cb0[5].xyzw, r1.xyzw
dp4 r1.x, cb0[6].xyzw, r1.xyzw
sample_l_indexable(texture2d)(float,float,float,float) r15.xyz, r15.xyxx, t3.xyzw, s1, l(0.000000)
mov r1.y, l(0)
sample_l_indexable(texture2d)(float,float,float,float) r1.xyz, r1.yxyy, t4.xyzw, s1, l(0.000000)
mul r1.xyz, r1.xyzx, r15.xyzx
mul r15.xyz, r1.xyzx, cb0[17].xyzx
sample_indexable(texture2d)(float,float,float,float) r17.xyz, r0.xyxx, t5.xyzw, s0
mul r1.xyz, r1.xyzx, cb0[19].xyzx
sample_indexable(texture2d)(float,float,float,float) r7.zw, r0.xyxx, t6.ywxz, s0
if_nz r2.w
  ftou r1.w, r3.z
  ld_structured_indexable(structured_buffer, stride=76)(mixed,mixed,mixed,mixed) r18.xyzw, r1.w, l(0), t10.xyzw
  add r2.y, -r7.w, l(1.000000)
  mad r2.x, r2.x, l(2.000000), l(-1.000000)
  ld_structured_indexable(structured_buffer, stride=76)(mixed,mixed,mixed,mixed) r19.xyz, r1.w, l(16), t10.xyzx
  mad r3.w, r19.y, r2.x, l(1.000000)
  mul r20.xyz, r3.wwww, r14.xyzx
  mad r21.xyz, r17.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
  dp3 r3.w, r21.xyzx, r21.xyzx
  rsq r3.w, r3.w
  mul r21.xyz, r3.wwww, r21.xyzx
  dp3 r3.w, -cb0[15].xyzx, r21.xyzx
  max r3.w, r3.w, l(-1.000000)
  min r3.w, r3.w, l(1.000000)
  dp3 r4.w, r4.xyzx, r21.xyzx
  max r4.w, r4.w, l(-1.000000)
  min r4.w, r4.w, l(1.000000)
  mad r3.w, r19.z, r2.x, r3.w
  max r3.w, r3.w, l(-1.000000)
  min r3.w, r3.w, l(1.000000)
  add r14.w, -|r3.w|, l(1.000000)
  sqrt r14.w, r14.w
  mad r15.w, |r3.w|, l(-0.0187292993), l(0.074261)
  mad r15.w, r15.w, |r3.w|, l(-0.212114394)
  mad r15.w, r15.w, |r3.w|, l(1.57072878)
  mul r16.w, r14.w, r15.w
  mad r16.w, r16.w, l(-2.000000), l(3.14159274)
  lt r17.w, r3.w, -r3.w
  and r16.w, r16.w, r17.w
  mad r14.w, r15.w, r14.w, r16.w
  add r14.w, -r14.w, l(1.57079637)
  add r15.w, -|r4.w|, l(1.000000)
  sqrt r15.w, r15.w
  mad r16.w, |r4.w|, l(-0.0187292993), l(0.074261)
  mad r16.w, r16.w, |r4.w|, l(-0.212114394)
  mad r16.w, r16.w, |r4.w|, l(1.57072878)
  mul r17.w, r15.w, r16.w
  mad r17.w, r17.w, l(-2.000000), l(3.14159274)
  lt r19.y, r4.w, -r4.w
  and r17.w, r17.w, r19.y
  mad r15.w, r16.w, r15.w, r17.w
  add r15.w, -r15.w, l(1.57079637)
  add r14.w, -r14.w, r15.w
  mul r14.w, r14.w, l(0.500000)
  sincos null, r14.w, r14.w
  mad r19.yzw, -r3.wwww, r21.xxyz, -cb0[15].xxyz
  mad r21.xyz, -r4.wwww, r21.xyzx, r4.xyzx
  dp3 r15.w, r19.yzwy, r21.xyzx
  dp3 r16.w, r21.xyzx, r21.xyzx
  dp3 r17.w, r19.yzwy, r19.yzwy
  mul r16.w, r16.w, r17.w
  sqrt r16.w, r16.w
  div r16.w, l(1.000000, 1.000000, 1.000000, 1.000000), r16.w
  mul r15.w, r15.w, r16.w
  mad r16.w, r3.w, l(0.500000), l(0.500000)
  mad r4.w, r4.w, l(0.250000), l(0.250000)
  mad r3.x, r16.w, l(0.996093750), l(0.00195312500)
  mad r3.y, r4.w, l(0.996093750), l(0.000976562500)
  sample_l_indexable(texture2darray)(float,float,float,float) r19.yzw, r3.xyzx, t9.wxyz, s1, l(0.000000)
  ld_structured_indexable(structured_buffer, stride=76)(mixed,mixed,mixed,mixed) r21.xyz, r1.w, l(48), t10.xyzx
  mul r19.yzw, r19.yyzw, r21.xxyz
  mad r4.w, r15.w, l(0.250000), l(0.250000)
  mad r3.x, r14.w, l(0.996093750), l(0.00195312500)
  mad r3.y, r4.w, l(0.996093750), l(0.500976563)
  sample_l_indexable(texture2darray)(float,float,float,float) r21.xyz, r3.xyzx, t9.xyzw, s1, l(0.000000)
  ld_structured_indexable(structured_buffer, stride=76)(mixed,mixed,mixed,mixed) r22.xyz, r1.w, l(64), t10.xyzx
  mul r21.xyz, r21.xyzx, r22.xyzx
  dp3 r1.w, -cb0[15].xyzx, r4.xyzx
  max r1.w, r1.w, l(-1.000000)
  min r1.w, r1.w, l(1.000000)
  add r4.w, -r18.x, l(1.000277)
  add r14.w, r18.x, l(1.000277)
  div r4.w, r4.w, r14.w
  mul r14.w, r4.w, r4.w
  add r1.w, r1.w, l(1.000000)
  mul r1.w, r1.w, l(0.500000)
  sqrt r1.w, r1.w
  add r1.w, -r1.w, l(1.000000)
  mul r15.w, r1.w, r1.w
  mul r15.w, r15.w, r15.w
  mul r1.w, r1.w, r15.w
  mad r4.w, -r4.w, r4.w, l(1.000000)
  mad r1.w, r4.w, r1.w, r14.w
  mul r1.w, r19.y, r1.w
  mul r4.w, r21.x, r1.w
  mul r19.yz, r19.zzwz, r21.yyzy
  mul r18.xy, r18.yzyy, r19.yzyy
  add r14.w, -r0.z, l(1.000000)
  dp3 r15.w, -cb0[15].xyzx, r16.xyzx
  dp3 r16.w, r4.xyzx, r16.xyzx
  mul r16.w, r15.w, r16.w
  lt r16.w, r16.w, l(0.000000)
  mad r2.y, |r15.w|, r2.y, r14.w
  movc r2.y, r16.w, r2.y, r14.w
  mul r14.w, r19.x, r2.y
  log r19.xyw, r20.xyxz
  mul r19.xyw, r14.wwww, r19.xyxw
  exp r19.xyw, r19.xyxw
  add_sat r2.y, -r2.y, l(1.000000)
  min r19.xyw, r2.yyyy, r19.xyxw
  mul r19.xyw, r19.xyxw, cb0[73].xxxx
  mul r15.xyz, r15.xyzx, r19.xywx
  mul r1.xyz, r1.xyzx, r19.xywx
  mad r2.y, -r3.w, r3.w, l(1.000000)
  sqrt r2.y, r2.y
  mad r1.w, r1.w, r21.x, r18.x
  mad r1.w, r19.z, r18.z, r1.w
  add r1.w, -r1.w, l(1.000000)
  mul_sat r1.w, r1.w, r2.y
  add r2.y, r18.y, r18.x
  mad r1.w, r1.w, r18.w, r2.y
  mul r18.xyz, r20.xyzx, r1.wwww
  mul r19.xyz, r1.xyzx, r4.wwww
  mad r18.xyz, r18.xyzx, r15.xyzx, r19.xyzx
endif
if_z r2.w
  mad r2.yw, r7.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000)
  mul r2.yw, |r2.yyyw|, r2.yyyw
  mov r19.z, cb2[5].x
  mov r19.x, cb2[6].x
  mov r19.y, cb2[4].x
  mul r20.xyz, r16.yzxy, r19.xyzx
  mad r19.xyz, r19.zxyz, r16.zxyz, -r20.xyzx
  dp3 r1.w, r19.xyzx, r19.xyzx
  max r1.w, r1.w, l(1.175494351E-038)
  sqrt r1.w, r1.w
  div r19.xyz, r19.xyzx, r1.wwww
  mul r20.xyz, r16.yzxy, r19.zxyz
  mad r20.xyz, r19.yzxy, r16.zxyz, -r20.xyzx
  mul r20.xyz, r2.wwww, r20.xyzx
  mad r19.xyz, r19.xyzx, r2.yyyy, r20.xyzx
  mad r1.w, -r2.y, r2.y, l(1.000000)
  mad r1.w, -r2.w, r2.w, r1.w
  max r1.w, r1.w, l(0.000000)
  sqrt r1.w, r1.w
  mad r19.xyz, r1.wwww, r16.xyzx, r19.xyzx
  dp3 r1.w, r19.xyzx, r19.xyzx
  rsq r1.w, r1.w
  mul r19.xyz, r1.wwww, r19.xyzx
  add_sat r1.w, r2.x, r2.x
  add_sat r2.x, r2.x, l(-0.500000)
  mul r0.z, r0.z, r2.x
  mul r2.xyw, r1.wwww, r16.xyxz
  add r3.w, -r1.w, l(1.250000)
  min r3.w, r3.w, l(1.000000)
  mul r16.xyz, r3.wwww, r19.xyzx
  mad r2.xyw, r2.xyxw, l(0.750000, 0.750000, 0.000000, 0.750000), r16.xyxz
  dp3 r3.w, r2.xywx, r2.xywx
  rsq r3.w, r3.w
  mul r2.xyw, r2.xyxw, r3.wwww
  mul_sat r3.w, r17.z, l(3.000000)
  add r3.w, -r3.w, l(1.000000)
  dp3 r4.w, r19.xyzx, -cb0[15].xyzx
  dp3 r2.x, r2.xywx, -cb0[15].xyzx
  lt r2.y, l(0.000000), r0.z
  lt r2.w, r2.x, l(0.000000)
  and r2.y, r2.w, r2.y
  if_nz r2.y
    add r0.z, r0.z, r0.z
    mov_sat r4.w, -r4.w
    mov_sat r2.x, -r2.x
    add r2.y, -r7.z, l(1.000000)
    add r2.w, r4.w, l(0.750000)
    mul r2.y, r2.y, r2.y
    mad r2.y, -r2.y, l(0.500000), l(1.000000)
    mul_sat r2.y, r2.y, r2.w
    mul r3.x, r0.z, r2.y
    mov r3.y, l(0)
    sample_l_indexable(texture2darray)(float,float,float,float) r16.xyzw, r3.xyzx, t8.xyzw, s1, l(0.000000)
    mul r16.xyz, r16.wwww, r16.xyzx
    dp3 r0.z, r16.xyzx, r16.xyzx
    sqrt r0.z, r0.z
    mul r0.z, r0.z, r16.w
    mul r0.z, r0.z, l(0.200000)
    lt r2.y, r3.z, l(0.500000)
    dp3 r2.w, r14.xyzx, r14.xyzx
    rsq r2.w, r2.w
    mul_sat r20.xyz, r2.wwww, r14.xyzx
    mul r20.xyz, r20.xyzx, r20.xyzx
    mul r20.xyz, r16.xyzx, r20.xyzx
    movc r16.xyz, r2.yyyy, r20.xyzx, r16.xyzx
    mul r20.xyz, r0.zzzz, r14.xyzx
    mad r16.xyz, r16.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r20.xyzx
    mul r16.xyz, r15.xyzx, r16.xyzx
    mul r16.xyz, r2.xxxx, r16.xyzx
    mad r0.z, -r3.w, l(0.500000), l(1.000000)
    mul r16.xyz, r0.zzzz, r16.xyzx
    mul r18.xyz, r16.xyzx, l(0.318310142, 0.318310142, 0.318310142, 0.000000)
  else
    add r0.z, -r2.z, l(1.000000)
    lt r6.xyzw, r0.zzzz, r6.xyzw
    and r6.xyzw, r6.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    dp4 r2.y, r6.xyzw, r5.xyzw
    lt r5.xyzw, r0.zzzz, r8.xyzw
    and r5.xyzw, r5.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    dp4 r2.z, r5.xyzw, r11.xyzw
    add r2.y, r2.z, r2.y
    lt r5.xyzw, r0.zzzz, r10.xyzw
    and r5.xyzw, r5.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    dp4 r2.z, r5.xyzw, r9.xyzw
    add r2.y, r2.z, r2.y
    lt r5.xyzw, r0.zzzz, r12.xyzw
    and r5.xyzw, r5.xyzw, l(0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000)
    dp4 r0.z, r5.xyzw, r13.xyzw
    add r0.z, r0.z, r2.y
    mul r0.z, r0.z, l(0.111111112)
    min r0.z, r0.z, l(1.000000)
    add r0.z, -r0.z, l(1.000000)
    add r2.y, -cb0[17].w, l(1.000000)
    mad r0.z, cb0[17].w, r0.z, r2.y
    sample_l_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t7.xyzw, s1, l(0.000000)
    add r0.y, r17.z, l(-0.666700)
    mul_sat r0.y, r0.y, l(3.000000)
    mul r2.y, r7.w, r7.w
    mad r2.y, r17.x, r17.x, r2.y
    sqrt r2.y, r2.y
    min r2.y, r2.y, l(1.000000)
    mad r2.z, r2.y, r2.y, l(0.000010)
    mad r5.xyz, v3.xyzx, r0.wwww, -cb0[15].xyzx
    dp3 r0.w, r5.xyzx, r5.xyzx
    rsq r0.w, r0.w
    mul r5.xyz, r0.wwww, r5.xyzx
    dp3_sat r0.w, r19.xyzx, r5.xyzx
    mul r2.z, r2.z, r2.z
    mad r2.w, r0.w, r2.z, -r0.w
    mad r0.w, r2.w, r0.w, l(1.000000)
    mul r0.w, r0.w, r0.w
    div r0.w, r2.z, r0.w
    add r2.w, -r1.w, l(1.000000)
    mul r2.w, r2.w, l(0.500000)
    mad r2.w, r1.w, r7.z, r2.w
    mov_sat r4.w, r4.w
    add r6.y, r4.w, l(0.000010)
    dp3_sat r4.w, r19.xyzx, r4.xyzx
    add r4.w, r4.w, l(0.000010)
    mad r5.w, -r4.w, r2.z, r4.w
    mad r5.w, r5.w, r4.w, r2.z
    sqrt r5.w, r5.w
    mad r6.z, -r6.y, r2.z, r6.y
    mad r2.z, r6.z, r6.y, r2.z
    sqrt r2.z, r2.z
    mul r2.z, r2.z, r4.w
    mad r2.z, r6.y, r5.w, r2.z
    div r2.z, l(0.500000), r2.z
    dp3_sat r5.x, -cb0[15].xyzx, r5.xyzx
    add r5.y, -r0.y, l(1.000000)
    add r5.z, -r5.x, l(1.000000)
    mul r5.w, r5.z, r5.z
    mul r5.w, r5.w, r5.w
    mul r5.z, r5.w, r5.z
    lt r5.w, r0.y, l(0.996078432)
    mad r6.z, r5.z, l(0.960000), l(0.040000)
    mul r6.z, r5.y, r6.z
    and r5.w, r5.w, r6.z
    lt r6.z, l(0.00392156886), r0.y
    add r7.xyw, -r14.xyxz, l(1.000000, 1.000000, 0.000000, 1.000000)
    mad r7.xyw, r7.xyxw, r5.zzzz, r14.xyxz
    add r7.xyw, -r5.wwww, r7.xyxw
    max r7.xyw, r7.xyxw, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r7.xyw, r0.yyyy, r7.xyxw
    add_sat r8.xyz, r0.yyyy, r14.xyzx
    mul r7.xyw, r7.xyxw, r8.xyxz
    and r7.xyw, r6.zzzz, r7.xyxw
    add r7.xyw, r5.wwww, r7.xyxw
    mul r0.y, r0.w, r2.z
    mul r7.xyw, r7.xyxw, r0.yyyy
    min r7.xyw, r7.xyxw, l(3.141590, 3.141590, 0.000000, 3.141590)
    mul r0.xyw, r1.xyxz, r0.xxxx
    mul r0.xyw, r17.yyyy, r0.xyxw
    mul r0.xyw, r7.xyxw, r0.xyxw
    mul r1.xyz, r14.xyzx, r15.xyzx
    mul r1.xyz, r5.yyyy, r1.xyzx
    mov_sat r6.x, r2.x
    mul r2.z, r5.x, r5.x
    dp2 r2.y, r2.zzzz, r2.yyyy
    add r2.y, r2.y, l(-0.500000)
    add r3.x, -r6.x, l(1.000000)
    mul r5.x, r3.x, r3.x
    mul r5.x, r5.x, r5.x
    mul r5.x, r3.x, r5.x
    mad r5.x, r2.y, r5.x, l(1.000000)
    add r5.z, -r4.w, l(1.000000)
    max r5.z, r5.z, l(0.000000)
    mul r5.w, r5.z, r5.z
    mul r5.w, r5.w, r5.w
    mul r5.z, r5.w, r5.z
    mad r2.y, r2.y, r5.z, l(1.000000)
    mul r2.y, r2.y, r5.x
    mad r2.y, r2.y, l(0.496688753), l(0.250000)
    min r2.y, r2.y, l(1.000000)
    mul r1.xyz, r1.xyzx, r2.yyyy
    add r2.y, -r6.y, l(1.000000)
    lt r2.y, r7.z, r2.y
    mul r7.x, r2.w, r6.x
    add r2.w, -r7.z, l(1.000000)
    div_sat r2.w, r6.y, r2.w
    mul r2.w, r2.w, r2.w
    mul r7.y, r2.w, r6.y
    movc r2.yw, r2.yyyy, r7.xxxy, r6.xxxy
    mul r2.yw, r2.yyyw, l(0.000000, 0.318310142, 0.000000, 0.318310142)
    mov r3.y, l(0)
    sample_l_indexable(texture2darray)(float,float,float,float) r5.xzw, r3.xyzx, t8.xwyz, s1, l(0.000000)
    lt r3.x, r3.z, l(0.500000)
    dp3 r3.y, r14.xyzx, r14.xyzx
    rsq r3.y, r3.y
    mul_sat r6.xzw, r3.yyyy, r14.xxyz
    mul r6.xzw, r6.xxzw, r6.xxzw
    mul r6.xzw, r5.xxzw, r6.xxzw
    movc r3.xyz, r3.xxxx, r6.xzwx, r5.xzwx
    mul r3.xyz, r3.xyzx, l(0.100000, 0.100000, 0.100000, 0.000000)
    mad r5.x, -r3.w, l(0.500000), l(1.000000)
    mul r5.xzw, r1.xxyz, r5.xxxx
    add r6.x, r3.w, r3.w
    mad r6.z, -r3.w, l(2.000000), l(1.000000)
    max r6.z, r6.z, l(0.000000)
    mul r7.xyw, r0.xyxw, r6.zzzz
    mul r7.xyw, r2.wwww, r7.xyxw
    mad r5.xzw, r5.xxzw, r2.yyyy, r7.xxyw
    add_sat r2.x, r2.x, l(0.100000)
    mul r7.xyw, r15.xyxz, r1.wwww
    mul r7.xyw, r5.yyyy, r7.xyxw
    mul r3.xyz, r3.xyzx, r7.xywx
    mad r3.xyz, r3.xyzx, r2.xxxx, r5.xzwx
    mad r1.w, -r4.w, r4.w, l(1.000000)
    min r2.x, r6.x, l(1.000000)
    mul r2.x, r1.w, r2.x
    mul r2.x, r2.w, r2.x
    mul r0.xyw, r0.xyxw, r2.xxxx
    mad r0.xyw, r2.zzzz, r0.xyxw, r3.xyxz
    mul r2.x, r3.w, r6.y
    mul r1.xyz, r1.xyzx, r2.xxxx
    mul r1.xyz, r1.wwww, r1.xyzx
    dp3 r1.w, -cb0[15].xyzx, r4.xyzx
    mov_sat r1.w, -r1.w
    add_sat r1.w, r1.w, r7.z
    mad r0.xyw, r1.xyxz, r1.wwww, r0.xyxw
    mul r18.xyz, r0.zzzz, r0.xywx
  endif
endif
mov o0.xyz, r18.xyzx
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
