//wrong coal eye swaped
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Thu Apr 02 14:42:49 2026
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xyzw
// TEXCOORD                10   xyzw        1     NONE   float   xyz
// TEXCOORD                11   xyzw        2     NONE   float   xyzw
// INST_CUSTOM_DATA         0   xyzw        3     NONE   float
// TEXCOORD                 0   xyzw        4     NONE   float   xy
// PRIMITIVE_ID             0   x           5     NONE    uint
// SV_IsFrontFace           0   x           6    FFACE    uint
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_DepthLessEqual        0    N/A oDepthLE  DEPTHLE   float    YES
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[144], immediateIndexed
dcl_constantbuffer cb1[2], immediateIndexed
dcl_constantbuffer cb2[10], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps_siv linear noperspective centroid v0.xyzw, position
dcl_input_ps linear centroid v1.xyz
dcl_input_ps linear centroid v2.xyzw
dcl_input_ps linear v4.xy
dcl_output o0.xyzw
dcl_output oDepthLE
dcl_temps 10
mul [precise(xyz)] r0.xyz, v1.zxyz, v2.yzxy
mul [precise(xyz)] r1.xyz, v1.yzxy, v2.zxyz
add [precise(xyz)] r0.xyz, r0.xyzx, -r1.xyzx
mul [precise(xyz)] r0.xyz, r0.xyzx, v2.wwww
mov [precise(x)] r1.x, v0.z
mov [precise(y)] r1.y, l(1.000000)
mul [precise(xy)] r1.xy, r1.xyxx, v0.wwww
mul [precise] r2.xyzw, v0.xxxx, cb0[44].xyzw
mul [precise] r3.xyzw, v0.yyyy, cb0[45].xyzw
add [precise] r2.xyzw, r2.xyzw, r3.xyzw
mul [precise] r3.xyzw, v0.zzzz, cb0[46].xyzw
add [precise] r2.xyzw, r2.xyzw, r3.xyzw
add [precise] r2.xyzw, r2.xyzw, cb0[47].xyzw
div [precise(xyz)] r2.xyz, r2.xyzx, r2.wwww
add [precise(xyz)] r3.xyz, r2.xyzx, -cb0[70].xyzx
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
mul [precise(zw)] r1.zw, v4.xxxy, cb2[9].xxxx
dp3 [precise(x)] r4.x, v1.xyzx, r2.xyzx
dp3 [precise(y)] r4.y, r0.xyzx, r2.xyzx
dp3 [precise(x)] r0.x, v2.xyzx, r2.xyzx
mul [precise(yz)] r0.yz, r4.xxyx, l(0.000000, -1.000000, -1.000000, 0.000000)
div [precise(yz)] r0.yz, r0.yyzy, r0.xxxx
mul [precise(yz)] r0.yz, r0.yyzy, cb2[9].yyyy
mul [precise(xy)] r4.xy, r0.yzyy, l(-0.000000, -0.000000, 0.000000, 0.000000)
add [precise(zw)] r1.zw, r1.zzzw, r4.xxxy
mov_sat [precise(x)] r0.x, |r0.x|
add [precise(w)] r0.w, cb1[0].x, -cb1[1].x
mul [precise(x)] r0.x, r0.w, r0.x
add [precise(x)] r0.x, r0.x, cb1[1].x
round_ni [precise(w)] r0.w, r0.x
div [precise(x)] r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x
mul [precise(yz)] r0.yz, r0.xxxx, r0.yyzy
deriv_rtx_coarse [precise(xy)] r4.xy, r1.zwzz
deriv_rty_coarse [precise(zw)] r4.zw, r1.zzzw
add [precise(w)] r0.w, r0.w, l(2.000000)
mov [precise(w)] r2.w, l(1.000000)
mov [precise(w)] r3.w, l(1.000000)
mov [precise(xyw)] r5.xyw, l(0,0,0,1.000000)
mov [precise(xy)] r6.xy, l(0,0,0,0)
loop
  itof [precise(z)] r6.z, r6.y
  lt [precise(z)] r6.z, r6.z, r0.w
  breakc_z r6.z
  add [precise(zw)] r6.zw, r1.zzzw, r5.xxxy
  sample_d_indexable [precise](texture2d)(float,float,float,float) r7.xyzw, r6.zwzz, t0.xyzw, s0, r4.xyxx, r4.zwzz
  dp4 [precise(z)] r6.z, l(0.000000, 1.000000, 0.000000, 0.000000), r7.xyzw
  lt [precise(w)] r6.w, r2.w, r6.z
  if_nz r6.w
    add [precise(w)] r6.w, r3.w, -r5.w
    add [precise(x)] r7.x, -r2.w, r6.z
    add [precise(w)] r6.w, r6.w, r7.x
    div [precise(w)] r6.w, r7.x, r6.w
    mul [precise(x)] r7.x, r3.w, r6.w
    add [precise(y)] r7.y, -r6.w, l(1.000000)
    mul [precise(y)] r7.y, r2.w, r7.y
    add [precise(x)] r6.x, r7.y, r7.x
    mul [precise(xy)] r7.xy, r0.yzyy, r6.wwww
    add [precise(xy)] r7.xy, r5.xyxx, -r7.xyxx
    mov [precise(xy)] r5.xy, r7.xyxx
    break
  endif
  add [precise(w)] r6.w, -r0.x, r2.w
  add [precise(xy)] r5.xy, r0.yzyy, r5.xyxx
  iadd [precise(y)] r6.y, r6.y, l(1)
  mov [precise(w)] r3.w, r2.w
  mov [precise(w)] r5.w, r6.z
  mov [precise(w)] r2.w, r6.w
  mov [precise(x)] r6.x, l(0)
