// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Sat Oct 19 15:24:32 2024
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                10   xyzw        0     NONE   float
// TEXCOORD                11   xyzw        1     NONE   float
// TEXCOORD                 2   xyzw        2     NONE   float   xyzw
// TEXCOORD                 3   xyzw        3     NONE   float   xy
// PARTICLE_POSITION        0   xyzw        4     NONE   float
// PARTICLE_VELOCITY        0   xyzw        5     NONE   float
// VELOCITY_PREV_POS        0   xyzw        6     NONE   float   xyzw
// SV_Position              0   xyzw        7      POS   float   xyzw
// SV_IsFrontFace           0   x           8    FFACE    uint
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                4   xyzw        4   TARGET   float   xyzw
// SV_DepthLessEqual        0    N/A oDepthLE  DEPTHLE   float    YES
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[154], immediateIndexed
dcl_constantbuffer CB1[27], immediateIndexed
dcl_constantbuffer CB2[8], immediateIndexed
dcl_constantbuffer CB3[17], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, 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_input_ps linear v2.xyzw
dcl_input_ps linear v3.xy
dcl_input_ps linear v6.xyzw
dcl_input_ps_siv linear noperspective centroid v7.xyzw, position
dcl_output o0.xyzw
dcl_output o4.xyzw
dcl_output oDepthLE
dcl_temps 28
dcl_resource_buffer (float,float,float,float) t125
ld_indexable(buffer)(float,float,float,float) r14.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(buffer)(float,float,float,float) r13.xyzw, l(2, 0, 0, 0), t125.xyzw
mov r22.xy, v7.xyxx
mul r23.xyzw, v7.yyyy, cb0[49].xyzw
mad r23.xyzw, r22.xxxx, cb0[48].xyzw, r23.xyzw
mad r23.xyzw, v7.zzzz, cb0[50].xyzw, r23.xyzw
add r23.xyzw, r23.xyzw, cb0[51].xyzw
mul r24.x, l(0.500000), cb0[129].x
mad r24.y, r23.w, r14.y, l(-1.000000)
mul r24.y, r24.y, r24.x
mad r22.x, r14.x, r24.y, r22.x
add [precise(xy)] r20.xy, r22.xyxx, -cb0[128].xyxx
add [precise(xy)] r0.xy, v7.xyxx, -cb0[128].xyxx
mul [precise(zw)] r0.zw, r20.xxxy, cb0[129].zzzw
add [precise(zw)] r0.zw, r0.zzzw, l(0.000000, 0.000000, -0.500000, -0.500000)
mul [precise(xy)] r1.xy, r0.zwzz, l(2.000000, -2.000000, 0.000000, 0.000000)
mov [precise(z)] r1.z, v7.z
mov [precise(w)] r1.w, l(1.000000)
mul [precise] r2.xyzw, r1.xyzw, v7.wwww
mul r0.z, cb0[143].y, cb3[1].w
frc r1.x, r0.z
mul r0.z, cb0[143].y, cb3[2].x
frc r1.y, r0.z
div [precise(zw)] r0.zw, r2.xxxy, r2.wwww
add [precise(zw)] r0.zw, r0.zzzw, -cb2[7].xxxy
mul [precise(zw)] r0.zw, r0.zzzw, cb2[7].zzzw
add [precise(zw)] r0.zw, r0.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
mul [precise(zw)] r0.zw, r0.zzzw, cb3[2].yyyy
mul r3.xy, r0.zwzz, cb3[3].xyxx
mad r1.xy, r3.xyxx, cb3[3].wwww, r1.xyxx
sample_b_indexable(texture2d)(float,float,float,float) r1.xyz, r1.xyxx, t0.xyzw, s0, cb0[144].x
sample_b_indexable [precise(x)](texture2d)(float,float,float,float) r3.x, v3.xyxx, t1.xyzw, s1, cb0[144].x
mul [precise(y)] r3.y, cb0[143].y, cb3[4].w
frc [precise(x)] r4.x, r3.y
mul [precise(y)] r3.y, cb0[143].y, cb3[5].x
frc [precise(y)] r4.y, r3.y
mul [precise(yz)] r3.yz, r0.zzwz, cb3[6].xxyx
mul [precise(yz)] r3.yz, r3.yyzy, cb3[3].wwww
add [precise(xy)] r4.xy, r3.yzyy, r4.xyxx
sample_b_indexable [precise(w)](texture2d)(float,float,float,float) r3.w, r4.xyxx, t2.yzwx, s2, cb0[144].x
mul [precise(xy)] r4.xy, cb0[143].yyyy, cb3[7].zwzz
frc [precise(xy)] r4.xy, r4.xyxx
add [precise(yz)] r3.yz, r3.yyzy, r4.xxyx
sample_b_indexable [precise(y)](texture2d)(float,float,float,float) r3.y, r3.yzyy, t2.yxzw, s2, cb0[144].x
add [precise(y)] r3.y, r3.y, r3.w
mul [precise(z)] r3.z, v2.w, cb3[8].x
mul [precise(y)] r3.y, r3.z, r3.y
lt [precise(z)] r3.z, cb0[35].w, l(1.000000)
mul [precise(xy)] r4.xy, r2.zzzz, cb0[71].xzxx
add [precise(w)] r3.w, r4.x, cb0[71].y
add [precise(x)] r4.x, r4.y, -cb0[71].w
div [precise(x)] r4.x, l(1.000000, 1.000000, 1.000000, 1.000000), r4.x
add [precise(w)] r3.w, r3.w, r4.x
movc [precise(z)] r3.z, r3.z, r2.w, r3.w
mul [precise(w)] r3.w, r3.z, l(0.100000)
mul_sat [precise(w)] r3.w, r3.w, cb3[8].z
mul [precise(y)] r3.y, r3.w, r3.y
sample_b_indexable [precise(y)](texture2d)(float,float,float,float) r3.y, r3.yyyy, t3.yxzw, s3, cb0[144].x
mul [precise(y)] r3.y, r3.y, r3.x
ge [precise(x)] r4.x, l(0.000000), r3.y
log [precise(y)] r4.y, r3.y
mul [precise(y)] r4.y, r4.y, cb3[8].w
exp [precise(y)] r4.y, r4.y
mul [precise(y)] r4.y, r4.y, cb3[9].x
movc [precise(x)] r4.x, r4.x, l(0), r4.y
add r1.xyz, r1.xyzx, r4.xxxx
mov_sat r4.xyz, r1.xyzx
add r4.xyz, -r1.xyzx, r4.xyzx
mad r1.xyz, cb3[9].zzzz, r4.xyzx, r1.xyzx
mul r4.xyz, v2.xyzx, cb3[9].xxxx
mov_sat r5.xyz, r4.xyzx
mad r5.xyz, -v2.xyzx, cb3[9].xxxx, r5.xyzx
mad r4.xyz, cb3[9].zzzz, r5.xyzx, r4.xyzx
mul [precise(xy)] r5.xy, cb0[143].yyyy, cb3[10].zwzz
frc [precise(xy)] r5.xy, r5.xyxx
mul [precise(zw)] r0.zw, r0.zzzw, cb3[11].zzzw
mul [precise(zw)] r0.zw, r0.zzzw, cb3[3].wwww
add [precise(xy)] r5.xy, r0.zwzz, r5.xyxx
sample_b_indexable [precise(w)](texture2d)(float,float,float,float) r4.w, r5.xyxx, t4.yzwx, s4, cb0[144].x
mul [precise(xy)] r5.xy, cb0[143].yyyy, cb3[13].xyxx
frc [precise(xy)] r5.xy, r5.xyxx
add [precise(zw)] r0.zw, r0.zzzw, r5.xxxy
sample_b_indexable [precise(z)](texture2d)(float,float,float,float) r0.z, r0.zwzz, t4.xzyw, s4, cb0[144].x
add [precise(z)] r0.z, r0.z, r4.w
mul [precise(w)] r0.w, v2.w, cb3[13].z
mul [precise(z)] r0.z, r0.w, r0.z
mul [precise(z)] r0.z, r3.w, r0.z
sample_b_indexable [precise(z)](texture2d)(float,float,float,float) r0.z, r0.zzzz, t1.yzxw, s1, cb0[144].x
mul [precise(z)] r0.z, r3.x, r0.z
add [precise(z)] r0.z, r3.y, r0.z
ge [precise(w)] r0.w, l(0.000000), r0.z
log [precise(x)] r3.x, r0.z
mul [precise(x)] r3.x, r3.x, cb3[13].w
exp [precise(x)] r3.x, r3.x
round_pi [precise(x)] r3.x, r3.x
movc [precise(w)] r0.w, r0.w, l(0), r3.x
add r3.xyw, -r4.xyxz, v2.xyxz
mad r3.xyw, r0.wwww, r3.xyxw, r4.xyxz
mul r4.xyz, r1.xyzx, r3.xywx
mad r1.xyz, -r1.xyzx, r3.xywx, cb3[14].yzwy
mad r1.xyz, cb3[14].xxxx, r1.xyzx, r4.xyzx
mul [precise(z)] r0.z, r0.z, v2.w
add [precise(x)] r3.x, -v2.w, l(1.000000)
mul [precise(w)] r0.w, r0.w, r3.x
add [precise(w)] r0.w, r0.w, v2.w
add [precise(x)] r3.x, -r0.z, l(0.080000)
lt [precise(x)] r3.x, l(0.000010), |r3.x|
ge [precise(z)] r0.z, l(0.080000), r0.z
movc [precise(z)] r0.z, r0.z, l(0), r0.w
and [precise(z)] r0.z, r0.z, r3.x
add r0.w, r3.z, -cb3[15].x
mul_sat r0.w, r0.w, cb3[15].z
add r0.xy, r0.xyxx, cb0[153].xxxx
ftou r0.xy, r0.xyxx
ishl r0.y, r0.y, l(1)
iadd r0.x, r0.y, r0.x
udiv null, r0.x, r0.x, l(5)
utof r0.x, r0.x
mad r0.x, r0.x, l(0.166666672), r0.w
add r0.x, r0.x, l(-0.500000)
mul r0.x, r0.x, r0.z
add [precise(y)] r0.y, r2.w, cb3[16].y
div [precise(y)] r0.y, r2.z, r0.y
min [precise(y)] r0.y, r0.y, v7.z
mul [precise(z)] r0.z, r2.w, r0.y
add [precise(z)] r0.z, -r0.z, r2.z
div [precise(z)] r0.z, r0.z, r0.y
mad r0.x, r0.x, cb3[15].w, l(-0.333300)
lt r0.x, r0.x, l(0.000000)
discard_nz r0.x
and r0.x, cb1[0].x, l(32)
if_nz r0.x
  mad r0.x, r1.w, v7.w, r0.z
  add r0.w, r0.z, v6.w
  mov r15.xyzw, r2.xyzw
  mov r16.xyzw, v6.xyzw
  add r17.y, r0.x, -r14.y
  mad r15.x, r14.x, r17.y, r15.x
  div r2.xyz, r15.xyzx, r0.xxxx
  add r2.xy, r2.xyxx, -cb0[125].xyxx
  add r17.y, r0.w, -r13.y
  mad r16.x, r13.x, r17.y, r16.x
  div r3.xyz, r16.xyzx, r0.wwww
  add r0.xw, r3.xxxy, -cb0[125].zzzw
  add r0.xw, -r0.xxxw, r2.xxxy
  add r1.w, r2.z, -r3.z
  lt r2.xy, l(0.000000, 0.000000, 0.000000, 0.000000), r0.xwxx
  lt r2.zw, r0.xxxw, l(0.000000, 0.000000, 0.000000, 0.000000)
  iadd r2.xy, -r2.xyxx, r2.zwzz
  itof r2.xy, r2.xyxx
  sqrt r0.xw, |r0.xxxw|
  mul r0.xw, r0.xxxw, r2.xxxy
  mad o4.xy, r0.xwxx, l(0.352846295, 0.352846295, 0.000000, 0.000000), l(0.499992371, 0.499992371, 0.000000, 0.000000)
  ushr r0.x, r1.w, l(16)
  utof r0.x, r0.x
  mad r0.x, r0.x, l(0.0000152590219), l(0.00000152590223)
  min o4.z, r0.x, l(1.000000)
  and r0.x, r1.w, l(0x0000ffff)
  utof r0.x, r0.x
  mad r0.x, r0.x, l(0.0000152590219), l(0.00000152590223)
  min o4.w, r0.x, l(1.000000)
