// water reflection AWOFAI
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.164 on Sun Apr 12 09:52:31 2026
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float
// TEXCOORD                 8   xyzw        1     NONE   float
// COLOR                    0   xyzw        2     NONE   float   xyzw
// COLOR                    1   xyzw        3     NONE   float
// TEXCOORD                 9   xyzw        4     NONE   float
// TEXCOORD                 0   xyzw        5     NONE   float   xy
// TEXCOORD                 1   xyzw        6     NONE   float   xyz
// TEXCOORD                 2   xyzw        7     NONE   float   xyz
// TEXCOORD                 3   xyzw        8     NONE   float   xyz
// TEXCOORD                 4   xyzw        9     NONE   float   xy w
// TEXCOORD                 5   xyzw       10     NONE   float
// TEXCOORD                 6   xyzw       11     NONE   float    y
// TEXCOORD                 7   xyzw       12     NONE   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 CB3[77], immediateIndexed
dcl_constantbuffer CB4[236], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s9, mode_default
dcl_resource_texture2d (float,float,float,float) t0
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) t9
dcl_input_ps linear centroid v2.xyzw
dcl_input_ps linear v5.xy
dcl_input_ps linear v6.xyz
dcl_input_ps linear v7.xyz
dcl_input_ps linear v8.xyz
dcl_input_ps linear v9.xyw
dcl_input_ps linear v11.y
dcl_output o0.xyzw

dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
ld_indexable(texture1d)(float,float,float,float) r29.xyzw, l(90, 0, 0, 0), t120.xyzw
ld_indexable(texture2d)(float,float,float,float) r9.xyzw, l(0, 0, 0, 0), t125.xyzw