endloop
add [precise(x)] r0.x, -r6.x, l(1.000000)
mul [precise(z)] r5.z, r0.x, cb2[9].y
dp3 [precise(x)] r0.x, r5.xyzx, r5.xyzx
dp2 [precise(y)] r0.y, |r4.xyxx|, |r4.xyxx|
deriv_rtx_coarse [precise(xyz)] r5.xyz, r3.xyzx
dp3 [precise(z)] r0.z, -r5.xyzx, -r5.xyzx
sqrt [precise(xyz)] r0.xyz, r0.xyzx
div [precise(y)] r0.y, r0.y, r0.z
dp2 [precise(z)] r0.z, |r4.zwzz|, |r4.zwzz|
deriv_rty_coarse [precise(xyz)] r3.xyz, r3.xyzx
dp3 [precise(w)] r0.w, -r3.xyzx, -r3.xyzx
sqrt [precise(zw)] r0.zw, r0.zzzw
div [precise(z)] r0.z, r0.z, r0.w
max [precise(y)] r0.y, r0.z, r0.y
mul [precise(xyz)] r3.xyz, cb0[16].xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mul [precise(xyz)] r4.xyz, cb0[17].xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
add [precise(xyz)] r3.xyz, r3.xyzx, r4.xyzx
add [precise(xyz)] r3.xyz, r3.xyzx, cb0[18].xyzx
dp3 [precise(z)] r0.z, r3.xyzx, r2.xyzx
div [precise(y)] r0.y, r0.y, |r0.z|
div [precise(x)] r0.x, r0.x, r0.y
add [precise(x)] r0.x, r0.x, r1.y
div [precise(x)] r0.x, r1.x, r0.x
min [precise(x)] r0.x, r0.x, v0.z
movc [precise(x)] oDepthLE, cb0[143].w, v0.z, r0.x

mov oDepthLE.xyzw, l(0,0,0,0)

