// MANUALLY DUMPED [ShaderRegex\ShaderFixes\UE5_masterotaku.ini\DecalsPS1Double][ShaderRegex\ShaderFixes\UE5_masterotaku.ini\TAAMainPS1] DBSZ decals PS double. Destroyed glacier mod map.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Thu May 29 23:34:09 2025
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xy
// SV_IsFrontFace           0   x           1    FFACE    uint
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                1   xyzw        1   TARGET   float   xyzw
// SV_Target                2   xyzw        2   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[13], immediateIndexed
dcl_constantbuffer CB1[145], immediateIndexed
dcl_constantbuffer CB2[2], immediateIndexed
dcl_constantbuffer CB3[3], 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_sampler s5, mode_default
dcl_sampler s6, 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_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_temps 24
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
mul r0.xy, v0.xyxx, cb1[132].zwzz
sample_l_indexable(texture2d)(float,float,float,float) r0.z, r0.xyxx, t1.yzxw, s1, l(0.000000)

ld_indexable(texture2d)(float,float,float,float) r12.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r10.xyzw, l(15, 0, 0, 0), t120.xyzw
ftou r11.xyzw, r10.xyzw
mov r13.x, v0.x
mov r13.y, v0.x
mul r14.xyzw, v0.yyyy, cb0[3].xyzw
mad r14.xyzw, r13.xxxx, cb0[2].xyzw, r14.xyzw
//Pattern break.
mad r14.xyzw, r0.zzzz, cb0[4].xyzw, r14.xyzw
add r14.xyzw, r14.xyzw, cb0[5].xyzw
mul r16.x, l(0.5), cb1[r11.x + 0].x
mad r16.y, r14.w, r12.y, l(-1.0)
mul r16.y, r16.y, r16.x
mad r13.x, r12.x, r16.y, r13.x
mad r13.y, -r12.x, r16.x, r13.y
mul r1.xyzw, v0.yyyy, cb0[3].xyzw
mad r1.xyzw, r13.xxxx, cb0[2].xyzw, r1.xyzw
//Pattern break.
mad r1.xyzw, r0.zzzz, cb0[4].xyzw, r1.xyzw
add r1.xyzw, r1.xyzw, cb0[5].xyzw
div r1.xyz, r1.xyzx, r1.wwww
add r2.xyz, r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
lt r2.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
or r0.w, r2.y, r2.x
or r0.w, r2.z, r0.w
discard_nz r0.w
add r2.xyz, -r1.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
lt r2.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
or r0.w, r2.y, r2.x
or r0.w, r2.z, r0.w
discard_nz r0.w
mul r15.xyzw, v0.yyyy, cb1[49].xyzw
mad r15.xyzw, r13.yyyy, cb1[48].xyzw, r15.xyzw
//Pattern break.
mad r15.xyzw, r0.zzzz, cb1[50].xyzw, r15.xyzw
add r15.xyzw, r15.xyzw, cb1[51].xyzw
div r15.xyz, r15.xyzx, r15.wwww
//End of full depth block.
mul r2.xyzw, v0.yyyy, cb1[49].xyzw
mad r2.xyzw, r13.xxxx, cb1[48].xyzw, r2.xyzw
//Pattern break.
mad r2.xyzw, r0.zzzz, cb1[50].xyzw, r2.xyzw
add r2.xyzw, r2.xyzw, cb1[51].xyzw
div r2.xyz, r2.xyzx, r2.wwww
add r3.xyz, -r2.xyzx, cb1[74].xyzx

dp3 r0.z, r3.xyzx, r3.xyzx
rsq r0.z, r0.z
mul r0.zw, r0.zzzz, r3.xxxy
mad r1.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)

