// MANUALLY DUMPED [ShaderRegex\ShaderFixes\UE5_masterotaku.ini\LightingPS1_1_nospec] ToM manual specular. Some puddles in valkyrie cave base.
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Sat Jul  4 20:02:10 2026
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xyzw        0     NONE   float   xyzw
// SV_Position              0   xyzw        1      POS   float
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[180], immediateIndexed
dcl_constantbuffer CB1[2], 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_sampler s7, mode_default
dcl_sampler s8, mode_default
dcl_sampler s9, 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_texturecube (float,float,float,float) t6
dcl_resource_texturecube (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_resource_texture2d (float,float,float,float) t9
dcl_input_ps linear noperspective v0.xyzw
dcl_output o0.xyzw
dcl_temps 32
dcl_resource_texture2d (float,float,float,float) t125
sample_l_indexable(texture2d)(float,float,float,float) r0.xyzw, v0.xyxx, t2.xzyw, s2, l(0.000000)
mul r0.w, r0.w, l(255.000000)
round_ne r0.w, r0.w
ftou r0.w, r0.w
and r1.x, r0.w, l(15)
ine r1.yz, r1.xxxx, l(0, 0, 7, 0)
and r1.y, r1.z, r1.y
if_nz r1.y
  sample_l_indexable(texture2d)(float,float,float,float) r1.yzw, v0.xyxx, t1.wxyz, s1, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r2.xyzw, v0.xyxx, t3.xyzw, s3, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r3.xy, v0.xyxx, t4.xyzw, s4, l(0.000000)
  mul r3.zw, v0.xxxy, cb0[127].xxxy
  ftou r3.zw, r3.zzzw
  ftou r4.x, cb0[146].x
  iadd r3.z, r3.w, r3.z
  iadd r3.z, r4.x, r3.z
  and r3.z, r3.z, l(1)
  mad r1.yzw, r1.yyzw, l(0.000000, 2.000000, 2.000000, 2.000000), l(0.000000, -1.000000, -1.000000, -1.000000)
  dp3 r3.w, r1.yzwy, r1.yzwy
  rsq r3.w, r3.w
  mul r4.xyz, r1.yzwy, r3.wwww
  mad r2.w, r2.w, l(16.000000), l(-8.000000)
  exp r2.w, r2.w
  add r2.w, r2.w, l(-0.00390625000)
  and r0.w, r0.w, l(16)
  movc r5.zw, r0.wwww, l(0,0,0,0), r3.xxxy
  ieq r6.xyz, r1.xxxx, l(9, 5, 4, 0)
  movc r0.w, r6.x, l(0), r0.x
  mul r1.x, r0.z, l(0.080000)
  mad r2.xyz, -r0.zzzz, l(0.080000, 0.080000, 0.080000, 0.000000), r2.xyzx
  mad r2.xyz, r0.wwww, r2.xyzx, r1.xxxx
  or r0.z, r6.x, r6.y
  lt r0.w, l(0.000000), cb0[150].x
  lt r1.x, l(0.000000), cb0[179].w
  and r0.w, r0.w, r1.x
  movc r1.x, r3.z, l(0), l(1.000000)
  mul r3.xyz, r1.xxxx, r2.xyzx
  movc r3.xyz, r0.wwww, r3.xyzx, r2.xyzx
  movc r2.xyz, r0.zzzz, r3.xyzx, r2.xyzx
  mad r2.xyz, r2.xyzx, cb0[131].wwww, cb0[131].xyzx
  sample_l_indexable(texture2d)(float,float,float,float) r0.z, v0.xyxx, t5.yzxw, s5, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r0.w, v0.xyxx, t0.yzwx, s0, l(0.000000)
  mad r1.x, r0.w, cb0[61].x, cb0[61].y
  mad r0.w, r0.w, cb0[61].z, -cb0[61].w
  div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
  add r0.w, r0.w, r1.x
  mul r3.xy, r0.wwww, v0.zwzz

ld_indexable(texture2d)(float,float,float,float) r10.xyzw, l(0, 0, 0, 0), t125.xyzw

mad r3.x, -r10.x, r0.w, r3.x
  mul r16.xyw, r3.yyyy, cb0[49].xyxz
  mad r13.xyz, r3.xxxx, cb0[48].xyzx, r16.xywx
  mad r13.xyz, r0.wwww, cb0[50].xyzx, r13.xyzx
  add r13.xyz, r13.xyzx, cb0[51].xyzx
  

mad r3.x, r10.x, r10.y, r3.x
  
  mul r6.xyw, r3.yyyy, cb0[49].xyxz
  mad r3.xyz, r3.xxxx, cb0[48].xyzx, r6.xywx
  mad r3.xyz, r0.wwww, cb0[50].xyzx, r3.xyzx
  add r3.xyz, r3.xyzx, cb0[51].xyzx
  
  add r3.xyz, r13.xyzx, -cb0[63].xyzx
  dp3 r0.w, r3.xyzx, r3.xyzx
  rsq r0.w, r0.w
  mul r3.xyz, r0.wwww, r3.xyzx
  lt r6.xy, l(0.000000, 0.000000, 0.000000, 0.000000), cb1[0].yzyy
  and r0.w, r6.y, r6.x
  if_nz r0.w
    dp3 r0.w, r4.xyzx, r4.xyzx
    sqrt r0.w, r0.w
    mov r4.w, l(1.000000)
    dp4 r7.x, cb0[161].xyzw, r4.xyzw
    dp4 r7.y, cb0[162].xyzw, r4.xyzw
    dp4 r7.z, cb0[163].xyzw, r4.xyzw
    mul r8.xyzw, r4.yzzx, r4.xyzz
    dp4 r9.x, cb0[164].xyzw, r8.xyzw
    dp4 r9.y, cb0[165].xyzw, r8.xyzw
    dp4 r9.z, cb0[166].xyzw, r8.xyzw
    mul r1.x, r4.y, r4.y
    mad r1.x, r4.x, r4.x, -r1.x
    add r7.xyz, r7.xyzx, r9.xyzx
    mad r7.xyz, cb0[167].xyzx, r1.xxxx, r7.xyzx
    max r7.xyz, r7.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r7.xyz, r7.xyzx, cb0[160].xyzx
    dp3 r1.x, r7.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
    mad r2.w, r1.x, r0.w, r2.w
  endif
  dp3 r5.x, -r3.xyzx, r4.xyzx
  add r0.w, r5.x, r5.x
  mad r3.xyz, r0.wwww, r4.xyzx, r3.xyzx
  mov_sat r5.x, r5.x
  mul r0.w, r0.y, r0.y
  mad r1.x, -r0.y, r0.y, l(1.000000)
  sqrt r4.w, r1.x
  mad r4.w, r0.y, r0.y, r4.w
  mul r1.x, r1.x, r4.w
  mad r1.yzw, -r1.yyzw, r3.wwww, r3.xxyz
  mad r1.xyz, r1.xxxx, r1.yzwy, r4.xyzx
  sample_indexable(texture2d)(float,float,float,float) r4.xyzw, v0.xyxx, t9.xyzw, s9
  add r1.w, -r4.w, l(1.000000)
  mad r7.xyzw, r4.xyzw, l(1.000000, 1.000000, 1.000000, -1.000000), l(0.000000, 0.000000, 0.000000, 1.000000)
  add r8.xyzw, -r7.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000)
  mad r8.xyzw, r5.zzzz, r8.xyzw, r7.xyzw
  movc r7.xyzw, r6.zzzz, r8.xyzw, r7.xyzw
  add r3.w, r0.z, r5.x
  log r3.w, r3.w
  mul r0.w, r0.w, r3.w
  exp r0.w, r0.w
  add r0.z, r0.z, r0.w
  add_sat r0.z, r0.z, l(-1.000000)
  mul r0.w, r0.z, r7.w
  if_nz r6.x
    log r3.w, r0.y
    mad r3.w, -r3.w, l(1.200000), l(1.000000)
    add r4.w, cb1[0].x, l(-1.000000)
    add r3.w, -r3.w, r4.w
    sample_l_indexable(texturecube)(float,float,float,float) r8.xyz, r1.xyzx, t6.xyzw, s6, r3.w
    dp3 r4.w, cb0[160].xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
    mul r9.w, r4.w, cb1[1].x
    mul r8.xyz, r8.xyzx, cb0[160].xyzx
    lt r4.w, l(0.000000), cb1[0].w
    if_nz r4.w
      sample_l_indexable(texturecube)(float,float,float,float) r1.xyz, r1.xyzx, t7.xyzw, s7, r3.w
      mad r1.xyz, r1.xyzx, cb0[160].xyzx, -r8.xyzx
      mad r8.xyz, cb1[0].wwww, r1.xyzx, r8.xyzx
    endif
    lt r1.x, cb1[0].z, l(1.000000)
    mul r9.xyz, r0.wwww, r8.xyzx
    movc r8.xyz, r1.xxxx, l(0,0,0,0), r8.xyzx
    and r9.xyzw, r9.xyzw, r1.xxxx
  else
    mov r8.xyz, l(0,0,0,0)
    mov r9.xyzw, l(0,0,0,0)
  endif
  mad_sat r1.x, r0.y, cb0[170].x, cb0[170].y
  mad r1.y, r1.x, l(-2.000000), l(3.000000)
  mul r1.x, r1.x, r1.x
  mul r1.x, r1.x, r1.y
  max r1.y, r9.w, l(0.000100)
  div r1.y, r2.w, r1.y
  min r1.y, r1.y, cb0[170].z
  add r1.y, r1.y, l(-1.000000)
  mad r1.x, r1.x, r1.y, l(1.000000)
  mul r8.xyz, r0.wwww, r8.xyzx
  mad r1.xyz, r9.xyzx, r1.xxxx, r8.xyzx
  add r1.xyz, r1.xyzx, r7.xyzx
  if_nz r6.z
    mov r5.y, r0.y
    sample_l_indexable(texture2d)(float,float,float,float) r6.yz, r5.xyxx, t8.zxyw, s8, l(0.000000)
    mul_sat r0.w, r2.y, l(50.000000)
    mul r0.w, r0.w, r6.z
    add r3.w, -r5.z, l(1.000000)
    mul r0.w, r0.w, r3.w
    mad r6.yzw, r2.xxyz, r6.yyyy, r0.wwww
    mul r6.yzw, r1.xxyz, r6.yyzw
    sample_l_indexable(texture2d)(float,float,float,float) r7.xy, r5.xwxx, t8.xyzw, s8, l(0.000000)
    mad r0.w, r7.x, l(0.040000), r7.y
    mul r3.w, r5.z, r0.w
    mad r0.w, -r0.w, r5.z, l(1.000000)
    mul r4.xyz, r3.wwww, r4.xyzx
    mad r4.xyz, r6.yzwy, r0.wwww, r4.xyzx
    mul r0.w, r1.w, r3.w
    mul r0.z, r0.z, r0.w
    if_nz r6.x
      log r0.w, r5.w
      mad r0.w, -r0.w, l(1.200000), l(1.000000)
      add r1.w, cb1[0].x, l(-1.000000)
      add r0.w, -r0.w, r1.w
      sample_l_indexable(texturecube)(float,float,float,float) r6.xyz, r3.xyzx, t6.xyzw, s6, r0.w
      dp3 r1.w, cb0[160].xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
      mul r7.w, r1.w, cb1[1].x
      mul r6.xyz, r6.xyzx, cb0[160].xyzx
      lt r1.w, l(0.000000), cb1[0].w
      if_nz r1.w
        sample_l_indexable(texturecube)(float,float,float,float) r3.xyz, r3.xyzx, t7.xyzw, s7, r0.w
        mad r3.xyz, r3.xyzx, cb0[160].xyzx, -r6.xyzx
        mad r6.xyz, cb1[0].wwww, r3.xyzx, r6.xyzx
      endif
      lt r0.w, cb1[0].z, l(1.000000)
      mul r7.xyz, r0.zzzz, r6.xyzx
      movc r3.xyz, r0.wwww, l(0,0,0,0), r6.xyzx
      and r6.xyzw, r7.xyzw, r0.wwww
    else
      mov r3.xyz, l(0,0,0,0)
      mov r6.xyzw, l(0,0,0,0)
    endif
    mad_sat r0.w, r5.w, cb0[170].x, cb0[170].y
    mad r1.w, r0.w, l(-2.000000), l(3.000000)
    mul r0.w, r0.w, r0.w
    mul r0.w, r0.w, r1.w
    max r1.w, r6.w, l(0.000100)
    div r1.w, r2.w, r1.w
    min r1.w, r1.w, cb0[170].z
    add r1.w, r1.w, l(-1.000000)
    mad r0.w, r0.w, r1.w, l(1.000000)
    mul r3.xyz, r0.zzzz, r3.xyzx
    mad r3.xyz, r6.xyzx, r0.wwww, r3.xyzx
    add r3.xyz, r3.xyzx, r4.xyzx
  else
    mov r0.x, r5.x
    sample_l_indexable(texture2d)(float,float,float,float) r0.xy, r0.xyxx, t8.xyzw, s8, l(0.000000)
    mul_sat r0.z, r2.y, l(50.000000)
    mul r0.y, r0.y, r0.z
    mad r0.xyz, r2.xyzx, r0.xxxx, r0.yyyy
    mul r3.xyz, r0.xyzx, r1.xyzx
  endif
  min r0.xyz, -r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
  mov r0.xyz, -r0.xyzx
else
  mov r0.xyz, l(0,0,0,0)
endif
mov o0.xyz, r0.xyzx
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used
