// MANUALLY DUMPED [ShaderRegex\ShaderFixes\UE5_masterotaku.ini\PreciseDecalsPS1z_1_nospec] SRC exception. Extra speculars. Water palace water.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Sun Oct 19 21:29:45 2025
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                10   xyzw        0     NONE   float   xyz
// TEXCOORD                11   xyzw        1     NONE   float   xyzw
// COLOR                    0   xyzw        2     NONE   float      w
// TEXCOORD                 0   xyzw        3     NONE   float   x
// PRIMITIVE_ID             0   x           4     NONE    uint   x
// TEXCOORD                 9   xyz         5     NONE   float   xyz
// SV_Position              0   xyzw        6      POS   float   xyz
// SV_IsFrontFace           0   x           7    FFACE    uint   x
//
//
// 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
// SV_Target                3   xyzw        3   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[152], immediateIndexed
dcl_constantbuffer CB1[11], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_resource_structured t0, 16
dcl_resource_structured t1, 16
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texturecube (float,float,float,float) t4
dcl_input_ps linear centroid v0.xyz
dcl_input_ps linear centroid v1.xyzw
dcl_input_ps linear v2.w
dcl_input_ps linear v3.x
dcl_input_ps constant v4.x
dcl_input_ps linear v5.xyz
dcl_input_ps_siv linear noperspective v6.xyz, position
dcl_input_ps_sgv constant v7.x, is_front_face
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_output o2.xyzw
dcl_output o3.xyzw
dcl_temps 33
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
mul r0.xyz, v0.yzxy, v1.zxyz
mad r0.xyz, v1.yzxy, v0.zxyz, -r0.xyzx
mul r0.xyz, r0.xyzx, v1.wwww

ld_indexable(texture2d)(float,float,float,float) r16.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r14.xyzw, l(15, 0, 0, 0), t120.xyzw
ftou r15.xyzw, r14.xyzw
mov r17.x, v6.x
mov r17.y, v6.x
mul [precise] r18.xyzw, v6.xxxx, cb0[44].xyzw
mul [precise] r19.xyzw, v6.yyyy, cb0[45].xyzw
add [precise] r18.xyzw, r18.xyzw, r19.xyzw
//Pattern break.
mul [precise] r19.xyzw, v6.zzzz, cb0[46].xyzw
add [precise] r18.xyzw, r18.xyzw, r19.xyzw
add [precise] r18.xyzw, r18.xyzw, cb0[47].xyzw
ge r22.w, cb0[r15.x + 0].x, l(20.0)
if_nz r22.w
mul r22.x, l(0.5), cb0[r15.x + 0].x
else
mul r22.x, l(0.5), cb1[r15.x + 0].x
endif
mad r22.y, r18.w, r16.y, l(-1.0)
mul r22.y, r22.y, r22.x
mad r17.x, r16.x, r22.y, r17.x
mad r17.y, -r16.x, r22.x, r17.y

mul [precise] r31.xyzw, r17.yyyy, cb0[44].xyzw
mul [precise] r32.xyzw, v6.yyyy, cb0[45].xyzw
add [precise] r31.xyzw, r31.xyzw, r32.xyzw
//Pattern break.
mul [precise] r32.xyzw, v6.zzzz, cb0[46].xyzw
add [precise] r31.xyzw, r31.xyzw, r32.xyzw
add [precise] r31.xyzw, r31.xyzw, cb0[47].xyzw
div [precise(xyz)] r31.xyz, r31.xyzx, r31.wwww

