// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Wed May 28 00:41:23 2025
//
//
// Note: shader requires additional functionality:
//       Early depth-stencil
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xyzw        0     NONE   float   xy
// TEXCOORD                 4   xyz         1     NONE   float
// TEXCOORD                 5   xyzw        2     NONE   float   xyzw
// TANGENTX                 0   xyzw        3     NONE   float
// TANGENTZ                 0   xyzw        4     NONE   float
// TEXCOORD                 7   xyzw        5     NONE   float   xyzw
// TEXCOORD                 8   xyz         6     NONE   float
// SV_POSITION              0   xyzw        7      POS   float
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
ps_5_0
dcl_globalFlags refactoringAllowed | forceEarlyDepthStencil
dcl_constantbuffer CB0[2], immediateIndexed
dcl_constantbuffer CB1[44], immediateIndexed
dcl_constantbuffer CB2[5], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_uav_structured u1, 4
dcl_input_ps linear v0.xy
dcl_input_ps linear v2.xyzw
dcl_input_ps linear v5.xyzw
dcl_temps 4
add r0.xyz, v5.xyzx, cb0[1].xyzx
ftoi r0.xyz, r0.xyzx
ushr r0.xyz, r0.xyzx, l(2, 2, 2, 0)
sample_indexable(texture2d)(float,float,float,float) r0.w, v0.xyxx, t0.yzwx, s0
max r1.x, |r0.w|, l(0.000001)
log r1.x, r1.x
mul r1.x, r1.x, v2.z
exp r1.x, r1.x
mad r1.x, v2.x, r1.x, v2.y
mad r1.yzw, r1.xxxx, l(0.000000, 0.000154118257, 0.000842420210, 0.0000422806261), l(0.000000, 0.860117733, 1.000000, 0.317398727)
mul r2.x, r1.x, r1.x
mad r1.yzw, r2.xxxx, l(0.000000, 1.286412186E-07, 7.081451372E-07, 4.204816761E-08), r1.yyzw
div r1.y, r1.y, r1.z
mad r1.z, -r1.x, l(0.0000289741820), l(1.000000)
mad r1.z, r2.x, l(1.614560574E-07), r1.z
div r1.z, r1.w, r1.z
mul r1.xw, r1.xxxy, l(0.000400, 0.000000, 0.000000, 3.000000)
add r1.y, r1.y, r1.y
mad r1.y, -r1.z, l(8.000000), r1.y
add r1.y, r1.y, l(4.000000)
div r1.w, r1.w, r1.y
add r1.z, r1.z, r1.z
div r1.y, r1.z, r1.y
add r1.z, -r1.w, l(1.000000)
add r1.z, -r1.y, r1.z
div r1.y, l(1.000000, 1.000000, 1.000000, 1.000000), r1.y
mul r2.xz, r1.wwzw, r1.yyyy
mov r2.y, l(1.000000)
dp3 r3.x, l(3.24045420, -1.53713846, -0.498531401, 0.000000), r2.xyzx
dp3 r3.y, l(-0.969266, 1.87601078, 0.041556, 0.000000), r2.xyzx
dp3 r3.z, l(0.0556433983, -0.204025894, 1.05722523, 0.000000), r2.xyzx
mul r1.x, r1.x, r1.x
mul r1.x, r1.x, r1.x
mul r1.xyz, r1.xxxx, r3.xyzx
mul r1.xyz, r1.xyzx, cb2[4].xxxx
div r1.xyz, r1.xyzx, cb1[43].xxxx
add r1.xyz, r1.xyzx, cb2[1].xyzx
mul_sat r0.w, r0.w, v2.w
mul r0.w, r0.w, |v5.w|
mul r0.w, r0.w, cb1[43].y
dp3 r2.x, l(0.627403915, 0.329283029, 0.0433130674, 0.000000), r1.xyzx
dp3 r2.y, l(0.0690972880, 0.919540405, 0.0113623161, 0.000000), r1.xyzx
dp3 r2.z, l(0.0163914394, 0.0880133063, 0.895595253, 0.000000), r1.xyzx
max r1.xyz, r2.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
and r2.xyz, r1.xyzx, l(0x7f800000, 0x7f800000, 0x7f800000, 0)
ine r2.xyz, l(0x7f800000, 0x7f800000, 0x7f800000, 0), r2.xyzx
ieq r2.xyz, r2.xyzx, l(0, 0, 0, 0)
or r1.w, r2.y, r2.x
or r1.w, r2.z, r1.w
movc r1.xyz, r1.wwww, l(0,0,0,0), r1.xyzx
mul r0.w, r0.w, cb0[1].w
mul r0.w, r0.w, l(2048.000000)
mul r1.xyz, r0.wwww, r1.xyzx
max r1.xyz, r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
ftou r1.xyz, r1.xyzx
ult r2.xyz, r0.xyzx, cb0[0].xyzx
and r0.w, r2.y, r2.x
and r0.w, r2.z, r0.w
ult r2.xyz, l(0, 0, 0, 0), r1.xyzx
or r1.w, r2.y, r2.x
or r1.w, r2.z, r1.w
and r0.w, r0.w, r1.w
if_nz r0.w
  imad r0.x, r0.y, cb0[0].x, r0.x
  imul null, r0.y, cb0[0].x, cb0[0].y
  imad r0.x, r0.z, r0.y, r0.x
  imul null, r2.x, r0.x, l(3)
  mov r2.y, l(0)
  atomic_iadd u1, r2.xyxx, r1.x
  imad r0.xy, r0.xxxx, l(3, 3, 0, 0), l(1, 2, 0, 0)
  mov r0.z, l(0)
  atomic_iadd u1, r0.xzxx, r1.y
  atomic_iadd u1, r0.yzyy, r1.z
endif
ret
// Approximately 0 instruction slots used