else
  mov o4.xyzw, l(0,0,0,0)
endif
max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
lt [precise(x)] r0.x, l(0.000000), cb0[141].x
if_nz r0.x
  ld_indexable(buffer)(float,float,float,float) r6.xyzw, l(0, 0, 0, 0), t125.xyzw
  mov r7.x, v7.x
  mul [precise] r8.xyzw, v7.xxxx, cb0[48].xyzw
  mul [precise] r9.xyzw, v7.yyyy, cb0[49].xyzw
  add [precise] r8.xyzw, r8.xyzw, r9.xyzw
  mul [precise] r9.xyzw, v7.zzzz, cb0[50].xyzw
  add [precise] r8.xyzw, r8.xyzw, r9.xyzw
  add [precise] r8.xyzw, r8.xyzw, cb0[51].xyzw
  ge r12.w, cb0[129].x, l(20.000000)
  if_nz r12.w
    mul r12.x, l(0.500000), cb0[129].x
  else
    mul r12.x, l(0.500000), cb1[129].x
  endif
  mad r12.y, r8.w, r6.y, l(-1.000000)
  mul r12.y, r12.y, r12.x
  mad r7.x, r6.x, r12.y, r7.x
  mul [precise] r2.xyzw, r7.xxxx, cb0[48].xyzw
  mul [precise] r3.xyzw, v7.yyyy, cb0[49].xyzw
  add [precise] r2.xyzw, r2.xyzw, r3.xyzw
  mul [precise] r3.xyzw, v7.zzzz, cb0[50].xyzw
  add [precise] r2.xyzw, r2.xyzw, r3.xyzw
  add [precise] r2.xyzw, r2.xyzw, cb0[51].xyzw
  div [precise(xyz)] r2.xyz, r2.xyzx, r2.wwww
  add [precise(xyz)] r3.xyz, r2.xyzx, -cb0[76].xyzx
  ge [precise(x)] r0.x, cb0[35].w, l(1.000000)
  dp3 [precise(w)] r0.w, -r2.xyzx, -r2.xyzx
  rsq [precise(w)] r0.w, r0.w
  mul [precise(xyz)] r2.xyz, r0.wwww, -r2.xyzx
  movc [precise(xyz)] r2.xyz, r0.xxxx, -cb0[66].xyzx, r2.xyzx
  mul [precise(xzw)] r0.xzw, r0.zzzz, -r2.xxyz
  add [precise(xzw)] r0.xzw, r0.xxzw, r3.xxyz
  add [precise(xyz)] r2.xyz, cb0[64].xyzx, -cb1[1].xyzx
  add [precise(xyz)] r3.xyz, r0.xzwx, -cb1[19].xyzx
  mul [precise(xyz)] r2.xyz, r2.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000)
  add [precise(xyz)] r2.xyz, r3.xyzx, r2.xyzx
  add [precise(x)] r3.x, cb1[18].w, l(1.000000)
  add [precise(y)] r3.y, cb1[25].w, l(1.000000)
  add [precise(z)] r3.z, cb1[26].w, l(1.000000)
  lt [precise(xyz)] r2.xyz, r3.xyzx, |r2.xyzx|
  or [precise(w)] r1.w, r2.y, r2.x
  or [precise(w)] r1.w, r2.z, r1.w
  if_nz r1.w
    mul [precise(xyz)] r2.xyz, cb0[64].xyzx, l(0.577000, 0.577000, 0.577000, 0.000000)
    mul [precise(xzw)] r0.xzw, r0.xxzw, l(0.577000, 0.000000, 0.577000, 0.577000)
    add [precise(w)] r1.w, r2.y, r2.x
    add [precise(x)] r0.x, r0.z, r0.x
    add [precise(z)] r0.z, r2.z, r1.w
    add [precise(x)] r0.x, r0.w, r0.x
    mul [precise(xz)] r0.xz, r0.xxzx, l(0.002000, 0.000000, 0.002000, 0.000000)
    mul [precise(z)] r0.z, r0.z, l(2097152.000000)
    frc [precise(z)] r0.z, r0.z
    add [precise(x)] r0.x, r0.x, r0.z
    frc [precise(x)] r0.x, r0.x
    lt [precise(x)] r0.x, l(0.500000), r0.x
    movc [precise(xyz)] r1.xyz, r0.xxxx, l(0,1.000000,1.000000,0), l(1.000000,1.000000,0,0)
  endif
endif
mul o0.xyz, r1.xyzx, cb0[136].zzzz
mov o0.w, l(0)
mov [precise(x)] oDepthLE, r0.y
ret
// Approximately 0 instruction slots used
