//SRC decals. Heatwave in fire area.
// ---- Created with geo-11 v0.6.198 on Sat Sep 27 22:29:00 2025
//Texture2D<float4> t2 : register(t2);
//
//Texture2D<float4> t1 : register(t1);
//
//Texture2D<float4> t0 : register(t0);
//
//SamplerState s2_s : register(s2);
//
//SamplerState s1_s : register(s1);
//
//SamplerState s0_s : register(s0);
//
//cbuffer cb2 : register(b2)
//{
//  float4 cb2[2];
//}
//
//cbuffer cb1 : register(b1)
//{
//  float4 cb1[151];
//}
//
//cbuffer cb0 : register(b0)
//{
//  float4 cb0[11];
//}
//
//
//
//
//// 3Dmigoto declarations
//#define cmp -
//Texture1D<float4> IniParams : register(t120);
//Texture2D<float4> StereoParams : register(t125);
//
//
//void main(
//  float4 v0 : SV_POSITION0,
//  float4 v1 : TEXCOORD0,
//  out float4 o0 : SV_Target0)
//{
//  float4 r0,r1,r2,r3,r4,r5,r12,r21,r24,r25;
//  uint4 bitmask, uiDest;
//  float4 fDest;
//  
//  float4 stereo = StereoParams.Load(0);
//  
//  r0.xy = float2(450000,-450000) + -cb1[110].xx;
//  r0.z = 2097152 * cb1[109].x;
//  r0.xy = cmp(r0.zz >= r0.xy);
//  r1.xyzw = float4(-900000,-450000,900000,450000) + cb1[110].xxxx;
//  r0.x = r0.x ? r1.x : cb1[110].x;
//  r0.zw = r1.yw + r0.zz;
//  r0.zw = cmp(abs(r0.zw) >= float2(9.99999975e-06,9.99999975e-06));
//  r0.x = r0.z ? r0.x : cb1[110].x;
//  r0.x = r0.y ? r0.x : r1.z;
//  r0.x = r0.w ? r0.x : cb1[110].x;
//  r0.x = 12000 + r0.x;
//  r0.y = r0.x * 9.53674316e-07 + cb1[109].x;
//  r0.x = r0.x * r0.x;
//  r0.y = cb1[109].x * r0.y;
//  r0.x = r0.x * 2.27373675e-13 + r0.y;
//  r0.x = sqrt(r0.x);
//  r0.x = saturate(r0.x * -314.572815 + 3);
//  r1.xy = v0.xy;
//  r2.x = cb1[142].z;
//  r2.z = 1;
//  r0.yz = asuint(cb0[10].xy);
//  r0.yz = v0.xy + -r0.yz;
//  r2.yw = cb0[10].zw * r0.yz;
//  r3.xy = cb1[136].xy * r2.yw;
//  r3.xy = cb1[135].xy + r3.xy;
//  r3.xy = cb1[139].zw * r3.xy;
//  r0.w = t0.SampleLevel(s0_s, r3.xy, 0).x;
//  r1.z = max(1.00000005e-18, r0.w);
//  r3.xy = cb1[66].xz * r0.ww;
//  r1.xyz = r2.xxz * r1.xyz;
//  
//  r24.xyzw = cb1[44].xyzw * r1.xxxx;
//  r25.xyzw = cb1[45].xyzw * r1.yyyy;
//  r21.xyzw = cb1[46].xyzw * r1.zzzz;
//  r24.xyzw = r25.xyzw + r24.xyzw;
//  r21.xyzw = r24.xyzw + r21.xyzw;
//  r21.xyzw = cb1[47].xyzw + r21.xyzw;
//  
//  r1.x+=stereo.x*(stereo.y*r21.w-1)*cb1[136].x*0.5;
//  
//  r12 = r2;
//  r12.y+=stereo.x*(stereo.y*r21.w-1)*0.5;
//  
//  r4.xyzw = cb1[44].xyzw * r1.xxxx;
//  r5.xyzw = cb1[45].xyzw * r1.yyyy;
//  r1.xyzw = cb1[46].xyzw * r1.zzzz;
//  r4.xyzw = r5.xyzw + r4.xyzw;
//  r1.xyzw = r4.xyzw + r1.xyzw;
//  r1.xyzw = cb1[47].xyzw + r1.xyzw;
//  r1.xyz = r1.xyz / r1.www;
//  r0.w = dot(-r1.xyz, -r1.xyz);
//  r0.w = rsqrt(r0.w);
//  r1.xy = -r1.yz * r0.ww;
//  r0.w = cmp(cb1[31].w >= 1);
//  r1.xy = r0.ww ? -cb1[61].yz : r1.xy;
//  r0.w = -cb1[66].w + r3.y;
//  r1.z = cb1[66].y + r3.x;
//  r0.w = 1 / r0.w;
//  r0.w = r1.z + r0.w;
//  r1.xy = r0.ww * r1.xy + -cb1[110].yz;
//  r1.z = 0.00100000005 * cb1[150].y;
//  r1.z = frac(r1.z);
//  r1.xy = r1.zz * float2(1000000,1000000) + r1.xy;
//  r3.xyzw = float4(0.00100000005,0.00100000005,-0.000900000043,-0.000900000043) * r1.xyxy;
//  r1.zw = cmp(r0.ww >= float2(20000,100000));
//  r1.zw = r1.zw ? float2(1,1) : 0;
//  r2.xz = r1.zz * r3.zw + r3.xy;
//  r1.xy = r1.xy * float2(9.99999975e-06,9.99999975e-06) + -r2.xz;
//  r1.xy = r1.ww * r1.xy + r2.xz;
//  r3.xyzw = float4(-0.00100000005,-0.00100000005,0.000900000043,0.000900000043) * cb1[109].yzyz;
//  r2.xz = r1.zz * r3.zw + r3.xy;
//  r3.xy = -cb1[109].yz * float2(9.99999975e-06,9.99999975e-06) + -r2.xz;
//  r1.zw = r1.ww * r3.xy + r2.xz;
//  r1.zw = float2(2097152,2097152) * r1.zw;
//  r1.zw = frac(r1.zw);
//  r1.xy = r1.zw + r1.xy;
//  r1.x = t1.Sample(s1_s, r1.xy).x;
//  r1.y = -0.5 + r12.y;
//  r1.zw = r2.yw * cb0[0].zw + cb0[0].xy;
//  r2.xyz = t2.Sample(s2_s, r1.zw).xyz;
//  r1.z = -0.449999988 + abs(r1.y);
//  r1.z = saturate(20 * r1.z);
//  r1.z = 1 + -r1.z;
//  r1.x = r1.x * r1.z;
//  r1.z = -1500 + r0.w;
//  r0.w = 9.99999975e-05 * r0.w;
//  r0.w = max(0, r0.w);
//  r0.w = min(0.200000003, r0.w);
//  r1.z = saturate(abs(r1.z) * -0.00133332994 + 1.5);
//  r1.z = max(r1.z, r0.w);
//  r1.z = r1.x * r1.z;
//  r1.w = 2 * abs(r1.y);
//  r1.w = log2(r1.w);
//  r1.w = 1.5 * r1.w;
//  r1.w = exp2(r1.w);
//  r2.w = cmp(1.49011647e-08 >= abs(r1.y));
//  r1.y = -abs(r1.y) * 6 + 1;
//  r1.y = max(0, r1.y);
//  r1.w = r2.w ? 0 : r1.w;
//  r1.z = r1.z * r1.w;
//  r1.w = r1.w * r0.w;
//  r0.w = r1.x * r0.w;
//  r1.w = min(1, r1.w);
//  r3.xz = float2(0.100000001,0.0800000057) * r1.zz;
//  r4.x = 0.0899999961 * r1.z;
//  r3.yw = float2(0,0);
//  r3.xyzw = r0.yzyz * cb0[10].zwzw + r3.xyzw;
//  r4.zw = r3.xy * cb1[136].xy + cb1[135].xy;
//  r3.xyzw = r3.xyzw * cb0[0].zwzw + cb0[0].xyxy;
//  r3.xyzw = max(cb0[1].xyxy, r3.xyzw);
//  r3.xyzw = min(cb0[1].zwzw, r3.xyzw);
//  r4.zw = cb1[139].zw * r4.zw;
//  r4.zw = max(cb1[140].xy, r4.zw);
//  r4.zw = min(cb1[140].zw, r4.zw);
//  r1.z = t0.SampleLevel(s0_s, r4.zw, 0).x;
//  r2.w = r1.z * cb1[66].z + -cb1[66].w;
//  r1.z = r1.z * cb1[66].x + cb1[66].y;
//  r2.w = 1 / r2.w;
//  r1.z = r2.w + r1.z;
//  r4.zw = float2(-4000,-3500) + r1.zz;
//  r4.zw = -abs(r4.zw) * float2(0.000300000014,0.000300000014) + float2(1,1);
//  r4.zw = max(float2(0,0), r4.zw);
//  r1.z = 0.200000003 * r4.w;
//  r1.y = r1.z * r1.y;
//  r0.w = r0.w * 0.5 + r1.y;
//  r0.w = -r1.w * r1.x + r0.w;
//  r1.x = r1.w * r1.x;
//  r0.x = r0.x * r0.w + r1.x;
//  r4.y = 0;
//  r0.yz = r0.yz * cb0[10].zw + r4.xy;
//  r0.yz = r0.yz * cb0[0].zw + cb0[0].xy;
//  r0.yz = max(cb0[1].xy, r0.yz);
//  r0.yz = min(cb0[1].zw, r0.yz);
//  r0.w = t2.Sample(s2_s, r0.yz).z;
//  r0.y = t2.Sample(s2_s, r3.xy).x;
//  r0.z = t2.Sample(s2_s, r3.zw).y;
//  r1.xyz = float3(1,1,1) + -r0.yzw;
//  r1.xyz = -r1.xyz * float3(0.713541985,0.93355602,1) + float3(1,1,1);
//  r3.xyz = r0.yzw * float3(1.35000002,1.35000002,1.35000002) + -r1.xyz;
//  r1.xyz = r3.xyz * float3(0.5,0.5,0.5) + r1.xyz;
//  r1.xyz = r1.xyz + -r0.yzw;
//  r0.yzw = r4.zzz * r1.xyz + r0.yzw;
//  r1.xyz = float3(2,0.538143992,0) + -r0.yzw;
//  r0.xyz = r0.xxx * r1.xyz + r0.yzw;
//  r0.xyz = r0.xyz + -r2.xyz;
//  r0.xyz = cb2[0].xxx * r0.xyz + r2.xyz;
//  r1.xyz = cb2[1].xyz + -r0.xyz;
//  r0.xyz = cb2[0].yyy * r1.xyz + r0.xyz;
//  o0.xyz = max(float3(0,0,0), r0.xyz);
//  o0.w = 0;
//  return;
//}
//
///*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.198 on Sat Sep 27 22:29:00 2025
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xy
// TEXCOORD                 0   xyzw        1     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 CB0[11], immediateIndexed
dcl_constantbuffer CB1[151], immediateIndexed
dcl_constantbuffer CB2[2], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, 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_input_ps_siv linear noperspective v0.xy, position
dcl_output o0.xyzw
dcl_temps 34
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r25.xyzw, l(0, 0, 0, 0), t125.xyzw
add [precise(y)] r0.xy, -cb1[110].xxxx, l(450000.000000, -450000.000000, 0.000000, 0.000000)
mul [precise(z)] r0.z, cb1[109].x, l(2097152.000000)
ge [precise(y)] r0.xy, r0.zzzz, r0.xyxx
add [precise(yw)] r1.xyzw, cb1[110].xxxx, l(-900000.000000, -450000.000000, 900000.000000, 450000.000000)
movc r0.x, r0.x, r1.x, cb1[110].x
add [precise(zw)] r0.zw, r0.zzzz, r1.yyyw
ge [precise(zw)] r0.zw, |r0.zzzw|, l(0.000000, 0.000000, 0.000010, 0.000010)
movc r0.x, r0.z, r0.x, cb1[110].x
movc r0.x, r0.y, r0.x, r1.z
movc r0.x, r0.w, r0.x, cb1[110].x
add r0.x, r0.x, l(12000.000000)
mad r0.y, r0.x, l(9.536743164E-07), cb1[109].x
mul r0.x, r0.x, r0.x
mul r0.y, r0.y, cb1[109].x
mad r0.x, r0.x, l(2.273736754E-13), r0.y
sqrt r0.x, r0.x
mad_sat r0.x, r0.x, l(-314.572815), l(3.000000)
mov [precise(xy)] r1.xy, v0.xyxx
mov [precise(x)] r2.x, cb1[142].z
mov [precise(z)] r2.z, l(1.000000)
utof [precise(yz)] r0.yz, cb0[10].xxyx
add [precise(yz)] r0.yz, -r0.yyzy, v0.xxyx
mul [precise(yw)] r2.yw, r0.yyyz, cb0[10].zzzw
mul [precise(xy)] r3.xy, r2.ywyy, cb1[136].xyxx
add [precise(xy)] r3.xy, r3.xyxx, cb1[135].xyxx
mul [precise(xy)] r3.xy, r3.xyxx, cb1[139].zwzz
sample_l_indexable [precise(w)](texture2d)(float,float,float,float) r0.w, r3.xyxx, t0.yzwx, s0, l(0.000000)
max [precise(z)] r1.z, r0.w, l(1.000000046E-18)
mul [precise(xy)] r3.xy, r0.wwww, cb1[66].xzxx
mul [precise(xyz)] r1.xyz, r1.xyzx, r2.xxzx

