// MANUALLY DUMPED [ShaderRegex\ShaderFixes\UE5_masterotaku.ini\_113_TAA_2] DBSZ Broly aura 2. Precise. Different fix for TAA.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Sat Oct 12 18:24:24 2024
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xyzw        0     NONE   float   xy
// TEXCOORD                 5   xyzw        1     NONE   float   xyzw
// PARTICLE_POSITION        0   xyzw        2     NONE   float
// PARTICLE_VELOCITY        0   xyzw        3     NONE   float
// TANGENTX                 0   xyzw        4     NONE   float
// TANGENTZ                 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[6], 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 v0.xy
dcl_input_ps linear v1.xyzw
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 31
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r11.xyzw, l(0, 0, 0, 0), t125.xyzw
mov r12.xy, v7.xyxx
mul r13.xyzw, v7.yyyy, cb0[49].xyzw
mad r13.xyzw, r12.xxxx, cb0[48].xyzw, r13.xyzw
//Pattern break.
mad r13.xyzw, v7.zzzz, cb0[50].xyzw, r13.xyzw
add r13.xyzw, r13.xyzw, cb0[51].xyzw
mul r14.x, l(0.5), cb0[129].x
mad r14.y, r13.w, r11.y, l(-1.0)
mul r14.y, r14.y, r14.x
mad r12.x, r11.x, r14.y, r12.x

add [precise(xy)] r20.xy, r12.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[5].xxxy
mul [precise(zw)] r0.zw, r0.zzzw, cb2[5].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, v0.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, v1.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, v1.xyzx, cb3[9].xxxx
mov_sat r5.xyz, r4.xyzx
mad r5.xyz, -v1.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, v1.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, v1.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, v1.w
add [precise(x)] r3.x, -v1.w, l(1.000000)
mul [precise(w)] r0.w, r0.w, r3.x
add [precise(w)] r0.w, r0.w, v1.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

ld_indexable(texture2d)(float,float,float,float) r7.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture2d)(float,float,float,float) r6.xyzw, l(2, 0, 0, 0), t125.xyzw
mov r8.xyzw, r2.xyzw
mov r9.xyzw, v6.xyzw
add r10.y, r0.x, -r7.y
mad r8.x, r7.x, r10.y, r8.x
div r2.xyz, r8.xyzx, r0.xxxx
  add r2.xy, r2.xyxx, -cb0[125].xyxx

//add r10.y, r0.w, -r6.y
add r10.y, r0.w, -r6.y
mad r9.x, r6.x, r10.y, r9.x
div r3.xyz, r9.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
  
  mul [precise] r22.xyzw, v7.xxxx, cb0[48].xyzw
  mul [precise] r23.xyzw, v7.yyyy, cb0[49].xyzw
  add [precise] r22.xyzw, r2.xyzw, r23.xyzw
  mul [precise] r23.xyzw, v7.zzzz, cb0[50].xyzw
  add [precise] r22.xyzw, r22.xyzw, r23.xyzw
  add [precise] r22.xyzw, r22.xyzw, cb0[51].xyzw
  
  mov r27.xy, v7.xyxx
  mad r26.x, r11.y, r22.w, l(-1.0)
  mul r26.x, r26.x, cb0[129].x
  mul r26.x, r26.x, l(0.5)
  mad r27.x, r11.x, r26.x, r27.x
  
  mul [precise] r2.xyzw, r27.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