dcl_temps 15
mov r0.xy, l(1.500000,2.000000,-1.000000,1.000000)
mad r1.y, v5.yyyy, r0.xxxx, cb4[11].xxxx
mul r1.x, l(1.500000, 1.500000, 1.500000, 1.500000), v5.xxxx
sample r1.xyzw, r1.xyxx, t2.xyzw, s2
and r1.xyzw, r1.xyzw, cb3[48].xyzw
or r1.xyzw, r1.xyzw, cb3[49].xyzw
mov r1.x, cb4[9].xxxx
mad r0.z, r1.wwww, r1.xxxx, cb4[10].xxxx
mad r2.x, v5.xxxx, r0.xxxx, cb4[8].xxxx
mul r2.y, l(1.500000, 1.500000, 1.500000, 1.500000), v5.yyyy
sample r2.xyzw, r2.xyxx, t2.xyzw, s2
and r2.xyzw, r2.xyzw, cb3[48].xyzw
or r2.xyzw, r2.xyzw, cb3[49].xyzw
mad r0.x, r2.wwww, r1.xxxx, cb4[10].xxxx
mul r1.xy, l(1.500000, 1.500000, 1.500000, 1.500000), v5.xyzw
dp3 r0.w, v8.xyzw, v8.xyzw
rsq r3.y, |r0.wwww|
ieq r3.x, r3.yyyy, l(0x7f800000)
movc r0.w, r3.xxxx, l(9999999933815812510711506376257961984.000000), r3.yyyy
mul r1.zw, r0.wwww, v8.xyxy
mul r2.xyz, r0.wwww, v8.xyzw
mad r0.xw, r0.xxxx, r1.zyzw, r1.xyzy
mad r3.yz, r0.zzzz, r1.xzww, r0.xxww
add r3.w, r3.zzzz, cb4[11].xxxx
sample r4.xyzw, r3.ywyy, t3.xyzw, s3
and r4.xyzw, r4.xyzw, cb3[50].xyzw
or r4.xyzw, r4.xyzw, cb3[51].xyzw
mad r4.xy, r4.wyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(-1.000000, -1.000000, -1.000000, -1.000000)
dp2 r5.x, r4.xyzw, -r4.xyzw
add r0.x, r5.xxxx, l(1.000000, 1.000000, 1.000000, 1.000000)
rsq r5.y, |r0.xxxx|
ieq r5.x, r5.yyyy, l(0x7f800000)
movc r0.x, r5.xxxx, l(9999999933815812510711506376257961984.000000), r5.yyyy
lt r5.y, l(0.000000, 0.000000, 0.000000, 0.000000), |r0.xxxx|
rcp r5.x, r0.xxxx
movc r4.z, r5.yyyy, r5.xxxx, l(9999999933815812510711506376257961984.000000,9999999933815812510711506376257961984.000000,9999999933815812510711506376257961984.000000,9999999933815812510711506376257961984.000000)
add r3.x, r3.yyyy, cb4[8].xxxx
sample r5.xyzw, r3.xzxx, t3.xyzw, s3
and r5.xyzw, r5.xyzw, cb3[50].xyzw
or r5.xyzw, r5.xyzw, cb3[51].xyzw
sample r6.xyzw, r3.xzxx, t2.xyzw, s2
and r6.xyzw, r6.xyzw, cb3[48].xyzw
or r6.xyzw, r6.xyzw, cb3[49].xyzw
add r0.x, -r6.wwww, l(1.000000, 1.000000, 1.000000, 1.000000)
mov r6.xyz, l(0.013725,0.068627,0.137255,12.000000)
mad r0.xzw, r0.xxxx, r6.xyyz, l(0.009804, 0.049020, 0.049020, 0.098039)
mad r5.xy, r5.wyzw, l(2.000000, 2.000000, 2.000000, 2.000000), l(-1.000000, -1.000000, -1.000000, -1.000000)
dp2 r7.x, r5.xyzw, -r5.xyzw
add r1.x, r7.xxxx, l(1.000000, 1.000000, 1.000000, 1.000000)
rsq r7.y, |r1.xxxx|
ieq r7.x, r7.yyyy, l(0x7f800000)
movc r1.x, r7.xxxx, l(9999999933815812510711506376257961984.000000), r7.yyyy
lt r7.y, l(0.000000, 0.000000, 0.000000, 0.000000), |r1.xxxx|
rcp r7.x, r1.xxxx
movc r5.z, r7.yyyy, r7.xxxx, l(9999999933815812510711506376257961984.000000,9999999933815812510711506376257961984.000000,9999999933815812510711506376257961984.000000,9999999933815812510711506376257961984.000000)
add r7.xyz, r4.xyzw, -r5.xyzw
mad r6.xyz, l(0.500000, 0.500000, 0.500000, 0.500000), r7.xyzx, r5.xyzw
dp3_sat r1.x, r2.xyzw, r6.xyzw
add r1.x, -r1.xxxx, l(1.000000, 1.000000, 1.000000, 1.000000)
mul r1.y, r1.xxxx, r1.xxxx
mul r1.y, r1.yyyy, r1.yyyy
mul r1.x, r1.xxxx, r1.yyyy
mad r1.x, r1.xxxx, l(0.979600, 0.979600, 0.979600, 0.979600), l(0.020400, 0.020400, 0.020400, 0.020400)
lt r7.y, l(0.000000, 0.000000, 0.000000, 0.000000), |v9.wwww|
rcp r7.x, v9.wwww
movc r1.y, r7.yyyy, r7.xxxx, l(9999999933815812510711506376257961984.000000,9999999933815812510711506376257961984.000000,9999999933815812510711506376257961984.000000,9999999933815812510711506376257961984.000000)
mul r2.xy, r1.yyyy, v9.xyzw
mul r2.xy, r2.xyzw, l(0.500000, 0.500000, 0.500000, 0.500000)
mad r4.x, r6.xxxx, l(0.250000, 0.250000, 0.250000, 0.250000), r2.xxxx
mad r4.y, r6.yyyy, l(0.250000, 0.250000, 0.250000, 0.250000), -r2.yyyy
add r2.xy, r4.xyzw, l(0.500000, 0.500000, 0.500000, 0.500000)


//mul r9.x, r9.x, l(0.500000)
mul r9.x, r9.x, r1.y              
add r2.x, r2.x, -r9.x