//Manual fix. r2 instead of r15.
add r2.xyz, r2.xyzx, -cb1[76].xyzx
add r3.xyz, -cb0[1].xyzx, cb1[64].xyzx
add r2.xyz, r2.xyzx, -cb0[9].xyzx
mul r4.xy, r3.yzyy, cb3[1].yyyy
mul r4.zw, r2.yyyz, cb3[1].yyyy
mul r5.xy, r0.xyxx, cb1[132].xyxx
round_z r5.xy, r5.xyxx
ftoi r6.xy, r5.xyxx
mov r6.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r1.w, r6.xyww, t1.yzwx
iadd r7.xyzw, r6.xyxy, l(0, -1, -1, 0)
mov r8.xy, r7.zwzz
mov r8.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r2.w, r8.xyzw, t1.yzwx
mov r7.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r3.w, r7.xyzw, t1.yzwx
iadd r7.xyzw, r6.xyxy, l(0, 1, 1, 0)
mov r8.xy, r7.zwzz
mov r8.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r5.z, r8.xyzw, t1.yzxw
mov r7.zw, l(0,0,0,0)
ld_indexable(texture2d)(float,float,float,float) r5.w, r7.xyzw, t1.yzwx
add r2.w, r1.w, -r2.w
add r5.z, -r1.w, r5.z
lt r7.x, |r2.w|, |r5.z|
movc r2.w, r7.x, r2.w, r5.z
add r3.w, r1.w, -r3.w
add r5.z, -r1.w, r5.w
lt r5.w, |r3.w|, |r5.z|
movc r3.w, r5.w, r3.w, r5.z
add r7.xyzw, r5.xyxy, l(0.500000, 0.500000, 1.500000, 0.500000)
mul r8.xyzw, r7.yyyy, cb1[49].xyzw
mad r8.xyzw, r7.xxxx, cb1[48].xyzw, r8.xyzw
mad r8.xyzw, r1.wwww, cb1[50].xyzw, r8.xyzw
add r8.xyzw, r8.xyzw, cb1[51].xyzw
div r8.xyz, r8.yzxy, r8.wwww
add r2.w, r1.w, r2.w
mul r9.xyzw, r7.wwww, cb1[49].xyzw
mad r7.xyzw, r7.zzzz, cb1[48].xyzw, r9.xyzw
mad r7.xyzw, r2.wwww, cb1[50].xyzw, r7.xyzw
add r7.xyzw, r7.xyzw, cb1[51].xyzw
div r7.xyz, r7.zxyz, r7.wwww
add r7.xyz, -r8.yzxy, r7.xyzx
add r5.xy, r5.xyxx, l(0.500000, 1.500000, 0.000000, 0.000000)
add r2.w, r1.w, r3.w
mul r9.xyzw, r5.yyyy, cb1[49].xyzw
mad r5.xyzw, r5.xxxx, cb1[48].xyzw, r9.xyzw
mad r5.xyzw, r2.wwww, cb1[50].xyzw, r5.xyzw
add r5.xyzw, r5.xyzw, cb1[51].xyzw
div r5.xyz, r5.yzxy, r5.wwww
add r5.xyz, -r8.xyzx, r5.xyzx
mul r8.xyz, r5.xyzx, r7.xyzx
mad r5.xyz, r7.zxyz, r5.yzxy, -r8.xyzx
dp3 r2.w, r5.xyzx, r5.xyzx
rsq r2.w, r2.w
mul r5.xyz, r2.wwww, r5.yzxy
if_nz cb2[0].z
  ld_indexable(texture2d)(float,float,float,float) r6.xy, r6.xyzw, t2.xyzw
  mad r6.zw, r0.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
  mul r7.xy, r6.zwzz, l(1.000000, -1.000000, 0.000000, 0.000000)
  lt r2.w, l(0.000000), r6.x
  mad r6.xy, r6.xyxx, l(4.008016, 4.008016, 0.000000, 0.000000), l(-2.00397754, -2.00397754, 0.000000, 0.000000)
  mul r6.xy, |r6.xyxx|, r6.xyxx
  mul r6.xy, r6.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)

ld_indexable(texture2d)(float,float,float,float) r20.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture2d)(float,float,float,float) r19.xyzw, l(2, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r17.xyzw, l(15, 0, 0, 0), t120.xyzw
ftou r18.xyzw, r17.xyzw
mov r21.x, r7.x
mov r22.y, r1.w
mul r22.x, r20.y, r1.w
mul r22.x, r22.x, -cb1[r18.y + 0].w
add r22.x, r22.x, l(1.0)
mad r21.x, -r20.x, r22.x, r21.x
mul r7.yzw, r7.yyyy, cb1[118].xxyw
mad r7.xyz, r21.xxxx, cb1[117].xywx, r7.yzwy
//Pattern break.
mad r7.xyz, r1.wwww, cb1[119].xywx, r7.xyzx
add r7.xyz, r7.xyzx, cb1[120].xywx
mul r22.x, r19.y, r22.y
mul r22.x, r22.x, -cb1[r18.y + 0].w
add r22.x, r7.z, r22.x
mad r7.x, r19.x, r22.x, r7.x
  div r7.xy, r7.xyxx, r7.zzzz
  mad r6.zw, r6.zzzw, l(0.000000, 0.000000, 1.000000, -1.000000), -r7.xxxy
  movc r6.xy, r2.wwww, r6.xyxx, r6.zwzz
  mad r0.xy, -r6.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000), r0.xyxx
  lt r6.xy, r0.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
  or r1.w, r6.y, r6.x
  ge r6.xy, r0.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
  or r1.w, r1.w, r6.x
  or r1.w, r6.y, r1.w
  sample_l_indexable(texture2d)(float,float,float,float) r6.xyz, r0.xyxx, t0.xyzw, s0, l(0.000000)
  mad r6.xyz, r6.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
  dp3 r0.x, r6.xyzx, r6.xyzx
  rsq r0.x, r0.x
  mul r7.xyz, r0.xxxx, r6.xyzx
  dp3_sat r0.y, r7.yzxy, r5.xyzx
  add r0.y, r0.y, -cb2[0].w
  mul_sat r0.y, r0.y, cb2[1].y
  movc r0.y, r1.w, l(0), r0.y
  mad r6.xyz, r6.xyzx, r0.xxxx, -r5.zxyz
  mad r6.xyz, r0.yyyy, r6.xyzx, r5.zxyz
  dp3 r0.x, r6.xyzx, r6.xyzx
  rsq r0.x, r0.x
  mul r5.xy, r0.xxxx, r6.yzyy