mov o0.xyzw, l(0,0,0,0)
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v1.3.16 on Thu Apr 02 14:42:49 2026
// Texture2D<float4> t0 : register(t0);
//
// SamplerState s0_s : register(s0);
//
// cbuffer cb2 : register(b2)
// {
//   float4 cb2[10];
// }
//
// cbuffer cb1 : register(b1)
// {
//   float4 cb1[2];
// }
//
// cbuffer cb0 : register(b0)
// {
//   float4 cb0[144];
// }
//
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Texture2D<float4> StereoParams : register(t125);
//
//
// void main(
//   float4 v0 : SV_Position0,
//   linear centroid float4 v1 : TEXCOORD10,
//   linear centroid float4 v2 : TEXCOORD11,
//   float4 v3 : INST_CUSTOM_DATA0,
//   float4 v4 : TEXCOORD0,
//   uint v5 : PRIMITIVE_ID0,
//   uint v6 : SV_IsFrontFace0,
//   out float4 o0 : SV_Target0,
//   out float oDepthLE : SV_DepthLessEqual)
// {
//   float4 r0,r1,r2,r3,r4,r5,r6,r7;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   r0.xyz = v2.yzx * v1.zxy;
//   r1.xyz = v2.zxy * v1.yzx;
//   r0.xyz = -r1.xyz + r0.xyz;
//   r0.xyz = v2.www * r0.xyz;
//   r1.x = v0.z;
//   r1.y = 1;
//   r1.xy = v0.ww * r1.xy;
//   r2.xyzw = cb0[44].xyzw * v0.xxxx;
//   r3.xyzw = cb0[45].xyzw * v0.yyyy;
//   r2.xyzw = r3.xyzw + r2.xyzw;
//   r3.xyzw = cb0[46].xyzw * v0.zzzz;
//   r2.xyzw = r3.xyzw + r2.xyzw;
//   r2.xyzw = cb0[47].xyzw + r2.xyzw;
//   r2.xyz = r2.xyz / r2.www;
//   r3.xyz = -cb0[70].xyz + r2.xyz;
//   r0.w = dot(-r2.xyz, -r2.xyz);
//   r0.w = rsqrt(r0.w);
//   r2.xyz = -r2.xyz * r0.www;
//   r1.zw = cb2[9].xx * v4.xy;
//   r4.x = dot(v1.xyz, r2.xyz);
//   r4.y = dot(r0.xyz, r2.xyz);
//   r0.x = dot(v2.xyz, r2.xyz);
//   r0.yz = float2(-1,-1) * r4.xy;
//   r0.yz = r0.yz / r0.xx;
//   r0.yz = cb2[9].yy * r0.yz;
//   r4.xy = float2(-0,-0) * r0.yz;
//   r1.zw = r4.xy + r1.zw;
//   r0.x = saturate(abs(r0.x));
//   r0.w = -cb1[1].x + cb1[0].x;
//   r0.x = r0.x * r0.w;
//   r0.x = cb1[1].x + r0.x;
//   r0.w = floor(r0.x);
//   r0.x = 1 / r0.x;
//   r0.yz = r0.yz * r0.xx;
//   r4.xy = ddx_coarse(r1.zw);
//   r4.zw = ddy_coarse(r1.zw);
//   r0.w = 2 + r0.w;
//   r2.w = 1;
//   r3.w = 1;
//   r5.xyw = float3(0,0,1);
//   r6.xy = float2(0,0);
//   while (true) {
//     r6.z = (int)r6.y;
//     r6.z = cmp(r6.z < r0.w);
//     if (r6.z == 0) break;
//     r6.zw = r5.xy + r1.zw;
//     r7.xyzw = t0.SampleGrad(s0_s, r6.zw, r4.xyxx, r4.zwzz).xyzw;
//     r6.z = dot(float4(0,1,0,0), r7.xyzw);
//     r6.w = cmp(r2.w < r6.z);
//     if (r6.w != 0) {
//       r6.w = -r5.w + r3.w;
//       r7.x = r6.z + -r2.w;
//       r6.w = r7.x + r6.w;
//       r6.w = r7.x / r6.w;
//       r7.x = r6.w * r3.w;
//       r7.y = 1 + -r6.w;
//       r7.y = r7.y * r2.w;
//       r6.x = r7.x + r7.y;
//       r7.xy = r6.ww * r0.yz;
//       r7.xy = -r7.xy + r5.xy;
//       r5.xy = r7.xy;
//       break;
//     }
//     r6.w = r2.w + -r0.x;
//     r5.xy = r5.xy + r0.yz;
//     r6.y = (int)r6.y + 1;
//     r3.w = r2.w;
//     r5.w = r6.z;
//     r2.w = r6.w;
//     r6.x = 0;
//   }
//   r0.x = 1 + -r6.x;
//   r5.z = cb2[9].y * r0.x;
//   r0.x = dot(r5.xyz, r5.xyz);
//   r0.y = dot(abs(r4.xy), abs(r4.xy));
//   r5.xyz = ddx_coarse(r3.xyz);
//   r0.z = dot(-r5.xyz, -r5.xyz);
//   r0.xyz = sqrt(r0.xyz);
//   r0.y = r0.y / r0.z;
//   r0.z = dot(abs(r4.zw), abs(r4.zw));
//   r3.xyz = ddy_coarse(r3.xyz);
//   r0.w = dot(-r3.xyz, -r3.xyz);
//   r0.zw = sqrt(r0.zw);
//   r0.z = r0.z / r0.w;
//   r0.y = max(r0.y, r0.z);
//   r3.xyz = float3(0,0,0) * cb0[16].xyz;
//   r4.xyz = float3(0,0,0) * cb0[17].xyz;
//   r3.xyz = r4.xyz + r3.xyz;
//   r3.xyz = cb0[18].xyz + r3.xyz;
//   r0.z = dot(r3.xyz, r2.xyz);
//   r0.y = r0.y / abs(r0.z);
//   r0.x = r0.x / r0.y;
//   r0.x = r1.y + r0.x;
//   r0.x = r1.x / r0.x;
//   r0.x = min(v0.z, r0.x);
//   oDepthLE = cb0[143].w ? v0.z : r0.x;
//   o0.xyzw = float4(0,0,0,0);
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// G:\Games\Dead Island 2\DeadIsland\Binaries\Win64\ShaderFixes\25863d4603856d9d-ps_replace.txt(91,15-58): warning X3206: 'SampleGrad': implicit truncation of vector type
// G:\Games\Dead Island 2\DeadIsland\Binaries\Win64\ShaderFixes\25863d4603856d9d-ps_replace.txt(91,15-58): warning X3206: 'SampleGrad': implicit truncation of vector type
// error X8000: D3D11 Internal Compiler Error: Invalid Bytecode: Interpolation mode for PS input position must be linear_noperspective_centroid or linear_noperspective_sample when outputting oDepthGE or oDepthLE and not running at sample frequency (which is forced by inputting SV_SampleIndex or declaring an input linear_sample or linear_noperspective_sample). 
/////////////////////////////////////////////////////////////////////////////