mul [precise] r14.xyzw, r1.xxxx, cb1[44].xyzw
mul [precise] r15.xyzw, r1.yyyy, cb1[45].xyzw
mul [precise] r11.xyzw, r1.zzzz, cb1[46].xyzw
add [precise] r14.xyzw, r14.xyzw, r15.xyzw
add [precise] r11.xyzw, r11.xyzw, r14.xyzw
add [precise] r11.xyzw, r11.xyzw, cb1[47].xyzw

mad r26.x, r25.y, r11.w, l(-1.0)

//Heatwave part.
mov r12.xyzw, r2.xyzw
mul r26.y, r26.x, l(0.5)
mad r12.y, r25.x, r26.y, r12.y

mul r26.x, r26.x, cb1[136].x
mul r26.x, r26.x, l(0.5)
mad r1.x, r25.x, r26.x, r1.x

mul [precise] r4.xyzw, r1.xxxx, cb1[44].xyzw
mul [precise] r5.xyzw, r1.yyyy, cb1[45].xyzw
mul [precise] r1.xyzw, r1.zzzz, cb1[46].xyzw
add [precise] r4.xyzw, r4.xyzw, r5.xyzw
add [precise] r1.xyzw, r1.xyzw, r4.xyzw
add [precise] r1.xyzw, r1.xyzw, cb1[47].xyzw
div [precise(xyz)] r1.xyz, r1.xyzx, r1.wwww
dp3 r0.w, -r1.xyzx, -r1.xyzx
rsq r0.w, r0.w
mul r1.xy, r0.wwww, -r1.yzyy
ge r0.w, cb1[31].w, l(1.000000)
movc r1.xy, r0.wwww, -cb1[61].yzyy, r1.xyxx
add [precise(w)] r0.w, r3.y, -cb1[66].w
add [precise(z)] r1.z, r3.x, cb1[66].y
div [precise(w)] r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
add [precise(w)] r0.w, r0.w, r1.z
mad r1.xy, r0.wwww, r1.xyxx, -cb1[110].yzyy
mul r1.z, cb1[150].y, l(0.001000)
frc r1.z, r1.z
mad r1.xy, r1.zzzz, l(1000000.000000, 1000000.000000, 0.000000, 0.000000), r1.xyxx
mul r3.xyzw, r1.xyxy, l(0.001000, 0.001000, -0.000900000043, -0.000900000043)
ge [precise(zw)] r1.zw, r0.wwww, l(0.000000, 0.000000, 20000.000000, 100000.000000)
and [precise(zw)] r1.zw, r1.zzzw, l(0, 0, 0x3f800000, 0x3f800000)
mad r2.xz, r1.zzzz, r3.zzwz, r3.xxyx
mad r1.xy, r1.xyxx, l(0.000010, 0.000010, 0.000000, 0.000000), -r2.xzxx
mad r1.xy, r1.wwww, r1.xyxx, r2.xzxx
mul r3.xyzw, cb1[109].yzyz, l(-0.001000, -0.001000, 0.000900000043, 0.000900000043)
mad r2.xz, r1.zzzz, r3.zzwz, r3.xxyx
mad r3.xy, -cb1[109].yzyy, l(0.000010, 0.000010, 0.000000, 0.000000), -r2.xzxx
mad r1.zw, r1.wwww, r3.xxxy, r2.xxxz
mul r1.zw, r1.zzzw, l(0.000000, 0.000000, 2097152.000000, 2097152.000000)
frc r1.zw, r1.zzzw
add r1.xy, r1.xyxx, r1.zwzz
sample_indexable(texture2d)(float,float,float,float) r1.x, r1.xyxx, t1.xyzw, s1
add [precise(y)] r1.y, r12.y, l(-0.500000)
mad r1.zw, r2.yyyw, cb0[0].zzzw, cb0[0].xxxy
sample_indexable(texture2d)(float,float,float,float) r2.xyz, r1.zwzz, t2.xyzw, s2
add r1.z, |r1.y|, l(-0.450000)
mul_sat r1.z, r1.z, l(20.000000)
add r1.z, -r1.z, l(1.000000)
mul r1.x, r1.z, r1.x
add r1.z, r0.w, l(-1500.000000)
mul r0.w, r0.w, l(0.000100)
max r0.w, r0.w, l(0.000000)
min r0.w, r0.w, l(0.200000)
mad_sat r1.z, |r1.z|, l(-0.00133332994), l(1.500000)
max r1.z, r0.w, r1.z
mul r1.z, r1.z, r1.x
mul [precise(w)] r1.w, |r1.y|, l(2.000000)
log [precise(w)] r1.w, r1.w
mul [precise(w)] r1.w, r1.w, l(1.500000)
exp [precise(w)] r1.w, r1.w
ge [precise(w)] r2.w, l(1.490116475E-08), |r1.y|
mad r1.y, -|r1.y|, l(6.000000), l(1.000000)
max r1.y, r1.y, l(0.000000)
movc [precise(w)] r1.w, r2.w, l(0), r1.w
mul r1.z, r1.w, r1.z
mul r1.w, r0.w, r1.w
mul r0.w, r0.w, r1.x
min r1.w, r1.w, l(1.000000)
mul r3.xz, r1.zzzz, l(0.100000, 0.000000, 0.0800000057, 0.000000)
mul r4.x, r1.z, l(0.0899999961)
mov r3.yw, l(0,0,0,0)
mad r3.xyzw, r0.yzyz, cb0[10].zwzw, r3.xyzw
mad r4.zw, r3.xxxy, cb1[136].xxxy, cb1[135].xxxy
mad r3.xyzw, r3.xyzw, cb0[0].zwzw, cb0[0].xyxy
max r3.xyzw, r3.xyzw, cb0[1].xyxy
min r3.xyzw, r3.xyzw, cb0[1].zwzw
mul r4.zw, r4.zzzw, cb1[139].zzzw
max r4.zw, r4.zzzw, cb1[140].xxxy
min r4.zw, r4.zzzw, cb1[140].zzzw
sample_l_indexable(texture2d)(float,float,float,float) r1.z, r4.zwzz, t0.yzxw, s0, l(0.000000)
mad r2.w, r1.z, cb1[66].z, -cb1[66].w
mad r1.z, r1.z, cb1[66].x, cb1[66].y
div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
add r1.z, r1.z, r2.w
add r4.zw, r1.zzzz, l(0.000000, 0.000000, -4000.000000, -3500.000000)
mad r4.zw, -|r4.zzzw|, l(0.000000, 0.000000, 0.000300, 0.000300), l(0.000000, 0.000000, 1.000000, 1.000000)
max r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000)
mul r1.z, r4.w, l(0.200000)
mul r1.y, r1.y, r1.z
mad r0.w, r0.w, l(0.500000), r1.y
mad r0.w, -r1.w, r1.x, r0.w
mul r1.x, r1.x, r1.w
mad r0.x, r0.x, r0.w, r1.x
mov r4.y, l(0)
mad r0.yz, r0.yyzy, cb0[10].zzwz, r4.xxyx
mad r0.yz, r0.yyzy, cb0[0].zzwz, cb0[0].xxyx
max r0.yz, r0.yyzy, cb0[1].xxyx
min r0.yz, r0.yyzy, cb0[1].zzwz
sample_indexable(texture2d)(float,float,float,float) r0.w, r0.yzyy, t2.wxyz, s2
sample_indexable(texture2d)(float,float,float,float) r0.y, r3.xyxx, t2.wxyz, s2
sample_indexable(texture2d)(float,float,float,float) r0.z, r3.zwzz, t2.wxyz, s2
add r1.xyz, -r0.yzwy, l(1.000000, 1.000000, 1.000000, 0.000000)
mad r1.xyz, -r1.xyzx, l(0.713542, 0.933556, 1.000000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000)
mad r3.xyz, r0.yzwy, l(1.350000, 1.350000, 1.350000, 0.000000), -r1.xyzx
mad r1.xyz, r3.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r1.xyzx
add r1.xyz, -r0.yzwy, r1.xyzx
mad r0.yzw, r4.zzzz, r1.xxyz, r0.yyzw
add r1.xyz, -r0.yzwy, l(2.000000, 0.538144, 0.000000, 0.000000)
mad r0.xyz, r0.xxxx, r1.xyzx, r0.yzwy
add r0.xyz, -r2.xyzx, r0.xyzx
mad r0.xyz, cb2[0].xxxx, r0.xyzx, r2.xyzx
add r1.xyz, -r0.xyzx, cb2[1].xyzx
mad r0.xyz, cb2[0].yyyy, r1.xyzx, r0.xyzx
max o0.xyz, r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used