mul [precise] r1.xyzw, r17.xxxx, cb0[44].xyzw
mul [precise] r2.xyzw, v6.yyyy, cb0[45].xyzw
add [precise] r1.xyzw, r1.xyzw, r2.xyzw
//Pattern break.
mul [precise] r2.xyzw, v6.zzzz, cb0[46].xyzw
add [precise] r1.xyzw, r1.xyzw, r2.xyzw
add [precise] r1.xyzw, r1.xyzw, cb0[47].xyzw
div [precise(xyz)] r1.xyz, r1.xyzx, r1.wwww
add [precise(xyz)] r2.xyz, r1.xyzx, -cb0[112].xyzx
add [precise(xyz)] r3.xyz, v5.xyzx, -cb0[112].xyzx
imul [precise(w)] null, r0.w, v4.x, l(42)
imad r1.w, v4.x, l(42), l(1)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r4.xyz, r1.w, l(0), t0.xyzx
imad [precise(w)] r5.xyzw, v4.xxxx, l(42, 42, 42, 42), l(5, 6, 7, 18)
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r6.xyzw, r5.x, l(0), t0.xyzw
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r7.xyzw, r5.y, l(0), t0.xzyw
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r8.xyzw, r5.z, l(0), t0.xywz
ld_structured_indexable [precise(xyz)](structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r5.xyz, r5.w, l(0), t0.xyzx
imad [precise(w)] r1.w, v4.x, l(42), l(19)
ld_structured_indexable [precise(xyz)](structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r9.xyz, r1.w, l(0), t0.xyzx
ge r1.w, cb0[31].w, l(1.000000)
dp3 r2.w, -r31.xyzx, -r31.xyzx
rsq r2.w, r2.w
mul r10.xyz, -r31.xyzx, r2.wwww
movc r10.xyz, r1.wwww, -cb0[61].xyzx, r10.xyzx
ld_structured_indexable [precise(w)](structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.w, r0.w, l(0), t0.xxxx
and [precise(w)] r0.w, r0.w, l(64)
movc [precise(w)] r0.w, r0.w, l(-1.000000), l(1.000000)
mul r0.w, r0.w, cb0[149].w
movc [precise(w)] r1.w, v7.x, l(1.000000), l(-1.000000)
mul r0.w, r0.w, r1.w
mad r11.xyz, l(0.000000, 0.000000, 1.000000, 0.000000), cb0[146].wwww, cb0[146].xyzx
dp3 r1.w, r11.xyzx, r11.xyzx
rsq r1.w, r1.w
mul r11.xyz, r1.wwww, r11.xyzx
mul r0.xyz, r0.xyzx, r11.yyyy
mad r0.xyz, r11.xxxx, v0.xyzx, r0.xyzx
mad r0.xyz, r11.zzzz, v1.xyzx, r0.xyzx
dp3 r1.w, r0.xyzx, r0.xyzx
rsq r1.w, r1.w
mul r0.xyz, r0.xyzx, r1.wwww
mul r11.xyz, r0.wwww, r0.xyzx
dp3 r1.w, r11.xyzx, r10.xyzx
mul r12.xyz, r1.wwww, r11.xyzx
mad r12.xyz, r12.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), -r10.xyzx
mad r0.xyz, -r0.xyzx, r0.wwww, -r10.xyzx
mad r0.xyz, cb1[0].xxxx, r0.xyzx, r11.xyzx
sample_indexable(texturecube)(float,float,float,float) r0.xyz, r0.xyzx, t4.xyzw, s2
sample_indexable(texturecube)(float,float,float,float) r11.xyz, r12.xyzx, t4.xyzw, s2
dp3 r0.w, v1.xyzx, r10.xyzx
add r0.w, r0.w, l(1.000000)
mul r0.w, r0.w, l(0.500000)
mad r0.w, -r0.w, r0.w, l(1.000000)
add r10.xyz, -r0.xyzx, r11.xyzx
mad r0.xyz, r0.wwww, r10.xyzx, r0.xyzx
mul r0.xyz, r0.xyzx, cb1[0].yyyy
ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.w, l(0), l(0), t1.xxxx
log r0.w, r0.w
mul r0.w, r0.w, -cb1[0].z
exp r0.w, r0.w
mul r10.xyz, r0.wwww, cb1[1].xyzx
mad r4.xyz, -r4.xyzx, l(4.768371582E-07, 4.768371582E-07, 4.768371582E-07, 0.000000), cb0[109].xyzx
mad r3.xyz, r4.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r3.xyzx
mov r11.x, r6.x
mov r11.y, r7.x
mov r11.z, r8.x
mov r13.x, r6.y
mov r13.y, r7.z
mov r13.z, r8.y
mul r12.yzw, r3.yyyy, r13.zzxy
mad r3.xyw, r3.xxxx, r11.zxzy, r12.yzyw
mov r7.x, r6.z
mov r7.z, r8.w
mad r3.xyz, r3.zzzz, r7.zxyz, r3.xywx
mov r8.x, r6.w
mov r8.y, r7.w
add r3.xyz, r3.xyzx, r8.zxyz
mul r3.xyz, r3.xyzx, l(-0.002000, 0.002000, 0.010000, 0.000000)
mul r0.w, cb0[150].y, l(0.001000)
frc r0.w, r0.w
mul r0.w, r0.w, cb1[1].w
mul r1.w, r0.w, l(1000.000000)
mad r0.w, r0.w, l(1000.000000), cb1[2].x
ge [precise(w)] r2.w, v2.w, l(0.500000)
and [precise(w)] r2.w, r2.w, l(0x3f800000)
add r0.w, r0.w, r2.w
add r2.w, r5.y, r5.x
add r3.w, r9.y, r9.x
add r2.w, r5.z, r2.w
add r3.w, r9.z, r3.w
mul r2.w, r2.w, cb1[2].y
mul r2.w, r2.w, l(2097152.000000)
frc r2.w, r2.w
mad r2.w, r3.w, cb1[2].y, r2.w
frc r2.w, r2.w
add r0.w, r0.w, r2.w
mul r0.w, r0.w, l(0.500000)
frc r0.w, r0.w
mad r0.w, r0.w, l(2.000000), r3.x
add_sat r0.w, r0.w, l(-1.000000)
add r2.w, r0.w, -cb1[2].z
mad r2.w, r2.w, cb1[2].w, cb1[3].x
max r2.w, r2.w, l(0.000000)
sample_b_indexable(texture2d)(float,float,float,float) r3.x, r3.yzyy, t2.xyzw, s0, cb0[151].x
add r3.y, r0.w, -cb1[3].y
mad r3.y, r3.y, cb1[3].z, cb1[3].w
max r3.y, r3.y, l(0.000000)
mad r4.xyz, r4.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r2.xyzx
mul r6.xyz, r13.xyzx, r4.yyyy
mad r4.xyw, r4.xxxx, r11.xyxz, r6.xyxz
mad r4.xyz, r4.zzzz, r7.xyzx, r4.xywx
add r4.xyz, r8.xyzx, r4.xyzx
mad r4.x, r4.x, l(0.010000), r4.y
mad r3.z, -r4.z, cb1[4].x, l(1.000000)
mad r3.z, -r3.z, r3.z, l(1.000000)
mul r4.y, r3.z, cb1[4].y
mul r3.zw, r4.xxxy, cb1[4].zzzz
mul r4.xy, r1.wwww, cb1[5].xyxx
mad r4.xy, r3.zwzz, l(2.000000, -0.400000, 0.000000, 0.000000), r4.xyxx
sample_b_indexable(texture2d)(float,float,float,float) r4.x, r4.xyxx, t3.xyzw, s1, cb0[151].x
mad r3.zw, r3.zzzw, l(0.000000, 0.000000, 2.000000, -0.400000), l(0.000000, 0.000000, 0.300000, 0.000000)
mad r3.zw, r1.wwww, cb1[5].zzzw, r3.zzzw
sample_b_indexable(texture2d)(float,float,float,float) r1.w, r3.zwzz, t3.yzwx, s1, cb0[151].x
add_sat r1.w, r1.w, r4.x
mul r1.w, r1.w, r3.y
mad r3.y, r1.w, r1.w, -r1.w
mad r1.w, v3.x, r3.y, r1.w
mad r1.w, r2.w, r3.x, r1.w
add r0.w, r0.w, -cb1[6].x
mad_sat r0.w, r0.w, cb1[6].y, cb1[6].z
add r0.w, r0.w, r1.w
min r1.w, |r12.x|, l(1.000000)
mad r1.w, r1.w, cb1[6].w, r2.z
add r1.w, r1.w, -cb1[7].x
mul r2.w, cb0[109].z, cb1[7].y
mul r1.w, r1.w, cb1[7].y
mad_sat r1.w, r2.w, l(2097152.000000), r1.w
mad r3.xyz, r1.wwww, cb1[8].xyzx, r0.wwww
mul r3.xyz, r3.xyzx, cb1[8].wwww
max r4.xyz, r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mov_sat r3.xyz, r3.xyzx
mad r4.xyz, r10.xyzx, r4.xyzx, -r0.xyzx
mad r0.xyz, r3.xyzx, r4.xyzx, r0.xyzx
mul r3.xyz, r0.xyzx, cb1[9].xyzx
mad r0.xyz, -cb1[9].xyzx, r0.xyzx, cb1[10].xyzx
mad r0.xyz, cb1[9].wwww, r0.xyzx, r3.xyzx
max r0.xyz, r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
lt [precise(w)] r0.w, l(0.000000), cb0[148].x
if_nz r0.w
  mad [precise(xyz)] r3.xyz, cb0[109].xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r2.xyzx
  mad [precise(xyz)] r4.xyz, -cb0[109].xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000), r3.xyzx
  add [precise(xyz)] r2.xyz, r2.xyzx, -r4.xyzx
  imad [precise(xyz)] r4.xyzw, v4.xxxx, l(42, 42, 42, 42), l(17, 26, 27, 32)
  ld_structured_indexable [precise(x)](structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r6.x, r4.x, l(12), t0.xxxx
  mul [precise(xyz)] r5.xyz, r5.xyzx, l(2097152.000000, 2097152.000000, 2097152.000000, 0.000000)
  add [precise(xyz)] r7.xyz, r9.xyzx, r5.xyzx
  add [precise(xyz)] r5.xyz, -r5.xyzx, r7.xyzx
  add [precise(xyz)] r5.xyz, -r5.xyzx, r9.xyzx
  ld_structured_indexable [precise(y)](structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r6.y, r4.y, l(12), t0.xxxx
  ld_structured_indexable [precise(z)](structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r6.z, r4.z, l(12), t0.xxxx
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r0.w, r4.w, l(0), t0.xxxx
  add [precise(xyz)] r4.xyz, r3.xyzx, -r7.xyzx
  add [precise(xyz)] r5.xyz, r2.xyzx, -r5.xyzx
  add [precise(xyz)] r4.xyz, r4.xyzx, r5.xyzx
  add [precise(xyz)] r5.xyz, r6.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  lt [precise(xyz)] r4.xyz, r5.xyzx, |r4.xyzx|
  or [precise(w)] r1.w, r4.y, r4.x
  or [precise(w)] r1.w, r4.z, r1.w
  if_nz r1.w
    mul [precise(xyz)] r3.xyz, r3.xyzx, l(0.0000152587891, 0.0000152587891, 0.0000152587891, 0.000000)
    mul [precise(xyz)] r2.xyz, r2.xyzx, l(0.0000152587891, 0.0000152587891, 0.0000152587891, 0.000000)
    frc [precise(xyz)] r3.xyz, r3.xyzx
    frc [precise(xyz)] r2.xyz, r2.xyzx
    add [precise(xyz)] r2.xyz, r2.xyzx, r3.xyzx
    frc [precise(xyz)] r2.xyz, r2.xyzx
    mul [precise(xyz)] r2.xyz, r2.xyzx, l(65536.000000, 65536.000000, 65536.000000, 0.000000)
    dp3 [precise(w)] r1.w, r2.xyzx, l(0.001154, 0.001154, 0.001154, 0.000000)
    frc [precise(w)] r1.w, r1.w
    lt [precise(w)] r1.w, l(0.500000), r1.w
    movc [precise(xyz)] r0.xyz, r1.wwww, l(0,1.000000,1.000000,0), l(1.000000,1.000000,0,0)
  else
    lt r1.w, l(0.000000), r0.w
    add r1.xyz, r1.xyzx, -v5.xyzx
    max r1.y, |r1.z|, |r1.y|
    max r1.x, r1.y, |r1.x|
    add r0.w, -r0.w, r1.x
    mul r0.w, |r0.w|, l(20.000000)
    min r0.w, r0.w, l(1.000000)
    add r0.w, -r0.w, l(1.000000)
    mul r1.xyz, r0.wwww, l(1.000000, 0.000000, 1.000000, 0.000000)
    movc r0.xyz, r1.wwww, r1.xyzx, r0.xyzx
  endif
endif
mul r0.xyz, r0.xyzx, cb0[143].zzzz
mov o0.w, l(0)
min o0.xyz, r0.xyzx, l(32256.000000, 32256.000000, 32256.000000, 0.000000)
mov o1.xyzw, l(0,0,0,0)
mov o2.xyzw, l(0,0,0,0)
mov o3.xyzw, l(0,0,0,0)
ret
// Approximately 0 instruction slots used