sample r2.xyzw, r2.xyxx, t0.xyzw, s0
and r2.xyzw, r2.xyzw, cb3[44].xyzw
or r2.xyzw, r2.xyzw, cb3[45].xyzw
log r7.y, |r2.xxxx|
ieq r7.x, r7.yyyy, l(0xff800000)
movc r4.x, r7.xxxx, l(-9999999933815812510711506376257961984.000000), r7.yyyy
log r7.y, |r2.yyyy|
ieq r7.x, r7.yyyy, l(0xff800000)
movc r4.y, r7.xxxx, l(-9999999933815812510711506376257961984.000000), r7.yyyy
log r7.y, |r2.zzzz|
ieq r7.x, r7.yyyy, l(0xff800000)
movc r4.z, r7.xxxx, l(-9999999933815812510711506376257961984.000000), r7.yyyy
mul r2.xyz, r4.xyzw, cb4[18].xxxx
exp r4.x, r2.xxxx
exp r4.y, r2.yyyy
exp r4.z, r2.zzzz
mul_sat r2.xyz, r1.xxxx, r4.xyzw
mul r4.xyz, r2.xyzw, l(5.000000, 5.000000, 5.000000, 5.000000)
mul_sat r1.x, l(0.007500, 0.007500, 0.007500, 0.007500), v11.yyyy
add r7.xyz, l(0.019608, 0.098039, 0.196078, 0.800000), -r0.xzww
mad r5.xyz, r1.xxxx, r7.xyzx, r0.xzww
dp3_sat r0.x, v8.xyzw, r6.xyzw
dp3_sat r0.z, r6.xyzw, v6.xyzw
mul r0.z, r0.zzzz, l(0.010000, 0.010000, 0.010000, 0.010000)
add r0.x, -r0.xxxx, l(1.000000, 1.000000, 1.000000, 1.000000)
max r6.xyzw, l(0.250000, 0.250000, 0.250000, 0.250000), v2.xxyz
mul r0.x, r0.xxxx, r6.xxxx
mul r7.xyz, r0.xxxx, r5.xyzw
mad r2.xyz, r5.xyzw, r0.xxxx, r2.xyzw
mad r4.xyz, r7.xyzw, l(12.000000, 12.000000, 12.000000, 12.000000), r4.xyzw
add r4.xyz, -r2.xyzw, r4.xyzw
add r0.x, l(-0.500000, -0.500000, -0.500000, -0.500000), v8.zzzz
mad r4.xyz, r0.xxxx, r4.xyzw, r2.xyzw
mad r2.xyz, r0.zzzz, v7.xyzw, r2.xyzw
mad r0.xzw, r0.zzzz, v7.xyyz, r4.xyyz
add r1.y, l(0.500000, 0.500000, 0.500000, 0.500000), -v8.zzzz
ge r8.xzw, r1.yyyy, l(0.000000, 0.000000, 0.000000, 0.000000)
movc r0.xzw, r8.xxzw, r2.xyyz, r0.xyzw
add r1.y, l(-0.361000, -0.361000, -0.361000, -0.361000), v2.wwww
add_sat r1.y, r1.yyyy, r1.yyyy
mad r2.x, r1.yyyy, l(-0.500000, -0.500000, -0.500000, -0.500000), l(1.000000, 1.000000, 1.000000, 1.000000)
mov r3.x, cb4[13].xxxx
mad r2.x, r2.xxxx, r3.xxxx, cb4[14].xxxx
mul r1.zw, r1.xyzw, r2.xxxx
mad r1.zw, r3.xyyz, l(0.500000, 1.000000, 1.000000, 1.333000), -r1.xyzw
add r2.xy, r1.zwzw, r1.zwzw
sample r2.xyzw, r2.xyxx, t4.xyzw, s4
and r2.xyzw, r2.xyzw, cb3[52].xyzw
or r2.xyzw, r2.xyzw, cb3[53].xyzw
add r2.w, r1.yyyy, l(-0.080000, -0.080000, -0.080000, -0.080000)
add r1.y, -r1.yyyy, l(0.080000, 0.080000, 0.080000, 0.080000)
mul r3.xw, r2.wwww, l(0.500000, 1.000000, 1.333000, 0.170000)
mul r4.xyz, r2.xyzw, r3.xxxx
mul r2.xyz, r2.xyzw, r3.wwww
mad r2.xyz, r2.xyzw, r6.yzww, r0.xzww
mad r4.xyz, r4.xyzw, r6.yzww, r0.xzww
mul_sat r3.xw, r1.xxxx, l(1.800000, 1.500000, 0.950000, 1.500000)
add_sat r1.x, r1.xxxx, r1.xxxx
add r8.xyz, r2.xyzw, -r4.xyzw
mad r5.xyz, r3.xxxx, r8.xyzx, r4.xyzw
mov r4.w, l(0.800000,0.800000,0.800000,0.800000)
mad r2.x, r1.zzzz, r4.wwww, -cb4[16].xxxx
mad r2.y, r1.zzzz, r4.wwww, -cb4[17].xxxx
mad r1.zw, r1.xyzw, r4.wwww, cb4[15].xxxx
sample r4.xyzw, r1.zwzz, t4.xyzw, s4
and r4.xyzw, r4.xyzw, cb3[52].xyzw
or r4.xyzw, r4.xyzw, cb3[53].xyzw
mul_sat r1.z, r2.wwww, r4.wwww
sample r4.xyzw, r2.xyxx, t4.xyzw, s4
and r4.xyzw, r4.xyzw, cb3[52].xyzw
or r4.xyzw, r4.xyzw, cb3[53].xyzw
mul_sat r1.w, r2.wwww, r4.wwww
mul r1.w, r1.wwww, l(0.500000, 0.500000, 0.500000, 0.500000)
mad r1.z, r1.zzzz, l(0.500000, 0.500000, 0.500000, 0.500000), r1.wwww
mad r2.xy, r6.wwww, l(0.000000, 1.000000, 0.100000, 0.400000), l(0.100000, 0.000000, 0.100000, 0.400000)
mul r4.zw, r1.zzzz, r2.xyxy
mul r4.xy, r6.yzzw, r4.zzzz
mad r2.xyz, r4.xyww, l(0.950000, 0.950000, 0.475000, 0.475000), r5.xyzw
mad r4.xyz, r4.xyww, l(0.250000, 0.250000, 0.125000, 0.000000), r5.xyzw
add r8.xyz, r4.xyzw, -r2.xyzw
mad r5.xyz, r3.wwww, r8.xyzx, r2.xyzw
add r2.x, r3.yyyy, r3.yyyy
mad r2.y, r3.zzzz, r0.yyyy, -cb4[12].xxxx
sample r3.xyzw, r2.xyxx, t9.xyzw, s9
and r3.xyzw, r3.xyzw, cb3[62].xyzw
or r3.xyzw, r3.xyzw, cb3[63].xyzw
mul r0.y, r3.wwww, r3.wwww
mul r0.y, r0.yyyy, r2.wwww
mul_sat r0.y, r0.yyyy, l(0.400000, 0.400000, 0.400000, 0.400000)
mul r2.xyz, r6.yzww, r0.yyyy
mad r3.xyz, r2.xyzw, l(0.950000, 0.950000, 0.950000, 0.950000), r5.xyzw
mad r2.xyz, r2.xyzw, l(0.100000, 0.100000, 0.100000, 0.100000), r5.xyzw
add r8.xyz, r2.xyzw, -r3.xyzw
mad r4.xyz, r1.xxxx, r8.xyzx, r3.xyzw
ge r8.xyz, r1.yyyy, l(0.000000, 0.000000, 0.000000, 0.000000)
movc r0.xyz, r8.xyzx, r0.xzww, r4.xyzw
log r8.y, |r0.xxxx|
ieq r8.x, r8.yyyy, l(0xff800000)
movc r1.x, r8.xxxx, l(-9999999933815812510711506376257961984.000000), r8.yyyy
log r8.y, |r0.yyyy|
ieq r8.x, r8.yyyy, l(0xff800000)
movc r1.y, r8.xxxx, l(-9999999933815812510711506376257961984.000000), r8.yyyy
log r8.y, |r0.zzzz|
ieq r8.x, r8.yyyy, l(0xff800000)
movc r1.z, r8.xxxx, l(-9999999933815812510711506376257961984.000000), r8.yyyy
mul r0.xyz, r1.xyzw, cb4[19].xxxx
exp r8.x, r0.xxxx
exp r8.y, r0.yyyy
exp r8.z, r0.zzzz
mov r8.w, l(1.000000,1.000000,1.000000,1.000000)
mad r0.w, r8.wwww, l(255.000000), l(0.000100)
ftou r0.w, r0.wwww
uge r0.w, cb3[8].zzzz, r0.wwww
discard_nz r0.w
mov o0.xyzw, r8.xyzw
ret
// Approximately 0 instruction slots used