endif
round_ne r0.xy, |r5.xyxx|
mad r3.zw, r3.xxxz, cb3[1].yyyy, -r4.xxxy
mad r3.zw, r0.xxxx, r3.zzzw, r4.xxxy
mad r2.zw, r2.xxxz, cb3[1].yyyy, -r4.zzzw
mad r2.zw, r0.xxxx, r2.zzzw, r4.zzzw
mad r3.xy, r3.xyxx, cb3[1].yyyy, -r3.zwzz
mad r3.xy, r0.yyyy, r3.xyxx, r3.zwzz
mad r2.xy, r2.xyxx, cb3[1].yyyy, -r2.zwzz
mad r0.xy, r0.yyyy, r2.xyxx, r2.zwzz
add r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
mul r2.xy, r3.xyxx, cb3[1].zzzz
mad r0.xy, r0.xyxx, cb3[1].zzzz, l(0.500000, 0.500000, 0.000000, 0.000000)
mul r1.w, cb3[1].w, l(-0.500000)
sample_b_indexable(texture2d)(float,float,float,float) r1.y, r1.zyzz, t3.yxzw, s2, cb1[144].x
mul r1.y, r1.y, cb3[2].x
mad r1.y, cb3[1].w, r1.y, r1.w
mad r0.zw, r0.zzzw, r1.yyyy, r0.xxxy
mul r1.yz, r2.xxyx, l(0.000000, 2097152.000000, 2097152.000000, 0.000000)
frc r1.yz, r1.yyzy
add r0.zw, r0.zzzw, r1.yyyz
sample_b_indexable(texture2d)(float,float,float,float) r2.xy, r0.zwzz, t4.xyzw, s3, cb1[144].x
mad r2.xy, r2.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
dp2 r1.w, r2.xyxx, r2.xyxx
add r1.w, -r1.w, l(1.000000)
max r1.w, r1.w, l(0.000000)
sqrt r2.z, r1.w
mad r2.xyz, r2.xyzx, cb1[139].wwww, cb1[139].xyzx
dp3 r1.w, r2.xyzx, r2.xyzx
rsq r1.w, r1.w
mul r2.xyz, r1.wwww, r2.xyzx
mul r1.w, -r2.z, cb0[10].x
mul r2.xy, r2.yxyy, cb0[10].yzyy
mul r2.xzw, r2.xxxx, cb0[7].xxyz
mad r2.xzw, r1.wwww, cb0[6].xxyz, r2.xxzw
mad r2.xyz, r2.yyyy, cb0[8].xyzx, r2.xzwx
dp3 r1.w, r2.xyzx, r2.xyzx
rsq r1.w, r1.w
mul r2.xyz, r1.wwww, r2.xyzx
sample_b_indexable(texture2d)(float,float,float,float) r3.xyz, r0.zwzz, t5.xyzw, s4, cb1[144].x
sample_b_indexable(texture2d)(float,float,float,float) r0.z, r0.zwzz, t6.yzxw, s5, cb1[144].x
add r0.xy, r0.xyxx, r1.yzyy
sample_b_indexable(texture2d)(float,float,float,float) r0.x, r0.xyxx, t7.xyzw, s6, cb1[144].x
mad r0.y, r1.x, l(2.000000), l(-1.000000)
mad_sat r0.y, -|r0.y|, l(4.000000), l(4.000000)
mul r0.y, r0.y, cb0[12].x
min r0.x, |r0.x|, l(1.000000)
mul r0.x, r0.y, r0.x
mov_sat o0.xyz, r3.xyzx
mov_sat r0.z, r0.z
mad o2.z, r0.z, cb1[140].y, cb1[140].x
mad o1.xyz, r2.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.501960814, 0.501960814, 0.501960814, 0.000000)
mov o0.w, r0.x
mov o1.w, r0.x
mov o2.xy, l(0,0,0,0)
mov o2.w, r0.x
ret
// Approximately 0 instruction slots used