///////////////////////////////// HLSL Code /////////////////////////////////
// // ---- Created with 3Dmigoto v0.6.164 on Sun Apr 12 09:52:31 2026
// Texture2D<float4> t9 : register(t9);
//
// Texture2D<float4> t4 : register(t4);
//
// Texture2D<float4> t3 : register(t3);
//
// Texture2D<float4> t2 : register(t2);
//
// Texture2D<float4> t0 : register(t0);
//
// SamplerState s9_s : register(s9);
//
// SamplerState s4_s : register(s4);
//
// SamplerState s3_s : register(s3);
//
// SamplerState s2_s : register(s2);
//
// SamplerState s0_s : register(s0);
//
// cbuffer cb4 : register(b4)
// {
//   float4 cb4[236];
// }
//
// cbuffer cb3 : register(b3)
// {
//   float4 cb3[77];
// }
//
//
//
//
// // 3Dmigoto declarations
// #define cmp -
// Texture1D<float4> IniParams : register(t120);
// Texture2D<float4> StereoParams : register(t125);
//
//
// void main(
//   float4 v0 : SV_POSITION0,
//   float4 v1 : TEXCOORD8,
//   linear centroid float4 v2 : COLOR0,
//   float4 v3 : COLOR1,
//   float4 v4 : TEXCOORD9,
//   float4 v5 : TEXCOORD0,
//   float4 v6 : TEXCOORD1,
//   float4 v7 : TEXCOORD2,
//   float4 v8 : TEXCOORD3,
//   float4 v9 : TEXCOORD4,
//   float4 v10 : TEXCOORD5,
//   float4 v11 : TEXCOORD6,
//   float4 v12 : TEXCOORD7,
//   out float4 o0 : SV_TARGET0)
// {
//   float4 r0,r1,r2,r3,r4,r5,r6,r7,r8;
//   uint4 bitmask, uiDest;
//   float4 fDest;
//
//   r0.xy = float2(1.5,2);
//   r1.y = v5.y * r0.x + cb4[11].x;
//   r1.x = v5.x * 1.5;
//   r1.xyzw = t2.Sample(s2_s, r1.xy).xyzw;
//   r1.xyzw = (int4)r1.xyzw & asint(cb3[48].xyzw);
//   r1.xyzw = (int4)r1.xyzw | asint(cb3[49].xyzw);
//   r1.x = cb4[9].x;
//   r0.z = r1.w * r1.x + cb4[10].x;
//   r2.x = v5.x * r0.x + cb4[8].x;
//   r2.y = v5.y * 1.5;
//   r2.xyzw = t2.Sample(s2_s, r2.xy).xyzw;
//   r2.xyzw = (int4)r2.xyzw & asint(cb3[48].xyzw);
//   r2.xyzw = (int4)r2.xyzw | asint(cb3[49].xyzw);
//   r0.x = r2.w * r1.x + cb4[10].x;
//   r1.xy = v5.xy * float2(1.5,1.5);
//   r0.w = dot(v8.xyz, v8.xyz);
//   r3.y = rsqrt(abs(r0.w));
//   r3.x = cmp((int)r3.y == 0x7f800000);
//   r0.w = r3.x ? 9.99999993e+36 : r3.y;
//   r1.zw = v8.xy * r0.ww;
//   r2.xyz = v8.xyz * r0.www;
//   r0.xw = r0.xx * r1.zw + r1.xy;
//   r3.yz = r0.zz * r1.zw + r0.xw;
//   r3.w = cb4[11].x + r3.z;
//   r4.xyzw = t3.Sample(s3_s, r3.yw).xyzw;
//   r4.xyzw = (int4)r4.xyzw & asint(cb3[50].xyzw);
//   r4.xyzw = (int4)r4.xyzw | asint(cb3[51].xyzw);
//   r4.xy = r4.wy * float2(2,2) + float2(-1,-1);
//   r5.x = dot(r4.xy, -r4.xy);
//   r0.x = 1 + r5.x;
//   r5.y = rsqrt(abs(r0.x));
//   r5.x = cmp((int)r5.y == 0x7f800000);
//   r0.x = r5.x ? 9.99999993e+36 : r5.y;
//   r5.y = cmp(0 < abs(r0.x));
//   r5.x = rcp(r0.x);
//   r4.z = r5.y ? r5.x : ;
//   r3.x = cb4[8].x + r3.y;
//   r5.xyzw = t3.Sample(s3_s, r3.xz).xyzw;
//   r5.xyzw = (int4)r5.xyzw & asint(cb3[50].xyzw);
//   r5.xyzw = (int4)r5.xyzw | asint(cb3[51].xyzw);
//   r6.xyzw = t2.Sample(s2_s, r3.xz).xyzw;
//   r6.xyzw = (int4)r6.xyzw & asint(cb3[48].xyzw);
//   r6.xyzw = (int4)r6.xyzw | asint(cb3[49].xyzw);
//   r0.x = 1 + -r6.w;
//   r6.xyz = float3(0.0137254903,0.0686274543,0.137254909);
//   r0.xzw = r0.xxx * r6.xyz + float3(0.00980392192,0.0490196086,0.0980392173);
//   r5.xy = r5.wy * float2(2,2) + float2(-1,-1);
//   r7.x = dot(r5.xy, -r5.xy);
//   r1.x = 1 + r7.x;
//   r7.y = rsqrt(abs(r1.x));
//   r7.x = cmp((int)r7.y == 0x7f800000);
//   r1.x = r7.x ? 9.99999993e+36 : r7.y;
//   r7.y = cmp(0 < abs(r1.x));
//   r7.x = rcp(r1.x);
//   r5.z = r7.y ? r7.x : ;
//   r7.xyz = -r5.xyz + r4.xyz;
//   r6.xyz = float3(0.5,0.5,0.5) * r7.xyz + r5.xyz;
//   r1.x = saturate(dot(r2.xyz, r6.xyz));
//   r1.x = 1 + -r1.x;
//   r1.y = r1.x * r1.x;
//   r1.y = r1.y * r1.y;
//   r1.x = r1.y * r1.x;
//   r1.x = r1.x * 0.979600012 + 0.0204000007;
//   r7.y = cmp(0 < abs(v9.w));
//   r7.x = rcp(v9.w);
//   r1.y = r7.y ? r7.x : ;
//   r2.xy = v9.xy * r1.yy;
//   r2.xy = float2(0.5,0.5) * r2.xy;
//   r4.x = r6.x * 0.25 + r2.x;
//   r4.y = r6.y * 0.25 + -r2.y;
//   r2.xy = float2(0.5,0.5) + r4.xy;
//   r2.xyzw = t0.Sample(s0_s, r2.xy).xyzw;
//   r2.xyzw = (int4)r2.xyzw & asint(cb3[44].xyzw);
//   r2.xyzw = (int4)r2.xyzw | asint(cb3[45].xyzw);
//   r7.y = log2(abs(r2.x));
//   r7.x = cmp((int)r7.y == 0xff800000);
//   r4.x = r7.x ? -9.99999993e+36 : r7.y;
//   r7.y = log2(abs(r2.y));
//   r7.x = cmp((int)r7.y == 0xff800000);
//   r4.y = r7.x ? -9.99999993e+36 : r7.y;
//   r7.y = log2(abs(r2.z));
//   r7.x = cmp((int)r7.y == 0xff800000);
//   r4.z = r7.x ? -9.99999993e+36 : r7.y;
//   r2.xyz = cb4[18].xxx * r4.xyz;
//   r4.x = exp2(r2.x);
//   r4.y = exp2(r2.y);
//   r4.z = exp2(r2.z);
//   r2.xyz = saturate(r4.xyz * r1.xxx);
//   r4.xyz = float3(5,5,5) * r2.xyz;
//   r1.x = saturate(v11.y * 0.00749999983);
//   r7.xyz = -r0.xzw + float3(0.0196078438,0.0980392173,0.196078435);
//   r5.xyz = r1.xxx * r7.xyz + r0.xzw;
//   r0.x = saturate(dot(v8.xyz, r6.xyz));
//   r0.z = saturate(dot(r6.xyz, v6.xyz));
//   r0.z = 0.00999999978 * r0.z;
//   r0.x = 1 + -r0.x;
//   r6.xyzw = max(v2.xxyz, float4(0.25,0.25,0.25,0.25));
//   r0.x = r6.x * r0.x;
//   r7.xyz = r5.xyz * r0.xxx;
//   r2.xyz = r5.xyz * r0.xxx + r2.xyz;
//   r4.xyz = r7.xyz * float3(12,12,12) + r4.xyz;
//   r4.xyz = r4.xyz + -r2.xyz;
//   r0.x = v8.z + -0.5;
//   r4.xyz = r0.xxx * r4.xyz + r2.xyz;
//   r2.xyz = r0.zzz * v7.xyz + r2.xyz;
//   r0.xzw = r0.zzz * v7.xyz + r4.xyz;
//   r1.y = -v8.z + 0.5;
//   r8.xzw = cmp(r1.yyy >= float3(0,0,0));
//   r0.xzw = r8.xzw ? r2.xyz : r0.xzw;
//   r1.y = v2.w + -0.361000001;
//   r1.y = saturate(r1.y + r1.y);
//   r2.x = r1.y * -0.5 + 1;
//   r3.x = cb4[13].x;
//   r2.x = r2.x * r3.x + cb4[14].x;
//   r1.zw = r2.xx * r1.zw;
//   r1.zw = r3.yz * float2(1,1.33299994) + -r1.zw;
//   r2.xy = r1.zw + r1.zw;
//   r2.xyzw = t4.Sample(s4_s, r2.xy).xyzw;
//   r2.xyzw = (int4)r2.xyzw & asint(cb3[52].xyzw);
//   r2.xyzw = (int4)r2.xyzw | asint(cb3[53].xyzw);
//   r2.w = -0.0799999982 + r1.y;
//   r1.y = 0.0799999982 + -r1.y;
//   r3.xw = float2(0.5,0.170000002) * r2.ww;
//   r4.xyz = r3.xxx * r2.xyz;
//   r2.xyz = r3.www * r2.xyz;
//   r2.xyz = r2.xyz * r6.yzw + r0.xzw;
//   r4.xyz = r4.xyz * r6.yzw + r0.xzw;
//   r3.xw = saturate(float2(1.79999995,1.5) * r1.xx);
//   r1.x = saturate(r1.x + r1.x);
//   r8.xyz = -r4.xyz + r2.xyz;
//   r5.xyz = r3.xxx * r8.xyz + r4.xyz;
//   r4.w = 0.800000012;
//   r2.x = r1.z * r4.w + -cb4[16].x;
//   r2.y = r1.z * r4.w + -cb4[17].x;
//   r1.zw = r1.zw * r4.ww + cb4[15].xx;
//   r4.xyzw = t4.Sample(s4_s, r1.zw).xyzw;
//   r4.xyzw = (int4)r4.xyzw & asint(cb3[52].xyzw);
//   r4.xyzw = (int4)r4.xyzw | asint(cb3[53].xyzw);
//   r1.z = saturate(r4.w * r2.w);
//   r4.xyzw = t4.Sample(s4_s, r2.xy).xyzw;
//   r4.xyzw = (int4)r4.xyzw & asint(cb3[52].xyzw);
//   r4.xyzw = (int4)r4.xyzw | asint(cb3[53].xyzw);
//   r1.w = saturate(r4.w * r2.w);
//   r1.w = 0.5 * r1.w;
//   r1.z = r1.z * 0.5 + r1.w;
//   r2.xy = r6.ww * float2(0,1) + float2(0.100000001,0);
//   r4.zw = r2.xy * r1.zz;
//   r4.xy = r4.zz * r6.yz;
//   r2.xyz = r4.xyw * float3(0.949999988,0.949999988,0.474999994) + r5.xyz;
//   r4.xyz = r4.xyw * float3(0.25,0.25,0.125) + r5.xyz;
//   r8.xyz = -r2.xyz + r4.xyz;
//   r5.xyz = r3.www * r8.xyz + r2.xyz;
//   r2.x = r3.y + r3.y;
//   r2.y = r3.z * r0.y + -cb4[12].x;
//   r3.xyzw = t9.Sample(s9_s, r2.xy).xyzw;
//   r3.xyzw = (int4)r3.xyzw & asint(cb3[62].xyzw);
//   r3.xyzw = (int4)r3.xyzw | asint(cb3[63].xyzw);
//   r0.y = r3.w * r3.w;
//   r0.y = r2.w * r0.y;
//   r0.y = saturate(0.400000006 * r0.y);
//   r2.xyz = r0.yyy * r6.yzw;
//   r3.xyz = r2.xyz * float3(0.949999988,0.949999988,0.949999988) + r5.xyz;
//   r2.xyz = r2.xyz * float3(0.100000001,0.100000001,0.100000001) + r5.xyz;
//   r8.xyz = -r3.xyz + r2.xyz;
//   r4.xyz = r1.xxx * r8.xyz + r3.xyz;
//   r8.xyz = cmp(r1.yyy >= float3(0,0,0));
//   r0.xyz = r8.xyz ? r0.xzw : r4.xyz;
//   r8.y = log2(abs(r0.x));
//   r8.x = cmp((int)r8.y == 0xff800000);
//   r1.x = r8.x ? -9.99999993e+36 : r8.y;
//   r8.y = log2(abs(r0.y));
//   r8.x = cmp((int)r8.y == 0xff800000);
//   r1.y = r8.x ? -9.99999993e+36 : r8.y;
//   r8.y = log2(abs(r0.z));
//   r8.x = cmp((int)r8.y == 0xff800000);
//   r1.z = r8.x ? -9.99999993e+36 : r8.y;
//   r0.xyz = cb4[19].xxx * r1.xyz;
//   r8.x = exp2(r0.x);
//   r8.y = exp2(r0.y);
//   r8.z = exp2(r0.z);
//   r8.w = 1;
//   r0.w = r8.w * 255 + 9.99999975e-05;
//   r0.w = (uint)r0.w;
//   r0.w = cmp(asuint(cb3[8].z) >= (uint)r0.w);
//   if (r0.w != 0) discard;
//   o0.xyzw = r8.xyzw;
//   return;
// }
//////////////////////////////// HLSL Errors ////////////////////////////////
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(78,14-36): warning X3203: signed/unsigned mismatch, unsigned assumed
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(92,14-36): warning X3203: signed/unsigned mismatch, unsigned assumed
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(96,24): error X3000: syntax error: unexpected token ';'
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(111,14-36): warning X3203: signed/unsigned mismatch, unsigned assumed
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(115,24): error X3000: syntax error: unexpected token ';'
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(126,24): error X3000: syntax error: unexpected token ';'
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(136,14-36): warning X3203: signed/unsigned mismatch, unsigned assumed
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(139,14-36): warning X3203: signed/unsigned mismatch, unsigned assumed
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(142,14-36): warning X3203: signed/unsigned mismatch, unsigned assumed
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(229,14-36): warning X3203: signed/unsigned mismatch, unsigned assumed
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(232,14-36): warning X3203: signed/unsigned mismatch, unsigned assumed
// C:\Program Files (x86)\Steam\steamapps\common\MountBlade Warband\ShaderFixes\572f7453dc384053-ps_replace.txt(235,14-36): warning X3203: signed/unsigned mismatch, unsigned assumed
/////////////////////////////////////////////////////////////////////////////
